Pod┼é─ůczamy zasilacz awaryjny UPS do routera z OpenWrt

Ostatnio postanowi┼éem pod┼é─ůczy─ç zasilacz awaryjny w pracy co jednego z urz─ůdze┼ä, kt├│re chodzi 24h na dob─Ö. Zasilacz, kt├│rym obecnie dysponujemy to APC Back-UPS 1400 (Back-UPS XS 1400U), opr├│cz mo┼╝liwo┼Ťci pod┼é─ůczenia do 6 urz─ůdze┼ä, pozwala na monitorowanie stanu urz─ůdzenia za pomoc─ů oprogramowania PowerChute oraz z┼é─ůcza USB.

Problem w tym, ┼╝e oprogramowanie te nie jest kompatybilne z serwerem, kt├│ry u┼╝ywamy, w zwi─ůzku z tym, ┼╝e dost─Öpne jest ono w wersji do u┼╝ytku osobistego (Personal Edition).

Postanowi┼éem wi─Öc wykorzysta─ç jeden wolny port (inny u┼╝ywamy do dodatkowego po┼é─ůczenia internetowego za pomoc─ů routera 4G), aby pod┼é─ůczy─ç do niego UPS, by monitorowa─ç jego stan (urz─ůdzenie to opr├│cz dw├│ch di├│d nie posiada wy┼Ťwietlacza). Je┼╝eli uda si─Ö zrobi─ç co┼Ť wi─Öcej, to nawet i lepiej, ale wszystko zale┼╝y co da si─Ö osi─ůgn─ů─ç z wykorzystaniem OpenWrt.

Sprawdzone w wersji OpenWrt 21.02 oraz OpenWrt 22.03

Wst─Öpne wykrycie urz─ůdzenia #

Zacznijmy od tego, aby zobaczy─ç, jak nasz zasilacz wykrywany jest po pod┼é─ůczeniu do naszego routera.

Pod┼é─ůczamy nasz zasilacz i z poziomu terminala wykonujemy komend─Ö dmesg

W moim przypadku otrzyma┼éem nast─Öpuj─ůcy wpis:

usb 1-1: new low-speed USB device number 3 using orion-ehci

Jak widzimy, moje urz─ůdzenie wykrywane jest jako powolne urz─ůdzenie USB a sterownik, kt├│ry go obs┼éuguje to orion-ehci.

W┼éa┼Ťciwe wykrycie urz─ůdzenia #

W pierwszej kolejno┼Ťci aktualizujemy pakiety w systemie oraz instalujemy pakiet usbutils

opkg update
opkg install usbutils

Sprawdzamy, czy nasz zasilacz jest poprawnie wykryty za pomoc─ů lsusb

Bus 001 Device 003: ID 051d:0002 American Power Conversion Back-UPS XS 1400U  FW:926.T2 .I USB FW:T2

Monitorowanie stanu zasilacza #

Instalujemy pakiet apcusbd (oraz pakiety towarzysz─ůce):

opkg install apcupsd collectd-mod-apcups kmod-usb-hid

Po od┼é─ůczeniu i pod┼é─ůczeniu kable USB m├│j zasilacz wykrywany jest (lsusb) w nast─Öpuj─ůcy spos├│b:

usb 1-1: USB disconnect, device number 5
usb 1-1: new low-speed USB device number 6 using orion-ehci
hid-generic 0003:051D:0002.0003: hiddev96,hidraw0: USB HID v1.10 Device [American Power Conversion Back-UPS XS 1400U  FW:926.T2 .I USB FW:T2 ] on usb-f1058000.usb-1/input0

W pliku konfiguracyjnym /etc/apcupsd/apcupsd.conf wprowadzi┼éem nast─Öpuj─ůce zmiany:

UPSNAME ups1
UPSCABLE usb
#UPSTYPE apcsmart
UPSTYPE usb
#DEVICE /dev/ttyS0

Zwr├│─ç uwag─Ö na skomentowane (#) linie takie jak DEVICE

Uruchomiamy go za pomoc─ů:

 /etc/init.d/apcupsd start

Nast─Öpnie wykonuj─ůc komend─Ö apcaccess gdzie powinni┼Ťmy otrzyma─ç nast─Öpuj─ůc─ů odpowied┼║:

APC      : 001,036,0873
DATE     : 2022-02-04 12:28:51 +0000
HOSTNAME : WRT3200ACM
VERSION  : 3.14.14 (31 May 2016) unknown
UPSNAME  : ups1
CABLE    : USB Cable
DRIVER   : USB UPS Driver
UPSMODE  : Stand Alone
STARTTIME: 2022-02-04 12:28:47 +0000
MODEL    : Back-UPS XS 1400U
STATUS   : ONLINE
LINEV    : 228.0 Volts
LOADPCT  : 22.0 Percent
BCHARGE  : 100.0 Percent
TIMELEFT : 26.5 Minutes
MBATTCHG : 5 Percent
MINTIMEL : 3 Minutes
MAXTIME  : 0 Seconds
SENSE    : Medium
LOTRANS  : 160.0 Volts
HITRANS  : 280.0 Volts
ALARMDEL : No alarm
BATTV    : 27.1 Volts
LASTXFER : Automatic or explicit self test
NUMXFERS : 0
TONBATT  : 0 Seconds
CUMONBATT: 0 Seconds
XOFFBATT : N/A
SELFTEST : NO
STATFLAG : 0x05000008
SERIALNO : xxxxxxxxxxxx
BATTDATE : 2021-12-16
NOMINV   : 230 Volts
NOMBATTV : 24.0 Volts
NOMPOWER : 700 Watts
FIRMWARE : 926.T2 .I USB FW:T2
END APC  : 2022-02-04 12:28:52 +0000

Jak wida─ç z pola STATUS: ONLINE po┼é─ůczenie si─Ö powiod┼éo.

Je┼╝eli natomiast widzimy STATUS: COMMLOST, w├│wczas nasz zasilacz nie zosta┼é wykryty lub po┼é─ůczenie nie dzia┼éa.

Monitorowanie stanu z poziomu panelu administracyjnego (luci-app-statistics) #

Instalujemy pakiet do zbierania statystyk:

opkg install luci-app-statistics

Komenda ta zainstaluje dodatkowo pakiet librrd1, rrdtool1, collectd-mod-rrdtool, collectd-mod-iwinfo, collectd-mod-cpu, collectd-mod-memory, collectd-mod-interface, collectd-mod-load, collectd-mod-network.

Po przejciu do panely administracyjnego naszego routera uj┼╝ymy now─ů opcj─Ö Statistic.

Przy pierwszym uruchomieniu i przej┼Ťciu do zak┼éadki Graphs zostaniemy poinformowani, ┼╝e cz─Ö┼Ť─ç odpowiedzialna za kolekcjonowanie danych nie zosta┼éa skonfigurowana.

No RRD data found

Zostaniemy nast─Öpnie przekierowani do cz─Ö┼Ťci Setup w kt├│rej to tak naprawd─Ö interesuje nas zak┼éadka General plugins gdzie musimy zaznaczy─ç APC (potwierdzi─ç domy┼Ťlne ustawienia - Save), po czym zapisa─ç i zastosowa─ç zmiany (Save & Apply).

APCUPS Plugin Configuration

Teraz, ponownie przechodz─ůc do cz─Ö┼Ťci Graphs powinni┼Ťmy zobaczy─ç nasz zasilacz, kt├│ry z czasem b─Ödzie wype┼énia┼é nasze wykresy.

Tutaj nale┼╝y zaznaczy─ç, ┼╝e zbierane statystyki zapisywane s─ů domy┼Ťlnie w pami─Öci urz─ůdzenia i ulegaj─ů one straceniu po ponownym jego uruchomieniu. Je┼╝eli chcemy to zmieni─ç, to w sekcji Setup, zak┼éadce Output plugins konfigurujemy RRDTool i zmieniamy lokalizacje w Storage directory.

I takim sposobem mamy pod┼é─ůczony zasilacz do naszego routera, a z poziomu przegl─ůdarki internetowej mo┼╝emy monitorowa─ç jego stan.


Teraz przyda┼éoby si─Ö zrobi─ç nieco wi─Öcej, chocia┼╝by wy┼é─ůczy─ç bezpiecznie router lub inne urz─ůdzenia do niego pod┼é─ůczone, je┼╝eli stan baterii b─Ödzie bardzo niski.

W tym celu zainteresowa┼éem si─Ö pakietem NUT (Network UPS Tools), kt├│ry teoretycznie pozwoli na monitorowanie stanu zasilacza (kt├│ry mamy pod┼é─ůczony za pomoc─ů kable USB do naszego routera) z poziomu urz─ůdze┼ä w sieci. W momencie, gdy oprogramowanie wykryje spadek zasilania oraz przy odpowiednim poziomie baterii zareaguje, wykonuj─ůc okre┼Ťlon─ů komend─Ö.

Wszystko brzmi fajnie, gdy┼╝ mo┼╝na zainstalowa─ç to na innym komputerze (serwerze), kt├│ry zabezpieczony jest przez nasz zasilacz, i mimo ┼╝e zasilacz nie jest do niego pod┼é─ůczony bezpo┼Ťrednio, zareagowa─ç odpowiednio w zale┼╝no┼Ťci od sytuacji bazuj─ůc na danych z programu.

Ale to zabawa na kiedy indziej.

Je┼╝eli chcesz spr├│bowa─ç si┼é z NUT, odsy┼éam do: Monitoring UPS status with NUT(Network UPS Tools) on OpenWrt ÔÇô Linux Man (linux-man.org).

Pozdrawiam.

Komentarze
Kategorie