barcode

Da es bei uns öfters mal zu Stromschwankungen kommt und mir deshalb schon die ein oder andere Festplatte kaputt gegangen ist, hab ich mich zum Kauf einer USV entschlossen. Die Wahl fiel auf eine APC Back-UPS Pro 900.

Sollte der Strom einmal länger wegbleiben, ist es hilfreich, wenn sich die angeschlossenen Rechner bei niedrigem Batteriestand selbst herunterfahren.

Der Aufbau ist eigentlich relativ simpel:

-------             --------------                  ------------
| USV | --- USB --- | USV-Server | --- Netzwerk --- | Firewall |
-------             --------------        |         ------------
                                          |
                                          |         -------
                                          ----------| NAS |
                                          |         -------
                                          |
                                          |         --------
                                          ----------| DHCP |
                                                    --------

Da die USV nur einen USB-Anschluss hat, muss man einen Server aufsetzten. Von diesem aus kann man den USV-Status im Netzwerk verteilen. Für diesen Job ist ein Raspberry wie gemacht.

USV-Server

Installation

aptitude install apcupsd apcupsd-doc apcupsd-cgi

Konfiguration

Da meine USV per USB angebunden ist, muss man in der Datei /etc/apcupsd/apcupsd.conf ein paar Werte angepasste werden.

Zunächst sollte man die Kabelart wählen, mit der die USV angeschlossen ist:

UPSCABLE usb

Dann muss man noch definieren, wie die Kommunikation über das USB-Kabel abläuft

UPSTYPE usb

Um den Netzwerkstatus des USV-Servers abfragen zu können, muss man den Server aktivieren.

NETSERVER on
NISIP 0.0.0.0
NISPORT 3551

Zum schluss muss man noch in der /etc/default/apcupsd den Wert für ISCONFIGURED von „no“ auf „yes“ setzen und den Dienst neu starten

/etc/init.d/apcupsd start

Webinterface

Für ein Webinterface braucht man einen Webserver. Meine Wahl fiel auf Apache2

aptitude install apache2

Das Paket für das Webinterface wurde bereits am Anfang installiert und muss nur noch aufgerufen werden. Der link ist http://server/cgi-bin/apcupsd/multimon.cgi

Da es mir zu Blöd war, immer die URL einzugeben, habe ich auf die Seite per META-Tag verwiesen. Dazu den folgenden Code-Schnipsel als Standard-Webseite benutzen.

index.html
<html>
  <head>
    <title>USV-&Uuml;berwachung</title>
    <META http-equiv="refresh" content="3; URL=http://server/cgi-bin/apcupsd/multimon.cgi">
  </head>
  <body>
  </body>
</html>

USV-Client

Auf jedem Rechner, der automatisch heruntergefahren werden soll, muss auch der APC-Daemon installiert werden

Installation

aptitude install apcupsd apcupsd-doc

apcupsd-cgi ist nicht notwendig, da wir nicht per Weboberfläche zugreifen wollen

Konfiguration

Die USV ist über Ethernet angeschlossen, deshalb:

UPSCABLE ether

Die genauen angaben zu USV-Server trägt man danach ein

UPSTYPE net
DEVICE <USV-IP>:3551

Da wir den Status nicht im Netzwerk freigeben wollen, müssen wir den Netzwerk-Daemon auf localhost beschränken (lokale apcaccess-Abfrage ist dann immer noch möglich)

NETSERVER on
NISIP 127.0.0.1
NISPORT 3551

Zum schluss muss man auch hier noch in der /etc/default/apcupsd den Wert für ISCONFIGURED von „no“ auf „yes“ setzen und den Dienst neu starten

/etc/init.d/apcupsd start

fertig

Weiter unterstützte Betriebssysteme/Geräte

pfSense

Eine pfSense Firewall ist, mit den richtigen Paketen, zum APC-Daemon kompatibel.

Einfach unter SystemPackages das Paket Apcupsd installieren und unter ServicesApcupsd konfigurieren.

Die Einstellungen sind die gleichen wie unter UPS-Client beschrieben.

NAS

Auch für verschiedene NAS-Geräte gibt es ein apcupsd-Modul.

Windows

Das Programm apcupsd wurde vom Hersteller auf Windows portiert.

Hilfreiche Tipps zum einrichten findet man hier

Wann wird der Server heruntergefahren?

Es gibt mehrere Einstellungen, um den Rechner herunter zu fahren. Alle Einstellungen werden in der Datei /etc/apcupsd/apcupsd.conf gemacht.

OptionAuswirkung
ONBATTERYDELAY 6Zeit in sec vom Entdecken eines Stromausfalls bis zum onbattery-Event
Das erste erreichte Ereignis bewirkt das Herunterfahren:
BATTERYLEVEL 5Herunterfahren bei Unterschreiten der Restladung in %
MINUTES 3Herunterfahren bei Unterschreitung der Restlaufzeit der UPS in sec
TIMEOUT 0Timer zum Herunterfahren bei Stromausfall nach x sec (0 disabled)
ANNOY 300Aufforderung zum Ausloggen vor Shutdown alle 5 min
ANNOYDELAY 60erste Aufforderung zum Ausloggen 60 sec nach Stromausfall
NOLOGON disableVerhindert das Einloggen mit /etc/nologin nach bestimmter Zeit

Quellen