Konfiguration einer APC-USV unter Proxmox

Veröffentlicht von brun am

Wie man eine APC-USV (hier APC CS350) unter Proxmox konfiguriert:

Diese Anleitung basiert auf: https://www.maffert.net/proxmox-debian-usv-ups-von-apc-installieren-und-konfigurieren/

0. USV an Server anschließen und einschalten

  1. Die Steuerung übernimmt das Programm apcupsd. Programm installieren:
apt-get install apcupsd

2. Konfigurationsdatei bearbeiten:

nano /etc/apcupsd/apcupsd.conf

In dieser Datei müssen folgende Dinge geändert werden:

UPSNAME *Beliebigen Gerätenamen eingeben*
UPSCABLE usb
UPSTYPE usb
DEVICE *leerlassen, Programm erkennt die USV automatisch*

NETSERVER on
NISIP 0.0.0.0

In dieser Datei können weiterhin angepasst werden:

  • ONBATTERYDELAY
    • Die Wartezeit zwischen Stromausfall und auslösen des „ON BATTERY“-Event in Sekunden. Standard ist 6 Sekunden damit bei einem kurzen Ausfall nicht direkt eine Aktion ausgelöst wird.
  • BATTERYLEVEL
    • Ist die Grenze in Prozent verbleibender Batteriekapazität, ab wann der Server herruntergefahren wird.
  • MINUTES
    • Wenn die von der USV berechnete verbeleibende Laufzeit kleiner als dieser Wert (in Minuten) ist, wird der Server heruntergefahren.
  • EVENTSFILE
    • Der Pfad zur Log Datei
  • POLLTIME
    • Zeit in Sekunden, wie oft der Server die USV nach ihrem Status „abfragt“

3. Dem Programm „sagen“, dass es fertig konfiguriert ist:

    In der Datei:
nano /etc/default/apcupsd

ISCONFIGURED=yes
    setzen.

4. Programm starten und Funktion prüfen:

apcupsd start
apcaccess status

5. Optional: Webinterface installieren:

apt-get install apcupsd-cgi apache2
a2enmod cgi
systemctl restart apache2

Aufruf der Statusseite unter:

http://SERVERIP/cgi-bin/apcupsd/multimon.cgi

Konfiguration von Slaves

Wenn an der USV weitere Server hängen, können diese so konfiguriert werden, dass im Falle eines Stromausfalls der MASTER-Server (der mit der USV per USB verbunden ist) bei den SLAVES das herunterfahren veranlasst.

Diese Schritte können auch in Proxmox-VMs ausgeführt werden, welche nicht über die Proxmox-Oberfläche heruntergefahren werden können.

Siehe dazu auch https://www.pontikis.net/blog/apc-ups-master-slave-setup-apcupsd

  1. Änderungen in der Konfiguration des Masters:
nano /etc/apcupsd/hosts.conf

Hier eintragen der IP-Adressen der Server, welche als SLAVE arbeiten sollen (dies sollten statische IPs sein!):

# MONITOR <address> "<host description>"
MONITOR 192.168.1.52 "Backup server"
MONITOR 192.168.1.51 "Server 2"
systemctl restart apcupsd.service

2. Konfiguration der SLAVE-Computer:

apt-get install apcupsd
nano /etc/apcupsd/apcupsd.conf

Hier bearbeiten:

UPSCABLE ether
UPSTYPE net
POLLTIME 10
# IP des MASTER COMPUTER (hier 192.168.1.52), Der Standardport für apcupsd ist 3551
DEVICE 192.168.1.52:3551

Den Rest der Konfiguration läuft wie oben ab.

Optional: Webinterface zum schnellen Aufruf der USV-Statusseiten

Ich habe ein kleines Webinterface erstellt, welches den schnellen Zugriff auf die Statusseite und auf das Proxmox-Webinterface ermöglicht.

Zur Nutzung einfach die Folgenden Befehle ausführen:

  1. Eine Datei „index.html“ im Webserver-Verzeichnis erstellen
nano /var/www/html/index.html

2. Den Folgenden Inhalt in diese Datei einfügen. Die IP-Addresse zum Proxmox-Webinterface muss noch durch die IP-Adresse des jeweiligen Proxmox-Servers ersetzt werden :

<title>Proxmox-USV</title>
<body>
<h3>USV Status</h3> <br>
<a href="/cgi-bin/apcupsd/multimon.cgi">
apcupsd MultiMon
</a><br>
<a href="/cgi-bin/apcupsd/upsstats.cgi">
apcupsd Stats
</a><br>
<a href="/cgi-bin/apcupsd/upsfstats.cgi">
apcupsd fStats
</a><br><br><br>
<h3>Proxmox Webinterface</h3><br>
<a href="https://192.168.1.12:8006">   <!-- hier IP-Adresse anpassen! -->
Proxmox Webinterface
</a>
</body>

Anschließend die Datei speichern. Nun kann das Interface einfach unter der Server-IP aufgerufen werden (http://–SERVER-IP–).

Kategorien: IT

12 Kommentare

Danyel · 19. September 2021 um 9:26

Geht dieses vorgehen nur mit einer APC usv?

    brun · 20. September 2021 um 14:53

    Ich habe die Software nur mit einer USV der Marke APC getestet. Anhand des Namens „apcupsd“ der Software gehe ich davon aus, dass diese Software nur mit APC Modellen kompatibel ist.

Thomas · 22. Oktober 2021 um 12:40

Ich habe hier gerade 3 Server als Proxmox Cluster aufgebaut, jeder Server hat redundante Netzteile und und ist mit 2 unterschiedlichen USVs (von insgesamt 3) verbunden. Wenn nun eine USV ausfällt oder kein Strom mehr hat, bleibe ich entspannt. Nur wenn 2 USVs Alarm schlagen müsste gehandelt werden.
1. Wie mach ich das?
2. Wie verhindere ich das der HA-Cluster anfängt die Maschinen zu verschieben?
Idee?

Gruß Thomas

    brun · 23. Oktober 2021 um 12:41

    Hallo Thomas,
    prinzipiell ist es möglich mehrere USVs durch die Software anzusteuern indem man mehrere config-Dateien anlegt und somit mehrere Instanzen von apcupsd laufen hat (http://www.apcupsd.org/manual/manual.html#controlling-multiple-upses-on-one-machine). Für dein beschriebenes Szenario gibt es meiner Ansicht nach leider keine (einfache) Möglichkeit dieses mit apcupsd umzusetzen. Man könnte eventuell ein script erstellen, welches den USV-status abfragt und das herunterfahren auslöst. Vielleicht kann aber eine andere Software Abhilfe schaffen: NetworkUPSTools (NUT). Damit scheint das möglich zu sein: https://networkupstools.org/docs/user-manual.chunked/ar01s06.html#BigServers.
    Was deine zweite Frage angeht glaube ich, dass es dafür eine Proxmox-interne Einstellung gibt, ich habe leider noch nicht mit HA-Clustern in Proxmox gearbeitet.
    Ich hoffe ich konnte dir ein wenig weiterhelfen.
    LG

Christian · 23. September 2022 um 13:29

Moin,
ich habe das gerade mit einer Tecnoware Exa+2000 aus probiert. Der Server ist Klaglos heruntergefahren. Das Programm scheint auch für andere USVs teilweise zu funktionieren. Zum Glück! Sonst währen 400 € für den fast Müll gewesen. Jetzt kann ich auch meine Fritz!Box daran anschließen, damit ich noch kurz Internet und Telefon habe. Mit der USV hat der Server eine Stunde durchgehalten. War wohl deutlich überdimensioniert. Ich danke für den Beitrag.

Matthias · 15. Januar 2023 um 22:44

Hi, danke für die kurze Hilfestellung bzgl des Webinterfaces. Kannst du mir jetzt noch einen Tipp geben wie ich meine Smart UPC die ich mir gerade mit frischen Batterien gekauft habe kalibiere? Bzw. machst du in regelmäßigen Abständen einen Selbst-Test?

    brun · 21. Januar 2023 um 22:10

    Hallo,
    eine Kalibrierung kann mit Hilfe des Tools apctest erfolgen. Damit man dieses Tool starten kann muss allerdings apcupsd vorher gestoppt werden, da es sonnst Zugriffskonflikte auf den USB-Port gibt. apctest ist in der oben beschriebenen Installation bereits enthalten. Damit kann auch ein Selbsttest gestartet sowie ein Intervall für einen automatischen Test eingestellt werden. Ich führe Selbsttests nur händisch und sehr selten durch. Wenn ich den Server allerdings sowieso mal neu starten muss trenne ich manchmal auch einfach den Strom und lasse das Herunterfahren durch die USV auslösen. Damit ist auch gleich die korrekte Funktion von apcupsd getestet :).
    LG

RF · 17. September 2023 um 14:02

Hallo,
super tolle Anleitung. Bei der Installation gab es keine Fehlermeldungen und habe die Installation wie oben bechrieben.
Hardware: APC USB BX700U-GR

Leider bekomme ich immer folgende Meldung:

—Status apcupds.service——————————–
apcupsd.service – UPS power management daemon
Loaded: loaded (/lib/systemd/system/apcupsd.service; enabled; vendor preset: enabled)
Active: active (running) since Sun 2023-09-17 14:41:35 CEST; 10min ago
….
systemd[1]: Starting UPS power management daemon…
systemd[1]: apcupsd.service: Can’t open PID file /run/apcupsd.pid (yet?) after start: Operation not permitted
apcupsd[41783]: apcupsd 3.14.14 (31 May 2016) debian startup succeeded
apcupsd[41783]: apcserver: cannot bind port 3551. ERR=Address already in use
systemd[1]: Started UPS power management daemon.
apcupsd[41783]: Communications with UPS lost.

—-STATUS ENDE————

Ich habe einen Proxmox Server: Debian Version 11.7 und Proxmox 7.4.3

Leider weiss ich nicht mehr weiter da Google mir seit Stunden keine richtige Lösung anbietet.
Die apcupsd.conf Datei habe ich entsprechend editiert.

Der Befehl: ps aux | grep apcupsd gibt folgende Rückmeldung:
root 12022 0.0 0.0 310292 2200 ? Ssl 13:41 0:01 apcupsd start
root 23836 0.0 0.0 89096 2100 ? Ssl 14:05 0:00 apcupsd stop
root 41783 0.0 0.0 88972 2004 ? Ssl 14:41 0:00 /sbin/apcupsd
root 50213 0.0 0.0 6240 712 pts/0 S+ 14:58 0:00 grep apcupsd

Kann mir jemand Weiterhelfen?

Liebe Grüße
RF

    brun · 21. September 2023 um 19:05

    Hallo,
    dieser Port 3551 ist meines Wissens nach nur für die Verbindung von Slaves nötig. Wenn du das nicht vorhaben solltest, wäre das ja dann nicht so schlimm. Dass dieser nicht verfügbar ist könnte ein Firewall-Problem sein, oder es laufen mehrere Instanzen von apcupsd. Für letzteres könnte auch ein Neustart helfen. Man kann über die Konfiguration diesen Port auch ändern, wenn das das Problem löst. Aber an sich steht ja bei dem Service active (running), also vielleicht funktioniert es ja trotzdem 🙂
    LG

      RF · 22. September 2023 um 19:50

      Hallo und vielen Dank für die Erklärung.

      Inzwischen bekomme ich auch Informationen von der USV und es scheint zu funktionieren.

      Nur bekomme ich die multimon.cgi nicht angezeigt. Hier bekomme ich immer ein Fehler, „Error: Cannot open hosts file“

      Ich rufe das cgi script mit „http://192.168.xx.xx/cgi-bin/apcupsd/multimon.cgi“ auf.

      Im Verzeichnis /etc/apcupsd ist folgendes enthalten:

      apccontrol apcupsd.conf commfailure hosts.conf multimon.conf onbattery
      .. apctest.output changeme commok killpower offbattery ups-monitor

      Gibt es hierzu eine „einfache“ Lösung?

        brun · 23. September 2023 um 11:39

        Solange du nur eine USV hast ist auf dieser Seite sowieso nichts weiter zu sehen. Dort steht dasselbe wie in der upsstats.cgi bzw. das ist meiner Meinung nach sowieso die bessere Ansicht, auch mit Anzeige der Lognachrichten.

          RF · 3. Oktober 2023 um 15:47

          Hallo brun
          vielen Dank für dein Support. Du hast natürlich recht, dass wird nicht viel anders aussehen jedoch habe ich dann eine „etwas kleinere Darstellung“.

          Ich habe den Aufruf in „homarr“ (via Docker) eingefügt und bei der „multimon.cgi“ ist das Feld kleiner und passt besser auf meiner „homarr Startseite“. Daher wäre es schön, diese „kurze“ Darstellung zu haben.
          Aber ansonsten immer noch riesengroßes Lob für diese Seite und die Möglichkeiten!!!
          Liebe Grüße
          RF

Schreibe einen Kommentar zu brun Antworten abbrechen

Avatar-Platzhalter

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert