Linux als SOHO-Server

für Linux- und Windows-Clients
http://linux.eusterholz.dyndns.org

Kapitel:

Home
Debian Installation
Debian Etc.
Internet-Zugang
Telnet
FTP
r-Utilities
SSH
Printing
NTP
Nameserver
NFS/NIS/Automount
Samba (SMB-Server)
Apache (WEB-Server)
Modem / ISDN
Backup
Etc.


UPS

Wake-On-LAN ] Power Off ] XDMCP-Zugang ] VNC ] Sun-Java ] Ajaxterm ] Scann-Server ] webCDwriter ] Relaiskarte (parallel) ] Relaiskarte (seriell) ] [ UPS ] LIRC ] Clonezilla ] Subversion ] SMS unter Linux ]


Bei einer UPS (Uninterruptible Power Supply) handelt es sich um eine unterbrechungsfreie Stromversorgung, im deutschen Sprachgebrauch ist auch hierfür die Abkürzung: USV  gängig. Eine UPS hat den Zweck, bei Störungen die Stromversorgung der dort angeschlossenen Geräte sicherzustellen. Je nach Typ und Aufbau schützt eine UPS die angeschlossenen Systeme vor: Stromausfall, Unterspannung, Überspannung, Frequenzänderungen und Oberschwingungen.

Die typische grobe Arbeitsweise einer UPS ist: Bei einem kurzzeitigen Stromausfall wird die Versorgung der angeschlossenen Geräte durch die UPS überbrückt. Dabei ist die zu überbrückende Zeit, von der Kapazität der UPS abhängig. Sinkt die Kapazität der UPS unter einen kritischen Wert, so werden die dort angeschlossene Rechner geordnet heruntergefahren; Probleme mit inkonsistenten Dateisystemen können so vermieden werden. Das Herunterfahren der Rechner wird typischerweise von einer speziellen UPS-Software auf dem Rechner inszeniert. Die notwendigen Informationen von der UPS zur UPS-Software werden dabei meist über ein serielles- oder USB-Kabel übertragen.

Auf der vorliegenden Seite, wird exemplarisch als UPS eine der Firma 'APC' verwendet. Die Firma 'APC' (American Power Conversion), ist einer der bekanntesten Hersteller für unterbrechungsfreie Stromversorgungen, mit einem breiten Spektrum von unterschiedlichen Geräten.
Als Software zur Überwachung wird 'apcupsd' vorgestellt, welche die meisten UPS-Modelle der Fima 'APC' unterstützt, und das nicht nur unter Linux sondern auch unter Windows verfügbar ist. Die Software 'apcupsd' verfügt, neben der eigentlichen Funktion als UPS-Software, auch über komfortable Monitor- und Konfigurationsmöglichkeiten.

Installation / Konfiguration UPS / Apcupsd

Im Folgenden wird der Betrieb einer UPS unter Debian-Linux vorgestellt, dabei wird der Betrieb bzw. die Konfiguration exemplarisch als 'Master' und 'Slave' vorgestellt. Der Rechner, an dem das Kabel zur UPS angeschaltet ist, wird dabei als 'Master' bezeichnet. Andere Rechner die auch von der UPS gespeist werden und über eine UPS-Software verfügen, werden als 'Slave' bezeichnet, sie beziehen Ihre Informationen bezüglich der UPS vom 'Master' über die Netzwerkverbindung.

Unter Debian kann 'apcupsd' am einfachsten mittels 'apt-get -install' installiert werden, evtl. sollte auch das Paket 'apcupsd-doc', indem sich die Dokumentation befindet, mitinstalliert werden. Sonstige Abhängigkeiten bei der Installation sollten automatisch aufgelöst werden.

Nach der Installation sollte zunächst die Datei '/etc/default/apcupsd' für die interne Konfiguration angepasst werden:

/etc/default/apcupsd

# Apcupsd-devel internal configuration

APCACCESS=/sbin/apcaccess
ISCONFIGURED=yes

Der Parameter 'ISCONFIGURED' ist auf 'yes' zu setzen.

Damit das UPS-System nach den Wünschen und Erforderlichkeiten arbeitet, ist nach der Installation die eigentliche Konfigurationsdatei '/etc/apcupsd/apcupsd.conf' anzupassen. Im Verlauf dieser Seite wird die Konfiguration als 'Master' bzw. als 'Slave' beschrieben, die relevanten Änderungen, die einen 'Master' oder 'Slave' ausmachen, sind dabei gelb markiert.

Konfiguration Apcupsd (Master)

Die Konfigurationsdatei 'apcupsd.conf' ist schon recht gut vorkonfiguriert und ausreichend kommentiert. Hier ein Beispiel einer gekürzten default-Konfigurationsdatei, abgeändert als 'Master' (netmaster):

/etc/apcupsd/apcupsd.conf (Master)

## apcupsd.conf v1.1 ##

# ========= General configuration parameters ============
UPSCABLE smart
UPSTYPE smartups
DEVICE /dev/ttyS0
LOCKFILE /var/lock

# ======== configuration parameters used during power failures ==========
ONBATTERYDELAY 6
BATTERYLEVEL 15
MINUTES 5
TIMEOUT 0
ANNOY 300
ANNOYDELAY 60
NOLOGON disable
KILLDELAY 0

# ==== Configuration statements the network information server =========
NETSERVER on
NISIP 0.0.0.0
NISPORT 3551
EVENTSFILE /var/log/apcupsd.events
EVENTSFILEMAX 10

# ========== Configuration statements used if sharing =============
UPSCLASS netmaster
UPSMODE net
NETTIME 100
NETPORT 6666
SLAVE 192.168.10.20
#SLAVE slave2

# ===== Configuration statements to control apcupsd system logging ========
STATTIME 0
STATFILE /var/log/apcupsd.status
LOGSTATS off
DATATIME 0

Die Konfigurationsdatei ist in verschiedenen Bereiche eingeteilt, einer der wichtigen Bereiche ist dabei de Bereich 'General configuration parameters', indem die Verbindung zur UPS festgelegt wird. UPS-Kabel und UPS-Typ, sowie die Schnittstelle zur Kommunikation sind zu definieren. Ein weiterer wichtiger Bereich in der Konfiguration ist 'Configuration statements used if sharing', hier wird festgelegt in welcher Betriebsart gearbeitet wird (netmaster); auch sind hier die einzelnen 'Slaves' anzugeben die vom 'Master' bedient werden sollen.

Konfiguration Apcupsd (Slave)

Die Konfiguration als 'Slave' ist ähnlich wie beim 'Master', hier eine mögliche Variante:

/etc/apcupsd/apcupsd.conf (Slave)

## apcupsd.conf v1.1 ##

# ========= General configuration parameters ============
UPSCABLE ether
UPSTYPE smartups
DEVICE 192.168.10.10:3551
LOCKFILE /var/lock

# ======== configuration parameters used during power failures ==========
ONBATTERYDELAY 6
BATTERYLEVEL 15
MINUTES 10
TIMEOUT 0
ANNOY 300
ANNOYDELAY 60
NOLOGON disable
KILLDELAY 0

# ==== Configuration statements the network information server =========
NETSERVER on
NISIP 0.0.0.0
NISPORT 3551
EVENTSFILE /var/log/apcupsd.events
EVENTSFILEMAX 10

# ========== Configuration statements used if sharing =============
UPSCLASS netslave
UPSMODE net
NETTIME 100
NETPORT 6666
MASTER 192.168.10.10

# ===== Configuration statements to control apcupsd system logging ========
STATTIME 0
STATFILE /var/log/apcupsd.status
LOGSTATS off
DATATIME 0

In der Konfigurationsdatei ist nun der Verweiß auf den Master anzugeben, sowie als Verbindung das Netzwerk (Netzkabel).

Andere Parameter für die Konfiguration sind im Handbuch von 'apcupsd' nachzulesen; auch sind dort weitere Beispiele bestimmter Konfigurationsarten zu finden.

Nachdem  die Konfiguration auf den 'Master' und 'Slave' durchgeführt wurde, kann auf beiden Rechnern die Dämonen gestartet werden ('/etc/init.d/apcupsd start').

Test der UPS

Bevor nun die UPS mit dem Rechner (Server, Netzwerk) verbunden wird, sollte zunächst mit einen trivialen Verbraucher getestet werden, z.B. eine Glühlampe, welche die Leistungsaufnahme der Rechner simuliert. Erst wenn die gewünschte Funktionalität nachgewiesen wurde, d.h. die Rechner ('Master'/'Slaves') korrekt heruntergefahren werden, sollten die endgültigen Komponenten mit der UPS gekoppelt werden.

Nach den Starten des 'apcups'- Dämons ('/etc/init.d/apcupsd start') sollten zunächst die 'log'-Dateien nach möglichen Problemen gesucht werden. Es sollten die Dateien '/var/log/syslog' und '/var/log/apcupsd.events' betrachtet werden. Wird z.B. die Speisung der UPS getrennt, so sollte, auch dieses in den Log-Dateien vermerkt werden, ebenso wie das Wiederkehren der Speisung. Hierzu ein Auszug aus der '/var/log/apcupsd.events':

Sat Dec 23 09:31:41 CET 2006 Connect to slave 192.168.10.10 succeeded
Sat Dec 23 09:31:47 CET 2006 apcupsd 3.10.17 (18 March 2005) debian startup succeeded
Sat Dec 23 09:35:45 CET 2006 Power failure.
Sat Dec 23 09:35:47 CET 2006 Running on UPS batteries.
Sat Dec 23 09:39:03 CET 2006 Mains returned. No longer on UPS batteries.
Sat Dec 23 09:39:03 CET 2006 Power is back. UPS running on mains.

Mittels dem Kommando 'apcaccess status' kann, abhängig vom Typ der angeschlossenen UPS, der Status abgefragt werden. Die ausgegeben Werte sollten schlüssig sein. Hier eine Beispielausgabe, die auch vom 'Slave' aus funktionieren sollte:

meridian:~# apcaccess status
APC : 001,024,0671
DATE : Sat Dec 23 09:30:17 CET 2006
HOSTNAME : meridian
RELEASE  : 3.10.17
VERSION  : 3.10.17 (18 March 2005) debian
CABLE    : Ethernet Link
MODEL    : Network Slave
UPSMODE  : Net Slave
STARTTIME: Sat Dec 23 09:30:08 CET 2006
SHARE    : NetworkUPS
MASTERUPD: Sat Dec 23 09:39:22 CET 2006
MASTER   : 192.168.10.10
STATUS   : ONLINE SLAVE
BCHARGE  : 100.0 Percent
TIMELEFT : 25.0 Minutes
MBATTCHG : 15 Percent
MINTIMEL : 15 Minutes
MAXTIME  : 0 Seconds
NUMXFERS : 1
XONBATT  : Sat Dec 23 09:34:17 CET 2006
TONBATT  : 0 seconds
CUMONBATT: 203 seconds
XOFFBATT : Sat Dec 23 09:37:40 CET 2006
STATFLAG : 0x02000408 Status Flag
END APC : Sat Dec 23 09:39:30 CET 2006
meridian:~#

Bei einem abschließenden Test, sollte die UPS so lange ohne Speisung belastet werden, bis die Batterieladung zur Neige geht. Der 'Master' und 'Slave' sollten sich ordnungsgemäß herunterfahren. Haben die Rechner die Tests bestanden, können die Komponenten mit der UPS endgültig gekoppelt werden.

Weitere umfangreichere Tests, bezüglich der UPS und 'apcupsd', können mit dem zum 'apcupsd'-Paket gehörenden Programm 'apctest' durchgeführt werden (siehe Anmerkung unten).

Online-Status (CGI)

Den besten Überblick über den Zustand der UPS, bieten die 'apcupsd Network Monitoring (CGI) Programs'. Dabei handelt es sich um 'CGI'-Programme, die auf einem 'CGI'-fähigen Web-Server ablaufen, mittels Browsers kann der Zustand der UPS dann abgefragt werden.

Die 'apcupsd Network Monitoring (CGI) Programs' können mit 'apt-get install apcupsd-cgi' einfach nachinstalliert werden. Durch Aufruf mit einem Browser, z.B.: 'http://<SERVER>/cgi-bin/apcupsd/upsstats.cgi', sollte der Zustand der UPS wiedergegeben werden:

Neben 'upsstats.cgi' können weiterhin die 'CGI'-Programme 'multimon.cgi' und 'upsfstats.cgi' aufgerufen werden. Mit 'multimon.cgi' können mehrere UPS auf einem Blick überwacht werden. 'upsfstats.cgi' gibt eine Ausgabe der Status-Variablen von der UPS in Textform aus. Weitere Infos über die 'CGI'-Programme zu 'apcupsd' sind in der Dokumentation zu finden.

Sollte kein 'CGI'-fähiger Web-Server vorhanden sein, so kann unter Debian ein Apache-Server leicht mit 'apt-get install apache2' nachinstalliert werden, die 'CGI'-Fähigkeit wird dann durch das Kommando 'a2enmod cgi' erreicht. Anschließend können 'CGI'-Programme einfach in das Verzeichnis '/usr/lib/cgi-bin' abgelegt werden.

Anmerkungen

Speziell bei Rechner, die als Server betrieben werden, sollten an eine UPS angeschlossen werden, damit bei einer kurzzeitigen Stromunterbrechung der Betrieb gewährleistet ist und bei einem langfristigen Stromausfall die Server korrekt heruntergefahren werden. Dabei ist darauf zu achten, dass dazwischen liegende Hubs/Switsches ebenfalls mit der UPS verbunden sind, da sonst die Informationen bezüglich 'apcupsd' nicht zum 'Slave' übertragen werden können. Auch sollte der Zeitpunkt zum Herunterfahren für die Rechner so gewählt werden, dass der 'Master' als letzter heruntergefahren wird.

Einen erweiterten Test für die UPS kann mit dem Programm 'apctest' erzielt werden. Bevor 'apctest' gestartet wird, sollte jedoch der 'apcups'- Dämon gestoppt werden ('/etc/init.d/apcupsd stop'). Auf der Kommandozeile sollte sich das Programm dann wie folgt melden:

debian:~# apctest


2006-12-23 22:27:22 apctest 3.10.17 (18 March 2005) debian
Checking configuration ...
Attached to driver: apcsmart
sharenet.type = NET
upsclass.type = NETMASTER
cable.type = CUSTOM_SMART

You are using a SMART cable type, so I'm entering SMART test mode
mode.type = SMART
Creating the device lock file ...
Hello, this is the apcupsd Cable Test program.
This part of apctest is for testing Smart UPSes.
Please select the function you want to perform.

1) Query the UPS for all known values
2) Perform a Battery Runtime Calibration
3) Abort Battery Calibration
4) Monitor Battery Calibration progress
5) Program EEPROM
6) Enter TTY mode communicating with UPS
7) Quit

Select function number:

Nach dem Start des Programms können die einzelnen Punkte durch die entsprechende Zahl ausgewählt werden. Wurde z.B. der Akkus getauscht, lohnt sich der Punkt '5', in dem das Batteriedatum neu gesetzt werden kann, aber auch andere Werte (z.B. Schwellenwerte der Spannung für das Umschalten) können hier neu definiert werden.
Mit dem Punkt '2' kann die Funktion und die Kalibrierung der Batterie erfolgen.
Weitere Erklärungen zum Programm können der Dokumentation von 'apcupsd' entnommen werden, nach Benutzung des Tools sollte der Dämon wieder gestartet werden.

Weitere Infos

Homepage: APCUPSD http://www.apcupsd.com/
Dokumentation: APC UPS Deamon (Apcupsd User's Guide) http://www.apcupsd.com/manual/manual.html
Homepage: APC http://www.apc.com
UPS HOWTO http://tldp.org/HOWTO/UPS-HOWTO/
Manualseiten zu: apcupsd man apcupsd
System-Dokumentation: apcupsd /usr/share/doc/apcupsd
System-Dokumentation: upsstats.cgi /usr/share/doc/apcupsd-cgi/

Home ] Nach oben ] Wake-On-LAN ] Power Off ] XDMCP-Zugang ] VNC ] Sun-Java ] Ajaxterm ] Scann-Server ] webCDwriter ] Relaiskarte (parallel) ] Relaiskarte (seriell) ] [ UPS ] LIRC ] Clonezilla ] Subversion ] SMS unter Linux ]

letzte Änderung: 01. Januar 2014

 

Copyright © 2004 Norbert Eusterholz