Jak zprovoznit UPS na Linuxu
Obsah
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 vypnutí bez řádného ukončení rád moc nemá, tak je nanejvýš vhodné mu to umožnit.
Uvedený příklad jsem použil na Debianu a Smart-UPS 750 XL, propojeno přes 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 apcupsd-cgi sendemail
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/
restartovat 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" -t pvlcek@seznam.cz -f $SYSADMIN -s smtp.hkfree.org:25
touch /etc/apcupsd/powerfail
exit 0
pokud takto upravíte i ostatní skripty dostanete celkem solidní 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