Monitorowanie UPS
Ostatnia zmiana: 2013-11-26 18:43
Program
apcupsd przeznaczony jest do monitorowania bardzo popularnych zasilaczy awaryjnych firmy APC (American Power Conversion Corp.). Wiele typów UPS posiada interfejs komunikacyjny, albo w postaci złącza DB9 (gniazdo takie jak przy interfejsie RS232C), wymagające jednak specjalnego kabla (i najczęściej różnego w zależności od typu UPS), albo w postaci zwykłego złącza USB - w nowszych modelach. Zasilacze awaryjne doskonale spełniają swoją funkcję, ale dobrze by było czasami wiedzieć jakie parametry (w szczególności pozostały czas) ma nasz UPS.
W tym poradniku zastosowano zasilacz APC Back-UPS ES 700 (z kablem USB) oraz OpenWrt w wersji 12.09.
Instalacja oprogramowania
# opkg update
# opkg install apcupsd
Dla połączenia USB trzeba zainstalować jeszcze jeden pakiet z zależnościami:
# opkg install kmod-usb-hid
Zasilacze podłączane do USB widoczne są zwykle jako urządzenia
HID, stąd też potrzeba zastosowania takiego sterownika. Po podłączeniu zasilacza można sprawdzić czy jest on widoczny - poleceniem
cat /proc/bus/usb/devices:
T: Bus=01 Lev=02 Prnt=02 Port=02 Cnt=02 Dev#= 4 Spd=1.5 MxCh= 0
D: Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1
P: Vendor=051d ProdID=0002 Rev= 1.06
S: Manufacturer=APC
S: Product=Back-UPS ES 700 FW:829.D2.I USB FW:D2
S: SerialNumber=5B0710U03272
C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr= 0mA
I:* If#= 0 Alt= 0 #EPs= 1 Cls=03(HID ) Sub=00 Prot=00 Driver=usbhid
E: Ad=81(I) Atr=03(Int.) MxPS= 6 Ivl=10ms
W przypadku połączeń szeregowych nie ma potrzeby instalacji niczego więcej.
Konfiguracja
Plik konfiguracyjny znajduje się w katalogu
/etc/apcupsd pod nazwą
apcupsd.conf. Na początku należy w nim zmienić trzy zmienne, odpowiadające za typ zastosowanego kabla, typ UPS oraz port do komunikacji, zapisane w odpowiednich zmiennych.
Kabel USB
Dotyczy to kabla USB który bezpośrednio podłączony jest do UPSa (np. typu 940-0127E):
UPSCABLE usb
UPSTYPE usb
DEVICE
Kabel szeregowy
Dotyczy to kabla (np. typu 940-0024B lub 940-0024C) podłączonego do złącza RS232C w routerze:
UPSCABLE 940-0024C
UPSTYPE apcsmart
DEVICE /dev/ttyS0
Kabel szeregowy podłączony przez przejściówkę USB<->serial
Niektóre kable szeregowe (np. wspomniane 940-0024B lub 940-0024C) działają także z przejściówką USB <-> serial. Przy takim połączeniu nadal należy wskazać typ kabla jako 940-0024C (smart) ale należy ustawić właściwe urządzenie szeregowe:
UPSCABLE 940-0024C
UPSTYPE apcsmart
DEVICE /dev/ttyUSB0
Uruchomienie
# /etc/init.d/apcupsd enable
# /etc/init.d/apcupsd start
Odczytanie danych o UPS
Postać tekstowa
# apcaccess
APC : 001,035,0884
DATE : Mon May 27 20:06:26 CEST 2013
HOSTNAME : Gargoyle
VERSION : 3.14.7 (1 August 2009) unknown
UPSNAME : ups1
CABLE : USB Cable
MODEL : Back-UPS ES 700
UPSMODE : Stand Alone
STARTTIME: Mon May 27 20:06:24 CEST 2013
STATUS : ONLINE
LINEV : 230.0 Volts
LOADPCT : 0.0 Percent Load Capacity
BCHARGE : 087.0 Percent
TIMELEFT : 48.0 Minutes
MBATTCHG : 5 Percent
MINTIMEL : 3 Minutes
MAXTIME : 0 Seconds
SENSE : Medium
LOTRANS : 180.0 Volts
HITRANS : 266.0 Volts
ALARMDEL : Always
BATTV : 13.6 Volts
LASTXFER : No transfers since turnon
NUMXFERS : 0
TONBATT : 0 seconds
CUMONBATT: 0 seconds
XOFFBATT : N/A
STATFLAG : 0x07000008 Status Flag
MANDATE : 2007-03-06
SERIALNO : 5B0710U03272
BATTDATE : 2007-03-06
NOMINV : 230 Volts
NOMBATTV : 12.0 Volts
FIRMWARE : 829.D2.I USB FW:D2
APCMODEL : Back-UPS ES 700
END APC : Mon May 27 20:06:30 CEST 2013
W ten sposób dostajemy komplet informacji o UPS - czas pracy, naładowanie, numery seryjne czy sam typ UPS. Lista parametrów różni się w zależności od modelu UPS.
Strona WWW
Dane te można przedstawić także w postaci czytelnej strony WWW, co umożliwia "zdalne" monitorowanie zasilacza. Niezbędna jest instalacja następnego pakietu
apcupsd-cgi (dostępny jest u mnie w repozytorium) oraz serwera www obsługującego CGI:
# opkg install apcupsd-cgi uhttpd
# /etc/init.d/uhttpd enable
# /etc/init.d/uhttpd start
(w przypadku zdanego dostępu należy pamiętać o odblokowaniu portu 80 na wanie). Paczka zawiera zbiór programów które komunikują się z demonem
apcupsd i umożliwiają prezentację parametrów w trochę bardziej czytelnej postaci. Wywołanie sprowadza się do wpisania w przeglądarce adresu
http://192.168.1.1/cgi-bin/multimon.cgi, co przedstawi nam informację w następującej postaci:

Wybierając "All data" dostaniemy wszystkie informacje w postaci tekstowej:

Natomiast "Local Host" (nazwa konfigurowana jest w pliku
hosts.conf w katalogu
/etc/apcupsd) dostaniemy ładne wykresy m.in. pozostałego czasu:

Jeżeli zasilacz pracuje na baterii, to zostanie to od razu wyróżnione odpowiednim kolorem.

Testy UPS
W zestawie dostaniemy także program
apctest, który pozwala na uruchomienie kilku testów diagnostycznych oraz wyświetlanie dodatkowych statusów. Poszczególne operacje dostępne są w postaci menu tekstowego.
1) Test kill UPS power
2) Perform self-test
3) Read last self-test result
4) Change battery date
5) View battery date
6) View manufacturing date
7) Set alarm behavior
8) Set sensitivity
9) Set low transfer voltage
10) Set high transfer voltage
11) Quit
Zakończenie
Program
apcupsd ma kilka ciekawych możliwości np. wysyłanie mejla w odpowiednich momentach (dostarcza nawet swój prosty program smtp).