- chalblog - http://blog.is-a-geek.org -

Konfiguration einer APC Backup UPS auf Ubuntu Server/Desktop

Konfiguration einer APC Backup UPS auf Ubuntu Server/Desktop [1]Nachdem ein solches Gerät zur unterbrechungsfreien Stromversorgung nun schon einige Zeit an meinem Server werkelt, habe ich mir gedacht endlich auch das beigepackte USB-Kabel zu nutzen. Dadurch lässt sich z.B. der Server bei Stromausfall herunterfahren und der Ladestand usw. auf einem Webinterface begutachten. Ebenso ist es möglich bei auftretenden Fehlern eigene Scripts oder Aktionen auszuführen.

Für Windows und Mac wird die Software “Power Chute” mitgeliefert, die Linux Alternative nennt sich “apcupsd”. Diese Anleitung ist auch auf andere Linuxdistributionen anwendbar.

Installation

Somit installieren wir die benötigten Pakete. Will man auf das Webinterface verzichten, muss man “apcupsd-cgi” nicht installieren.

sudo apt-get install apcupsd apcupsd-cgi

Wir installieren auch den Editor “nano”, mit welchen wir die Konfigurationsdateien bearbeiten (es kann natürlich auch ein anderer verwendet werden).

sudo apt-get install nano

Die Einstellungen zur USB-Verbindung werden in der “apcups.conf” vorgenommen:

sudo nano /etc/apcupsd/apcupsd.conf

Hier suchen wir nach den Zeilen …

UPSCABLE smart

UPSTYPE apcsmart
DEVICE /dev/ttyS0

… und passen diese für das USB-Kabel wie folgt an:

UPSCABLE usb

UPSTYPE usb
DEVICE

Danach (Nano) speichern mit “Strg+o“ und schließen mit “Strg+x”.

Der Daemon lässt sich erst starten, wenn man bewusst den Status von “apcupsd” auf “ist konfiguriert” setzt. Dazu öffnen wir die Datei “apcupsd” …

sudo nano /etc/default/apcupsd

… und ändern den Wert von “ISCONFIGURED” auf “yes”.

APCACCESS=/sbin/apcaccess
ISCONFIGURED=yes

(Nano: speichern mit “Strg+o“, schließen mit “Strg+x”)

Spätestens jetzt ist es an der Zeit das USB-Kabel mit der UPS und dem Server zu verbinden.

Um die Installation zu testen, starten wir den Daemon …

sudo apcupsd start

… und fragen die Werte der UPS ab.

sudo apcaccess status

Die Ausgabe sieht bei meiner Back-UPS CS 650 so aus:

APC      : 001,043,1050
DATE     : Wed Feb 08 15:30:23 CET 2012
HOSTNAME : slave
VERSION  : 3.14.6 (16 May 2009) debian
UPSNAME  : slave
CABLE    : USB Cable
MODEL    : Back-UPS CS 650
UPSMODE  : Stand Alone
STARTTIME: Wed Feb 08 02:35:51 CET 2012
STATUS   : ONLINE
LINEV    : 230.0 Volts
LOADPCT  :   2.0 Percent Load Capacity
BCHARGE  : 100.0 Percent
TIMELEFT :  25.9 Minutes
MBATTCHG : 5 Percent
MINTIMEL : 3 Minutes
MAXTIME  : 0 Seconds
OUTPUTV  : 230.0 Volts
SENSE    : Medium
DWAKE    : 000 Seconds
DSHUTD   : 000 Seconds
LOTRANS  : 180.0 Volts
HITRANS  : 266.0 Volts
RETPCT   : 000.0 Percent
ITEMP    : 29.2 C Internal
ALARMDEL : Always
BATTV    : 13.5 Volts
LINEFREQ : 50.0 Hz
LASTXFER : No transfers since turnon
NUMXFERS : 0
TONBATT  : 0 seconds
CUMONBATT: 0 seconds
XOFFBATT : N/A
SELFTEST : NO
STATFLAG : 0x07000008 Status Flag
SERIALNO : XXXXXXXXXX
BATTDATE : 2005-03-29
NOMOUTV  : 230 Volts
NOMINV   : 230 Volts
NOMBATTV :  12.0 Volts
NOMPOWER : 400 Watts
FIRMWARE : 817.v2.I USB FW:v2
APCMODEL : Back-UPS CS 650
END APC  : Wed Feb 08 15:30:27 CET 2012

Start/Stop, Autostart

Nach der Installation wird der APC-Daemon bei jedem Boot automatisch gestartet. Um dies zu verhindern kann man diesen Befehl ausführen:

sudo update-rc.d -f apcupsd remove

Wieder automatisch starten:

sudo update-rc.d -f apcupsd defaults

Manuell starten bzw. stoppen:

sudo apcupsd start/stop

Oder:

sudo service apcupsd start/stop

Oder:

sudo /etc/init.d/apcupsd start/stop

Webinterface

Wurde das Webinterface installiert, kann man es unter dieser Adresse erreichen (SERVERIP ist zu ersetzen):

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

Apcupsd Webinterface Main [2]

Webinterface Main

Apcupsd Webinterface Localhost [3]

Webinterface Localhost

Apcupsd Webinterface All Data [4]

Webinterface All Data

 

GUI für Systeme mit grafischer Oberfläche

Ist auf dem Server/Desktop eine grafische Oberfläche vorhanden, kann man das in den Ubuntu Repositories verfügbare “GapcMon” als Userinterface installieren:

sudo apt-get install gapcmon

Mit GapcMon lassen sich nette Statistiken, Details der UPS und der Status anzeigen. Das Programm unterstützt auch die Verwaltung mehrerer UPS.

http://gapcmon.sourceforge.net/ [5]

GapcMon Graph [6]

GapcMon Graph

GapcMon Details [7]

GapcMon Details

GapcMon Control Panel [8]

GapcMon Control Panel

 

Konfiguration und Befehle

Zwecks Lesbarkeit der Logfiles beginnen wir damit, der zu überwachenden USV einen eindeutigen Namen zu geben. Dies erledigt man in der “apcupsd.conf”.

sudo nano /etc/apcupsd/apcupsd.conf

Dort Kommentieren wir die Zeile …

#UPSNAME

… ein und geben den gewünschten Namen an.

UPSNAME UPS650

Ebenfalls in dieser Datei ist die Zeile “ONBATTERYDELAY” zu finden, welche dazu dient bei kürzeren Ausfällen nicht sofort eine Aktion auszulösen. Der Standard sind 6 Sekunden, welche gewartet werden, bis der Ausfall tatsächlich als solcher behandelt wird.

ONBATTERYDELAY 6

Die Zeile “BATTERYLEVEL” bezeichnet die Grenze (in %) der Restkapazität, ab welcher der Rechner heruntergefahren werden soll (Standard: 5%).

BATTERYLEVEL 5

Der Wert, welcher bei “MINUTES” angegeben wird dient als Zeitpuffer. Diese Anzahl von Minuten wird zum Herunterfahren des Rechners benötigt (Standard: 3 Minuten).

MINUTES 3

Somit initiiert der Daemon das Herunterfahren des Servers bei 5% verbleibender Batteriekapazität oder 3 Minuten bevor die Energie aufgebraucht wurde (die 6 Sekunden Delay nicht zu vergessen).

Sollte man den Speicherort der Logdatei verändern wollen, ist die folgende Zeile interessant:

EVENTSFILE /var/log/apcupsd.events

Email-Benachrichtigung und eigene Scripts ausführen:

Die Shell-Scripts, welche bei den verschiedenen Fehlern ausgeführt werden findet man im Ordner “/etc/apcupsd”.

changeme     > Batterie muss getauscht werden.
commfailure  > Kommunikationsfehler mit der USV.
commok       > Verbindung mit der USV wiederhergestellt.
killpower    > Der Strom zwischen Server und USV wird getrennt.
offbattery   > Stromausfall wurde behoben.
onbattery    > Strom kommt von der Batterie.

In diesen Dateien sind schon Scripts zur automatischen Emailbenachrichtigung vorhanden. Die Email-Adresse und der Ordner, in welchem sich Sendmail befindet müssen noch angepasst werden.

SYSADMIN=ichbinderadmin@irgendwas.com
APCUPSD_MAIL="/usr/sbin/sendmail"

Diese Scripts können nach belieben und eigenen Anforderungen angepasst werden.

Testen der UPS

Um die USV zu testen muss der Daemon beendet werden:

sudo apcupsd stop

Die möglichen Optionen von apctest kann man sich mit diesem Befehl anzeigen lassen:

sudo apctest --help

Nach dem Test nicht vergessen den Daemon auch wieder zu starten.

sudo apcupsd start

Sonstige Befehle

Status der USV anzeigen:

sudo apcaccess status

Die letzten Einträge im Logfile anzeigen:

sudo tail /var/log/apcupsd.events

 

Vielen Dank an die Entwickler!