Jadi, saya pernah mendokumentasikan solusi lama di forum lama, tapi forum itu sekarang sudah tidak ada.
Saya baru saja mengganti UPS saya ke Unifi UPS 2U dan ini mendukung NUT Server, dengan UPSName, username, dan password yang bisa dikonfigurasi.
Saya menggunakan claude desktop agar bisa berfungsi kembali. Semoga ini membantu kamu.
Memperbaiki QNAP sebagai klien NUT (Network UPS Tools) — GUI “Network UPS slave” tidak berfungsi dengan benar
Pengaturan
- Sebuah server NUT berjalan di perangkat terpisah (dalam kasus saya UniFi UPS bertindak sebagai server NUT), dapat diakses di
<NUT_SERVER_IP>:3493.
- Sebuah QNAP NAS (QTS 5.2.9) yang perlu memantau UPS tersebut sebagai klien/slave, agar bisa merespons event listrik.
Masalahnya
Opsi GUI bawaan QNAP untuk ini — Control Panel → System → Power → UPS → “Network UPS slave” — hanya meminta alamat IP server. Tidak ada field username/password.
Koneksi NUT MONITOR yang asli (yang mendaftarkan perangkat sebagai klien terautentikasi dan memungkinkan koordinasi shutdown yang tepat) membutuhkan kredensial yang sesuai dengan entri di upsd.users server. Tanpa itu, proses GUI QNAP (upsutil) tidak bisa mengautentikasi sepenuhnya, sehingga:
- NAS tidak pernah muncul di daftar klien terhubung server NUT.
- Field Informasi UPS pada GUI tetap kosong (status daya AC, kapasitas baterai, model — semua menampilkan
--), meskipun UPS jelas online.
Menjalankan query read-only secara manual berjalan baik:
upsc <ups_name>@<NUT_SERVER_IP>
Ini mengembalikan data lengkap secara live (isi baterai, beban, status, dll.) — membuktikan server dapat diakses dan nama UPS benar. Tapi ini hanya read tanpa autentikasi, bukan koneksi klien yang dipantau. Ini tidak menandakan daemon monitoring benar-benar berjalan.
Temuan kuncinya: ps | grep -i ups hanya menunjukkan upsutil — upsmon (daemon monitor NUT sebenarnya) ternyata tidak pernah berjalan di NAS sama sekali. Opsi GUI “Network UPS slave” tidak menjalankannya.
Solusi
1. Edit langsung konfigurasi upsmon yang asli
QNAP menyediakan file NUT upsmon.conf standar, tapi GUI tidak mengisi baris MONITOR dengan kredensial karena memang tidak meminta. Edit langsung (via SSH atau SFTP):
/etc/config/ups/upsmon.conf
Tambahkan (atau perbaiki) baris MONITOR dengan kredensial NUT yang benar dari sisi server:
MONITOR <ups_name>@<NUT_SERVER_IP>:3493 1 <monitor_username> <monitor_password> slave
Tip: temukan <ups_name> yang benar (ini adalah nama perangkat internal yang didaftarkan di server NUT, bisa saja bukan “ups”) dengan:
upsc -l <NUT_SERVER_IP>
2. Jalankan daemon monitor sesungguhnya
Binary upsmon pada QNAP tidak menerima -c <path> seperti pada build NUT standar (flag itu dipakai untuk mengirim perintah seperti fsd/reload/stop). Ia membaca konfigurasinya dari path default — yang kebetulan adalah /etc/config/ups/upsmon.conf di atas — jadi setelah file benar, cukup jalankan:
/usr/sbin/upsmon
Cek apakah benar berjalan (harus muncul dua proses — parent dengan hak istimewa dan worker tak berhak):
ps | grep -i upsmon
Setelah berjalan, NAS langsung muncul pada daftar klien server NUT, dan koneksi terautentikasi dengan benar.
3. Buat tetap berjalan (watchdog crontab)
GUI QNAP tidak mengetahui proses ini dijalankan manual, jadi tidak survive setelah reboot, dan setiap perubahan setting daya di GUI atau ups.sh restart dapat mematikannya. Dibanding repot dengan autorun.sh QNAP (yang harus diaktifkan di Control Panel → Hardware → General, dan sering dinonaktifkan diam-diam oleh pemindaian Malware Remover), watchdog crontab jauh lebih andal:
*/5 * * * * pgrep -x upsmon >/dev/null || /usr/sbin/upsmon
Ini memeriksa tiap 5 menit apakah upsmon berjalan, dan akan menjalankannya kembali bila tidak — menghadapi reboot, crash, dan intervensi GUI.
Penting di QNAP: mengedit /etc/config/crontab secara langsung (misal pakai Notepad++ lewat SFTP) tidak terpakai cukup dengan crond.sh restart. Kamu harus reload file itu ke crontab aktif:
crontab /etc/config/crontab && /etc/init.d/crond.sh restart
Lalu pastikan sudah loaded:
crontab -l
(Juga pastikan line ending-nya Unix/LF jika edit dari Windows — CRLF bisa bikin cron diam-diam mengabaikan baris.)
Hasil
upsmon berjalan terus, terautentikasi, dan muncul dengan benar di daftar klien terhubung server NUT.
upsc <ups_name>@<NUT_SERVER_IP> tetap mengonfirmasi data UPS live.
- Watchdog cron menjaga tetap berjalan meski reboot dan gangguan GUI, tanpa perlu mekanisme autorun.sh QNAP yang rapuh.
Ringkasan penyebab utama
Opsi GUI “Network UPS slave” bawaan QNAP hanyalah wrapper sederhana tanpa autentikasi (upsutil) — ini bukan sama dengan menjalankan daemon NUT upsmon standar, dan tidak bisa monitoring klien terautentikasi dengan benar. Jika halaman status UPS QNAP menunjukkan field kosong dan NAS tidak muncul di daftar klien server NUT, cek apakah upsmon benar-benar berjalan (ps | grep upsmon) — kemungkinan besar tidak, terlepas dari apa yang tampil di GUI.