Zum Inhalt springen

USV mit NUT

Eine per USB an ein NAS, einen Raspberry Pi oder einen Server angeschlossene USV wird meist von Network UPS Tools (NUT) überwacht: Dessen Daemon upsd veröffentlicht auf TCP-Port 3493, was die USV meldet. DumbMonit liest diesen Server wie jeder NUT-Client: ob die USV am Netz oder an der Batterie läuft, ob die Batterie schwach oder verschlissen ist, die Ladung, die verbleibende Laufzeit, die Last, die Eingangsspannung und das Alter der Batterie. Ein Server veröffentlicht oft mehrere USV; alle werden in einer Verbindung gelesen, und jede Serie trägt den Namen ihrer USV.

Für eine USV mit eigener Netzwerkkarte liest der SNMP-Gerätetyp stattdessen die Standard-UPS-MIB.

Alle Metriken haben das Präfix dumbmonit_nut_ und tragen das Label ups, den USV-Namen in ups.conf (ups auf einem Synology-NAS, qnapups auf einem QNAP). Eine Variable, die die USV nicht veröffentlicht, erzeugt keine Serie.

MetrikWasLabels
ups_on_line, ups_on_battery, ups_low_battery, ups_high_battery, ups_replace_battery, ups_charging, ups_discharging, ups_bypass, ups_calibrating, ups_off, ups_overload, ups_trim, ups_boost, ups_forced_shutdown, ups_alarmDie Flags von ups.status (OL, OB, LB, HB, RB, CHRG, DISCHRG, BYPASS, CAL, OFF, OVER, TRIM, BOOST, FSD, ALARM): 1 wenn gesetzt, sonst 0, bei jedem Lesen alleups
ups_status_infoWert 1, das rohe ups.statusups, status
battery_charge_percent, battery_charge_low_percentLadung und die Ladung, unter der die USV eine schwache Batterie meldetups
battery_runtime_seconds, battery_runtime_low_secondsverbleibende Laufzeit an der Batterie bei der aktuellen Last und die Laufzeit bei schwacher Batterieups
battery_voltage_volts, battery_temperature_celsiusups
battery_age_secondsZeit seit battery.date (installiert oder ersetzt), sonst battery.mfr.dateups, source (installed, manufactured)
input_voltage_volts, input_voltage_nominal_volts, input_frequency_hertzNetzseite; 0 V bei einem Ausfallups
output_voltage_volts, output_frequency_hertzLastseiteups
ups_load_percentLast in Prozent der USV-Kapazitätups
ups_realpower_watts, ups_realpower_nominal_watts, ups_power_va, ups_power_nominal_vaaufgenommene Leistung und Nennleistung, wenn die USV sie meldetups
ups_temperature_celsiusups
ups_self_test_failed1, wenn der letzte Selbsttest (ups.test.result) einen Fehler oder eine Warnung meldet, 0, wenn er bestanden wurde; fehlt, wenn kein Test liefups, result
ups_infoWert 1ups, manufacturer, model, firmware, driver, battery_type, description
ups_data_stale1, wenn upsd antwortet, aber keine frischen Daten von der USV hat (DATA-STALE, DRIVER-NOT-CONNECTED)ups
ups_driver_connected0, wenn der NUT-Treiber dieser USV nicht läuftups
server_upsAnzahl der vom Server veröffentlichten USV
server_infoWert 1version

Seriennummern kommen nie in ein Label. Pro Server werden höchstens 32 USV gelesen.

Die zutreffenden integrierten Regeln: USV an der Batterie, USV-Batterie schwach, USV-Batterie muss ersetzt werden, USV-Last hoch, USV-Laufzeit kurz, USV-Daten veraltet, außerdem Monitor nicht erreichbar, wenn der NUT-Server selbst nicht mehr antwortet.

Das Panel über den Diagrammen liest, was die Prüfung gespeichert hat; das Öffnen der Seite verbindet sich nie mit dem NUT-Server. Eine Karte pro USV: ihr Zustand in Worten (am Netz, an der Batterie, Batterie schwach, Batterie ersetzen, Bypass, Überlast …), die Ladung, die verbleibende Laufzeit, die Last, die Eingangsspannung und das Alter der Batterie.

  1. Finden Sie den NUT-Server: Der Rechner, an den die USV angeschlossen ist (ein NAS, ein Raspberry Pi, ein Server), führt upsd auf TCP-Port 3493 aus. Prüfen Sie vom DumbMonit-Host aus, dass er antwortet, und notieren Sie die Namen seiner USV.

    printf 'LIST UPS\nLOGOUT\n' | nc nas.lan 3493

    Mit installierten NUT-Client-Tools liefert upsc -l nas.lan dieselbe Liste.

  2. Bei einer einfachen NUT-Installation lassen Sie upsd auf einer Adresse lauschen, die der DumbMonit-Host erreichen kann: Fügen Sie diese Zeile in upsd.conf ein, öffnen Sie TCP-Port 3493 in der Firewall für den DumbMonit-Host und starten Sie upsd neu. Zum Lesen ist kein Konto nötig: upsd lässt jeden akzeptierten Host die Variablen lesen und ändert nichts ohne einen Benutzer mit dem Recht dazu.

    LISTEN 0.0.0.0 3493
  3. Bei einem NAS heißt derselbe Schalter anders. Synology DSM: Systemsteuerung → Hardware & Energie → USV, haken Sie Netzwerk-USV-Server aktivieren an und fügen Sie den DumbMonit-Host unter Zugelassene DiskStation-Geräte hinzu; die USV heißt ups. QNAP: die USV-Seite der Systemsteuerung, Netzwerk-USV-Master aktivieren, mit dem DumbMonit-Host unter den erlaubten Adressen; die USV heißt qnapups. TrueNAS: der USV-Dienst mit angehaktem Remote Monitor.

  4. Optional: DumbMonit sendet Benutzername und Passwort nur, wenn Sie welche eingeben, und upsd verlangt zum Lesen keine. Wenn Ihre Richtlinie jeden Client benannt sehen will, fügen Sie in upsd.users einen Benutzer ohne actions oder instcmds mit einem langen zufälligen Passwort hinzu und starten Sie upsd neu.

    [dumbmonit]
    password = a-long-random-password
  5. Geben Sie in DumbMonit die Adresse des NUT-Servers ein, zum Beispiel „nas.lan“. Jede von ihm veröffentlichte USV wird überwacht; um nur einige zu überwachen, tragen Sie deren Namen in die Option USV ein.

  6. DumbMonit liest nur: Es sendet LIST UPS und LIST VAR, nie LOGIN, SET, INSTCMD oder FSD, sodass der Server es nie als Secondary zählt, auf den er vor dem Herunterfahren warten müsste.

ZugangsdatenFelder
Keine AuthentifizierungDer Standard: upsd lässt jeden akzeptierten Host die USV-Variablen lesen.
upsd-Benutzername / PasswortWird vor dem Lesen mit USERNAME und PASSWORD gesendet. upsd prüft sie nur bei Befehlen, die DumbMonit nie sendet.

Adresse: ein Hostname oder eine IP (nas.lan), host:port oder die Form ups@host von upsc, von der nur der Host behalten wird. Optionen: Port (3493), die zu überwachende USV (standardmäßig alle) und das Timeout pro Austausch (10 s).

Eine abgelehnte Verbindung oder keine Antwort gilt als Monitor nicht erreichbar. Fährt der Rechner, auf dem der NUT-Server läuft, bei dem von ihm gemeldeten Ausfall herunter (er ist oft sein eigener upsmon-Primary), werden die USV-Alarme als unterdrückt ausgeblendet, während Monitor nicht erreichbar für denselben Monitor auslöst: Lesen Sie den Alarm Monitor nicht erreichbar als Zeichen, dass der Stromausfall gewonnen hat. Betreiben Sie den NUT-Server auf einem Rechner, der die anderen überlebt, oder überwachen Sie die USV von einem zweiten NUT-Server aus. ACCESS-DENIED wird als Zugangsdatenfehler angezeigt und ein vom Server nicht veröffentlichter USV-Name als Konfigurationsfehler; keiner von beiden weckt nachts jemanden. Die Verbindung ist reines TCP: STARTTLS wird nicht verwendet, und nichts Gelesenes ist geheim.