UPS Monitoring · 10 min read · Oct 16, 2025
Überwachung des UPS-Stromstatus mit Network UPS Tools (NUT) 2.2.0 auf mehreren OpenSuSE 10.3-Servern
Überwachung des UPS-Stromstatus mit Network UPS Tools (NUT) 2.2.0 auf mehreren OpenSuSE 10.3-Servern
Network UPS Tools ist eine Sammlung von Programmen, die eine gemeinsame Schnittstelle zur Überwachung und Verwaltung von UPS-Hardware bieten.
Das Hauptziel des Network UPS Tools (NUT)-Projekts ist es, eine zuverlässige Überwachung der UPS-Hardware bereitzustellen und sichere Herunterfahren der angeschlossenen Systeme zu gewährleisten.
Dies ist ein sich entwickelndes Projekt zur Überwachung einer großen Auswahl an UPS-Hardware. Viele Modelle haben Anschlüsse auf der Rückseite, um anderen Geräten zu ermöglichen, den Status zu überprüfen. Wenn es grundlegende Informationen über den Strom- und Batteriestatus liefert, kann es wahrscheinlich ohne allzu große Schwierigkeiten unterstützt werden. Auch fortgeschrittene Funktionen bei den höherwertigen Modellen werden unterstützt, um die Verfolgung von Werten über die Zeit wie Temperatur und Spannung zu ermöglichen.
Netzwerkkommunikation wird verwendet, damit mehrere Systeme eine einzige physische UPS überwachen und bei Bedarf gemeinsam herunterfahren können, ohne spezielle “Sharing-Hardware” an der UPS selbst.
Vorinstallation
Bevor Sie alles auf dem Server zum Laufen bringen, stecken Sie die UPS in eine Steckdose und verbinden Sie das Signalkabel (seriell oder USB) mit dem Server, der upsd ausführen wird. Schließen Sie keine Server-Stromkabel an die Steckdose der UPS an, bis Sie sich sicher fühlen, wie NUT funktioniert und wie es sich mit Ihrer Hardware verhält. Es wird oft empfohlen, eine Dummy-Last wie eine Lampe zu verwenden, wenn Sie die UPS testen. Dies zeigt Ihnen auch, wann die UPS Strom liefert und wann sie aus ist, und gibt Ihnen die Möglichkeit, sicher zu experimentieren und Vertrauen in die Befehle zu gewinnen, auf eine Weise, die Sie nicht tun können, sobald Sie einen Produktionsserver an die UPS anschließen.
Installation
Installieren Sie das nut RPM-Paket. Wenn Sie YaST2 verwenden, werden die erforderlichen Pakete automatisch hinzugefügt. Von der Kommandozeile aus können Sie
yast2 -i nutals root verwenden.
In OpenSuSE 10.3 wird nut 2.2.0 installiert.
Dies platziert alle erforderlichen Binärdateien in Ihrem Pfad und eine Reihe von Skelett-Konfigurationsdateien. Sie müssen die Dateien als root bearbeiten, um Ihre UPS-Hardware zu definieren.
Konfiguration
Konfiguration einer lokal verbundenen UPS
Öffnen Sie entweder eine Root-Shell oder verwenden Sie z.B.
sudo vium die Konfigurationsdateien zu bearbeiten.
In der Datei /etc/ups/ups.conf haben Sie einen Dummy-Abschnitt mit Standardwerten, der so aussieht:
[myups]
driver = undefined
port = /dev/undefined
desc = "Lokale UPS"Bearbeiten Sie die Datei und setzen Sie den Treiber auf den richtigen Treiber für Ihre UPS, den Port auf den, an dem Sie das Signalkabel angeschlossen haben, und fügen Sie eine Beschreibung hinzu. Siehe /usr/share/nut/driver.list für eine Liste unterstützter Marken und Modelle.
Hier ist mein Eintrag für eine APC SmartUPS 1400, die an den seriellen Port angeschlossen ist.
[apc_smartups_1400]
driver = apcsmart
port = /dev/ttyS0
desc = "APC SmartUPS 1400"Sie müssen die Datei /etc/ups/upsd.users bearbeiten, um Benutzer und Berechtigungen zu konfigurieren. Die Passwörter werden während der Installation automatisch generiert, sodass Sie sie auf diesen zufälligen Werten belassen können, wenn Sie möchten. Wenn Sie ein Passwort verwenden möchten, das Sie sich merken können, bearbeiten Sie die Datei. Es gibt zwei Einträge in der Standarddatei, ich habe auch einen Admin-Benutzer hinzugefügt, damit ich die UPS von der Kommandozeile aus kalibrieren und testen kann.
Beachten Sie, dass diese Benutzer nur von localhost aus eine Verbindung herstellen können, sodass die Sicherheit hier vorerst kein großes Problem darstellt. Bei Remote-Slaves sollten Sie ein fortgeschritteneres Passwort verwenden als das, was ich in diesen Beispielen habe.
Hier sind die drei Benutzer, die in der Datei /etc/ups/upsd.users definiert sind.
[upsmaster]
password = masterpass123
allowfrom = localhost
upsmon master
[upsslave]
password = slavepass123
allowfrom = localhost
upsmon slave
[upsadmin]
password = upspass
allowfrom = localhost
actions = SET
instcmds = ALLDer upsd-Daemon fragt nur die UPS ab, Sie benötigen andere Programme, um upsd nach dem Status zu überprüfen. Bearbeiten Sie deren Konfigurationsdateien, um den neuen Namen der UPS sowie den Login und das Passwort widerzuspiegeln.
/etc/ups/upsmon.conf# MONITOR myups@localhost 1 upsmaster 67fc9377aa master
MONITOR apc_smartups_1400@localhost 1 upsmaster masterpass123 masterIch bevorzuge es auch, eine “Wall”-Benachrichtigung zu erhalten, wenn der Strom wiederhergestellt wird, falls ich remote arbeite und es zu einem kurzen Stromausfall kommt. Ändern Sie die Zeile:
NOTIFYFLAG ONLINE SYSLOGin
NOTIFYFLAG ONLINE SYSLOG+WALLin der Datei /etc/ups/upsmon.conf.
/etc/ups/hosts.conf ist nur für die enthaltenen CGI-Programme, aber Sie können hier auch die richtigen Informationen hinzufügen.
/etc/ups/hosts.conf# MONITOR myups@localhost "Lokale UPS"
MONITOR apc_smartups_1400@localhost "APC SmartUPS 1400"Jetzt können wir endlich all diese Programme starten:
rcupsd startlinux:~ # rcupsd start
Starting NUT UPS drivers done
Starting NUT UPS server done
Starting NUT UPS monitor done
Überprüfen Sie, ob Sie betriebsbereit sind und ob Sie die gespeicherten Werte von der UPS lesen können. Zuerst listen Sie verfügbare Geräte mit
upsc -l… dann lesen Sie alle Werte mit:
upsc linux:~ # upsc -l
apc_smartups_1400
linux:~ # upsc apc_smartups_1400
battery.alarm.threshold: 0
battery.charge: 100.0
battery.charge.restart: 00
[…]
Testen
Bevor Sie Ihren Server mit Strom versorgen, testen Sie einen realistischen Stromausfall, indem Sie das Netzkabel zur UPS-Einheit abziehen. Es sollte auf Batterie umschalten und Sie erhalten eine Warnmeldung. Wenn Sie angemeldet sind und KDE ausführen, erhalten Sie ein Popup von KWrited mit einer Nachricht wie:
Broadcast Message from upsd@linux
(somewhere) at 22:51
UPS apc_smartups_1400@localhost on battery
Stecken Sie das Kabel wieder ein und beobachten Sie die beruhigenden Nachrichten, dass der Strom wiederhergestellt wurde.
Broadcast Message from upsd@linux
(somewhere) at 22:51
UPS apc_smartups_1400@localhost on line power
Wenn dies funktioniert, können Sie Ihren Server herunterfahren und das Netzkabel an die UPS anschließen. Im Falle eines Stromausfalls erhalten Sie die Nachrichten, die Sie während des Tests gesehen haben. Sobald die Batterieladung so niedrig ist, dass die UPS ein “niedriger Batteriestand”-Signal sendet, wird NUT den Server herunterfahren. Möglicherweise können Sie diesen Schwellenwert in den UPS-Registern einstellen, oder Sie müssen etwas skripten, das ein
shutdown -h -t(Systemhalt nach
shutdown -c(abbrechen des Herunterfahrens) ausführt, wenn die UPS wieder am Netzstrom ist. Nicht alle UPS-Geräte senden jedoch diese “wiederhergestellt”-Nachricht. Hier müssen Sie einfach testen und anpassen.
Betrieb Ihrer Geräte an der UPS
Ihr Server läuft jetzt mit Batteriestrom, bis die Batterien leer sind. Sie möchten vielleicht einmal tatsächlich den Server bis zum Ausfall der Batterien betreiben, nur um eine Vorstellung davon zu bekommen, wie viel Batterielaufzeit Sie haben. Die meisten UPS-Geräte können Ihnen die Last und einen Batterieladeprozentsatz anzeigen. UPS sind großartig, wenn Sie an etwas wirklich Wichtigem arbeiten und es zu einem kurzen Stromstoß oder Brownout kommt, und im Falle eines langanhaltenden Stromausfalls können Sie die Maschine in den Ruhezustand versetzen, in den Standby-Modus versetzen oder herunterfahren, wenn die Batterien niedrig sind.
Wenn Sie Ihr BIOS so einstellen, dass die Maschine automatisch startet, wenn sie Strom erhält, wird sie automatisch booten, wenn der Strom wiederhergestellt wird. Im Falle wiederkehrender Stromausfälle möchten Sie nicht, dass ein Server läuft und die Batterien entleert. Denken Sie einfach an eine UPS als eine Einheit, die Sie vor Stromstößen und -spitzen schützt und Ihnen ein sicheres Herunterfahren im Falle eines Stromausfalls ermöglicht. Lassen Sie einen Server nicht mit Batteriestrom laufen, nur weil Sie können. Batterien in einer UPS sind nicht dafür gedacht, entladen zu werden, und wenn der Strom wiederhergestellt wird, benötigen sie normalerweise einige Stunden, um vollständig aufgeladen zu werden. Sie möchten die Server nicht ohne Sicherheitsnetz direkt nach einem Stromausfall betreiben - fahren Sie die Server mit ausreichend Batteriestrom herunter und sparen Sie ihn für die schwierige Zeit direkt nach der Wiederherstellung des Stroms, wenn jedes Gerät in der gesamten Stadt gleichzeitig hochfährt und beginnt, Strom zu verbrauchen. Aus demselben Grund sollten Sie die Geräte, die Sie an der UPS betreiben, auf wichtige Server beschränken. Vergessen Sie nicht, notwendige unterstützende Hardware wie Netzwerkgeräte, KVMs und Monitore hinzuzufügen, die zum Betrieb der Server während eines Stromausfalls benötigt werden. Vermeiden Sie es, Drucker und die meisten Arbeitsstationen mit UPS-Strom zu betreiben. Halten Sie Notbeleuchtung im Serverraum bereit, damit Sie dort arbeiten können, wenn das normale Licht aus ist. Wenn Sie Server eine Weile mit Ihrer eigenen Stromquelle (z.B. einem Generator) betreiben, möchten Sie vielleicht sogar die HVAC mit derselben Stromversorgung betreiben, um eine Überhitzung des Raums zu vermeiden.
Denken Sie auch daran, dass, wenn alle Geräte gleichzeitig Strom ziehen - Server und Arbeitsstationen alle gleichzeitig booten, alle Monitore und Lichter aufleuchten und Laserdrucker anfangen, sich aufzuwärmen - Sie damit rechnen müssen, eine oder zwei Sicherungen durchzubrennen. Was dann Ihren Stromausfall verlängert. Stellen Sie sicher, dass alle nicht kritischen Geräte während Stromausfällen abgeschaltet sind und danach manuell wieder eingeschaltet werden.
Remote-Clients
Zulassen von Remote-Clients
Jetzt, da Sie wissen, dass die lokale UPS funktioniert, wie sie sollte - den Server mit Strom versorgen und das Betriebssystem über die serielle Schnittstelle oder USB benachrichtigen - möchten Sie möglicherweise weitere Server an die restlichen Steckdosen anschließen. Es gibt jedoch nur ein USB- oder serielles Kabel. Hier benötigen Sie den NUT upsd-Daemon auf der Maschine mit dem seriellen Kabel, um die anderen Server über das Netzwerk zu benachrichtigen.
Beginnen Sie damit, die /etc/ups/upsd.conf zu bearbeiten, um Clients zuzulassen. Hier ist das gesamte Subnetz erlaubt, Sie möchten es möglicherweise feiner abstufen und nur bestimmte IPs einbeziehen.
ACL all 0.0.0.0/0
ACL localhost 127.0.0.1/32
ACL upsnet 192.168.1.0/24
ACCEPT localhost
ACCEPT upsnet
REJECT allErlauben Sie nun dem Slave, sich von diesem Netzwerk in /etc/ups/upsd.users zu verbinden:
[upsslave]
password = slavepass123
allowfrom = localhost upsnet
upsmon slaveStarten Sie den upsd-Daemon erneut, um die Änderungen zu übernehmen.
rcupsd restartlinux:~ # rcupsd restart
Shutting down NUT UPS monitor done
Shutting down NUT UPS server done
Shutting down NUT UPS drivers. done
Starting NUT UPS drivers done
Starting NUT UPS server done
Starting NUT UPS monitor done
Oder besser, laden Sie die Konfiguration neu, das ist viel schneller, als die Daemons neu zu starten, wenn Sie nur eine Einstellung außer den Treibereinstellungen, die einen Dienstneustart erfordern, wie oben, neu konfigurieren müssen.
rcupsd reloadlinux:~ # rcupsd reload
Reload service NUT UPS (excluding upsdrvctl) done
Und erlauben Sie den Clients durch die Firewall (OpenSuSE führt standardmäßig eine iptables-Firewall namens SuSEfirewall). upsd hört auf TCP-Port 3493 und hört standardmäßig auf allen Schnittstellen.
Erstellen Sie eine SuSEfirewall2-Dienstdefinition, da das RPM keine enthalten hat. Erstellen Sie eine neue Datei mit dem Namen /etc/sysconfig/SuSEfirewall2.d/services/upsd mit folgendem Inhalt:
# Dienstbeschreibung für upsd, den UPS-Daemon von NUT
# (Network UPS Tools)
#
## Name: NUT upsd
## Beschreibung: Ermöglicht die Fernüberwachung des UPS-Stromstatus
# durch Leerzeichen getrennte Liste erlaubter TCP-Ports
TCP="3493"
# durch Leerzeichen getrennte Liste erlaubter UDP-Ports
UDP=""
# durch Leerzeichen getrennte Liste erlaubter RPC-Dienste
RPC=""
# durch Leerzeichen getrennte Liste erlaubter IP-Protokolle
IP=""
# durch Leerzeichen getrennte Liste erlaubter UDP-Broadcast-Ports
BROADCAST=""Starten Sie nun
YaSTals root und wählen Sie “Sicherheit und Benutzer” -> “Firewall”. Wählen Sie das richtige Netzwerk aus und wählen Sie NUT upsd aus der Dropdown-Liste. Fügen Sie den Dienst hinzu und klicken Sie auf die Schaltfläche Weiter. Dies fügt upsd zur Liste der erlaubten Dienste in der Variablen FW_CONFIGURATIONS_EXT im Konfigurationsskript /etc/sysconfig/SuSEfirewall2 hinzu. Port 3493 ist jetzt durch die iptables-Firewall erlaubt.
Konfigurieren von Remote-Clients
Installieren Sie nut auf einer Remote-Maschine, diese wird linux64 genannt.
Kommentieren Sie alles in /etc/ups/ups.conf aus, da wir keine lokale UPS angeschlossen haben:
#[myups]
# driver = undefined
# port = /dev/undefined
# desc = "Lokale UPS"Bearbeiten Sie /etc/ups/upsmon.conf, um den Server zu überwachen, an den die UPS angeschlossen ist:
#MONITOR myups@localhost 1 upsmaster 04fb251a3f master
MONITOR apc_smartups_1400@linux 1 upsslave slavepass123 slaveFügen Sie den UPS-Server zu /etc/ups/hosts.conf hinzu:
#MONITOR myups@localhost "Lokale UPS"
MONITOR apc_smartups_1400@linux "APC SmartUPS 1400"Starten Sie nun den upsd-Dienst, der den tatsächlichen upsd und den UPS-Treiber ignoriert, da sie nicht konfiguriert sind, und nur upsmon startet.
rcupsd startlinux64:~ # rcupsd start
Starting NUT UPS monitor done
Überprüfen Sie, ob die Verbindung funktioniert und ob Sie die Statuswerte des Remote-UPS-Servers lesen können.
upsc apc_smartups_1400@linuxlinux64:~ # upsc apc_smartups_1400@linux
battery.alarm.threshold: 0
battery.charge: 094.0
battery.charge.restart: 00
[…]
Testen Sie die UPS erneut und überprüfen Sie, ob der neue Client auch die Nachricht erhält
Broadcast Message from upsd@linux64
(somewhere) at 0:13 …
UPS apc_smartups_1400@linux on battery
Schließen Sie das Netzkabel für diesen Server an die UPS an, und Sie haben jetzt zwei Server, die vor Stromausfällen geschützt sind und beide den Stromstatus überwachen.
Referenzen
- Die Homepage der Network UPS Tools (NUT)
Erhalte neue Beiträge in deinem Posteingang.
Kein Spam. Jederzeit abmelden.