Bis jetzt hatte ich immer ein Check-Plugin für Icinga um die USV direkt zu überwachen. Jedoch gab es für die mir vorliegende USV noch kein Plugin. Bei meiner Suche bin ich dabei auf die Network UPS Tools gestoßen.
Das Ziel der Network UPS Tools(NUT) ist das einheitliche Auslesen und Ansteuern verschiedener USVs und Stromversorgungsgeräte. Dabei werden nach eigenen Angaben Geräte von mehr als 140 Anbietern und mehrere tausende Modelle unterstützt. Ein Blick auf die Kompatibilitätsliste zeigt den gesamten Umfang der Unterstützten Geräte und auch die Qualität der verfügbaren Treibers. Bei den Treibern handelt es sich um eine Art Plugin für den NUT Server. Mit ihnen wird die eigentliche Kommunikation mit dem Stromversorgungsgerät realisiert.
Unter CentOS/RHEL 7 können die NUT wie folgt installiert werden. Fertige Pakete sind auch in den Repositories von anderen Linux Distributionen wie Debian oder Ubuntu enthalten.
$ sudo yum install nut
Nach der Installation muss das jeweilige Gerät Konfiguriert werden. Dabei kann das mitgelieferte Tool nut-scanner
behilflich sein. Im vorliegenden Fall soll eine USV per SNMP ausgelesen werden. Zu beachten ist, dass es sich hier um ein Testgerät handelt und daher die SNMP-Community noch auf public
eingestellt ist. Dies sollte natürlich vor dem produktiven Betrieb unbedingt geändert werden. Das folgende Beispiel zeigt den verwendeten Befehl und die erzeugte Konfiguration.
$ nut-scanner --snmp_scan -c public -m 192.168.0.1/32
Cannot load XML library (libneon.so.27) : file not found. XML search disabled.
Scanning SNMP bus.
[nutdev1]
driver = "snmp-ups"
port = "192.168.0.1"
desc = "***"
mibs = "netvision"
community = "public"
Die erzeugte Konfiguration kann bei Bedarf noch angepasst und anschießend in die Datei /etc/ups/ups.conf
eingefügt werden. Damit die Änderungen übernommen werden ist ein Neustart des NUT Servers notwendig.
$ sudo systemctl restart nut-server.service
Wurde alles eingetragen und war der Neustart des Dienstes erfolgreich, können die Werte der USV wie folgt abgerufen werden. Im folgenden Beispiel wurde die Ausgabe stark gekürzt.
$ upsc nutdev1@localhost
battery.charge: 0.00
battery.runtime: 600.00
battery.voltage: 41.00
[...]
Hinweise
Teilweise hat ein einfacher restart
nicht ausreicht, damit die Konfigurationsänderung sauber übernommen wird. Hier musste zunächst der nut-server
gestoppt und anschließend wieder gestartet werden.
Links
- Webseite: Network UPS Tools (englisch)