Jak zprovoznit UPS na linuxu?

Linux vs UPS

Pokud máme u routeru UPS, můžeme ji lehce spojit se systémem a využívat výhod. Asi nejprioritnější je možnost ukončení (zahaltování) systému v případě, že ups už končí baterie a vypnutí je neodvratné. Linux moc rád vypnutí bez řádného ukončení rád nemá, tak je nanejvýš hodné mu to umožnit.

Uvedený příklad jsem použil na Debianu a Smart-UPS 750 XL, propojeno skrz USB-

Já jsem použil program APCUPSD. V Debianu se dá lehce nainstalovat z repozitáře, současně s ním nainstalujeme i ještě jeden jeho prográmek pro grafické zobrazování stavu a nakonec program pro emailovou notifikaci.

Bližší popis programu a nastavení je např. tady
http://www.linux.cz/noviny/2001-08/clanek07.html

Začneme instalací.

apt-get install apcupsd
apt-get install apcupsd-cgi
apt-get install sendemai

po instalaci editujeme /etc/apcupsd/apcupsd.conf a upravíme následující na hodnoty

UPSCABLE usb
UPSTYPE usb
#DEVICE /dev/ttyS0

uložíme, dále editujeme soubor /etc/default/apcupsd a změníme

ISCONFIGURED=yes

Teď provedeme restart služby

service apcupsd restart

tím nám běží komunikace s ups, můžeme zkontrolovat napsáním příkazu

apcaccess

jeho výpis by měl vypadat následovně

APC      : 001,043,1059
DATE     : 2013-01-29 22:03:50 +0100
HOSTNAME : zvonicka
VERSION  : 3.14.10 (13 September 2011) debian
UPSNAME  : zvonicka
CABLE    : USB Cable
DRIVER   : USB UPS Driver
UPSMODE  : Stand Alone
STARTTIME: 2013-01-27 22:44:37 +0100
MODEL    : Smart-UPS 750 XL
STATUS   : ONLINE
LINEV    : 240.4 Volts
LOADPCT  :  24.7 Percent Load Capacity
BCHARGE  : 100.0 Percent
TIMELEFT :  84.0 Minutes
MBATTCHG : 5 Percent
MINTIMEL : 3 Minutes
MAXTIME  : 0 Seconds
OUTPUTV  : 240.4 Volts
SENSE    : High
DWAKE    : -01 Seconds
DSHUTD   : 180 Seconds
LOTRANS  : 208.0 Volts
HITRANS  : 253.0 Volts
RETPCT   : 000.0 Percent
ITEMP    : 25.6 C Internal
ALARMDEL : 30 seconds
BATTV    : 27.7 Volts
LINEFREQ : 50.0 Hz
LASTXFER : No transfers since turnon
NUMXFERS : 0
TONBATT  : 0 seconds
CUMONBATT: 0 seconds
XOFFBATT : N/A
SELFTEST : NO
STESTI   : 14 days
STATFLAG : 0x07000008 Status Flag
MANDATE  : 2008-02-15
SERIALNO : AS0807211830
BATTDATE : 2012-02-03
NOMOUTV  : 230 Volts
NOMBATTV :  24.0 Volts
FIRMWARE : 680.18.I USB FW:7.3
END APC  : 2013-01-29 22:04:03 +0100

Grafické zobrazení hodnot a stavu.

 

To nám zajistí druhý nainstalovaný prográmek apcupsd-cgi skrz svoje cgi skripty. Předpokládám, že apache už nainstalovaný je. Aby to správně chodilo je třeba přidat do /etc/apache/apache2.conf nakonec toto

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/

resetovat apache

service apache2 restart

a můžeme se podívat jak to krásně vypadá

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

místo localhost si dejte ip adresu stroje ke kterému je ups připojena

takhle to vypadá u mě

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

 

Emailová notifikace

Tak ups již komunikuje a systém o ní ví. Bylo by dobré aby v případě výpadku napájení poslal dotyčný počítač varovný email. Z emailu už pak jednoduše dostanete sms na mobil a víte, že se něco děje. Na to nám poslouží třetí program sendemail.

Pokud si otevřete /etc/apcupsd je tam několik skripů, zkráceně si je popíšeme

changneme – aktivován při expiraci baterie, baterie potřebuje vyměnit
commfailure a commok – ztráta a obnovení komunikace s ups
off a on battery – je jasné :)

ukážeme si to na skriptu onbattery, ten se aktivuje jakmile vypadne napájení

tady je můj obsah onoho skriptu i s posíláním varovného emailu

SYSADMIN=pvlcek@seznam.cz
APCUPSD_MAIL="/usr/bin/sendemail"

HOSTNAME=`hostname`
MSG="$HOSTNAME Vypadek napajeni UPS ZAPNUTA !!!"
#
(
   echo "Subject: $MSG"
   echo " "
   echo "$MSG"
   echo " "
   /sbin/apcaccess status

) | $APCUPSD_MAIL -u "$MSG" -f pvlcek@seznam.cz -t $SYSADMIN -s smtp.hkfree.org:25
touch /etc/apcupsd/powerfail
exit 0

pokud takto upravite i ostatni skripty dostanete celkem solidni info o tom co se právě s ups děje. Do emailu se přikládá i výpis z apcaccess, takže víte kolik zbejvá času než nastane shutdown :)

 

 

článek bude průběžně doplňován novými zkušenostmi

Pajavlk

8 Responses to Jak zprovoznit UPS na linuxu?

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *

Kontrolní text

*