Jak zprovoznit UPS na Linuxu: Porovnání verzí

Z HKfree wiki
Skočit na navigaci Skočit na vyhledávání
(Založena nová stránka: == 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í) s…)
 
 
(Není zobrazeno 15 mezilehlých verzí od 3 dalších uživatelů.)
Řádek 1: Řádek 1:
== Linux vs UPS ==
+
== 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.
+
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 skrz USB-
+
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.
 
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
+
Bližší popis programu a nastavení je např. tady:
  
 
[http://www.linux.cz/noviny/2001-08/clanek07.html http://www.linux.cz/noviny/2001-08/clanek07.html]
 
[http://www.linux.cz/noviny/2001-08/clanek07.html http://www.linux.cz/noviny/2001-08/clanek07.html]
  
Začneme instalací.
+
Začneme instalací,
  
apt-get install apcupsd
+
<source lang="bash">apt-get install apcupsd apcupsd-cgi sendemail apache2
apt-get install apcupsd-cgi
+
</source>
apt-get install sendemai
 
  
po instalaci editujeme '''/etc/apcupsd/apcupsd.conf''' a upravíme následující na hodnoty
+
po instalaci editujeme '''/etc/apcupsd/apcupsd.conf''' a upravíme následující na hodnoty,
  
 
  UPSCABLE usb
 
  UPSCABLE usb
Řádek 23: Řádek 22:
 
  #DEVICE /dev/ttyS0
 
  #DEVICE /dev/ttyS0
  
uložíme, dále editujeme soubor '''/etc/default/apcupsd''' a změníme
+
uložíme, dále editujeme soubor '''/etc/default/apcupsd''' a změníme,
  
 
  ISCONFIGURED=yes
 
  ISCONFIGURED=yes
  
Teď provedeme restart služby
+
teď provedeme restart služby,
  
 
  service apcupsd restart
 
  service apcupsd restart
  
tím nám běží komunikace s ups, můžeme zkontrolovat napsáním příkazu
+
tím nám běží komunikace s ups, můžeme zkontrolovat napsáním příkazu,
  
 
  apcaccess
 
  apcaccess
  
jeho výpis by měl vypadat následovně
+
jeho výpis by měl vypadat následovně:
  
  APC      : 001,043,1059
+
APC      : 001,043,1059
 
  DATE    : 2013-01-29 22:03:50 +0100
 
  DATE    : 2013-01-29 22:03:50 +0100
 
  HOSTNAME : zvonicka
 
  HOSTNAME : zvonicka
Řádek 91: Řádek 90:
 
  ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
 
  ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
  
resetovat apache
+
restartovat apache,
  
 
  service apache2 restart
 
  service apache2 restart
 +
Pokud Vám po přidání script aliasu bude prohlížeč stále zobrazovat
 +
chybu Forbidden 403 jako mě, je nutné ještě v apache povolit modul cgi, a
 +
to provedeme příkazem:
 +
sudo a2enmod cgi
 +
Po povolení modulu je nutné restartovat apache:
 +
service apache2 restart
 +
Je možné že po povolení tohoto modulu bude nutné restartovat webový prohlížeč, poté už by se měla zobrazit CGI stránka
  
a můžeme se podívat jak to krásně vypadá
+
a můžeme se podívat jak to krásně vypadá,
  
 
'''http://localhost/cgi-bin/apcupsd/multimon.cgi'''
 
'''http://localhost/cgi-bin/apcupsd/multimon.cgi'''
  
místo localhost si dejte ip adresu stroje ke kterému je ups připojena
+
místo localhost si dejte ip adresu stroje ke kterému je ups připojena.
  
takhle to vypadá u mě
+
Takhle to vypadá u mě:
  
 
[http://10.107.90.65/cgi-bin/apcupsd/multimon.cgi http://10.107.90.65/cgi-bin/apcupsd/multimon.cgi]
 
[http://10.107.90.65/cgi-bin/apcupsd/multimon.cgi http://10.107.90.65/cgi-bin/apcupsd/multimon.cgi]
Řádek 107: Řádek 113:
 
== Emailová notifikace ==
 
== 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'''.
+
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
 
Pokud si otevřete '''/etc/apcupsd''' je tam několik skripů, zkráceně si je popíšeme
Řádek 119: Řádek 125:
 
tady je můj obsah onoho skriptu i s posíláním varovného emailu
 
tady je můj obsah onoho skriptu i s posíláním varovného emailu
  
SYSADMIN=pvlcek@seznam.cz
+
<source lang="bash">
APCUPSD_MAIL="/usr/bin/sendemail"
+
SYSADMIN=technici@hkfree.org
 +
APCUPSD_MAIL="/usr/bin/sendemail"
  
HOSTNAME=`hostname`
+
HOSTNAME=`hostname`
MSG="$HOSTNAME Vypadek napajeni UPS ZAPNUTA !!!"
+
MSG="$HOSTNAME Vypadek napajeni UPS ZAPNUTA!"
#
+
#
(
+
(
    echo "Subject: $MSG"
+
  echo "Subject: $MSG"
    echo " "
+
  echo " "
    echo "$MSG"
+
  echo "$MSG"
    echo " "
+
  echo " "
    /sbin/apcaccess status
+
  /sbin/apcaccess status
  
) | $APCUPSD_MAIL -u "$MSG" -f pvlcek@seznam.cz -t $SYSADMIN -s smtp.hkfree.org:25
+
) | $APCUPSD_MAIL -t $SYSADMIN -u "$MSG" -f $SYSADMIN -s smtp.hkfree.org:25
touch /etc/apcupsd/powerfail
+
touch /etc/apcupsd/powerfail
exit 0
+
exit 0
 
+
</source>
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 :)
+
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
 
článek bude průběžně doplňován novými zkušenostmi
  
 
Pajavlk
 
Pajavlk
 +
 +
== Sledování více UPS z jednoho místa ==
 +
Když máme více chytrých UPS a chceme je mít sledované hezky z jednoho místa můžeme provést konfiguraci tak, že si script multimon stáhne informace z každého serveru ke kterému je připojená UPS a běží tam správně nakonfigurovaný apcupsd. Jak na to:
 +
=== Úprava konfigurace na vzdálených serverch ===
 +
Na všech serverech, ze kterých chceme stahovat data musíme upravit v konfiguračním souboru '''/etc/apcupsd/apcupsd.conf''' řádek '''NISIP''', kde zadáme na jaké adrese má NIS server naslouchat pro příchozí spojení, default hodnota je pouze localhost 127.0.0.1, IP si nastavíme podle uvážení, případně můžeme nastavit 0.0.0.0, což znamená naslouchej na všech IP, které má server nastavené.
 +
 +
''příklad:''
 +
<source lang="bash">root@hrubinova:~# cat /etc/apcupsd/apcupsd.conf |grep NISIP
 +
# NISIP <dotted notation ip address>
 +
NISIP 10.107.237.1
 +
root@hrubinova:~#
 +
</source>
 +
 +
Pro provedení změn je třeba apsupsd restartovat, viz. výše.
 +
 +
=== Úprava konfigurace na lokálním serveru ===
 +
Lokálním serverem myslíme ten, který bude schromažďovat data od serverů vzdálechých, zde je démonu apcupds potřeba říct co má sledovat a na jaké IP to má najít, provedeme to úpravou konfiguračního souboru '''/etc/apcupsd/hosts.conf'''. Zde si vytvoříme pro každou UPS jeden řádek ve formátu: '''MONITOR <ip serveru> "<název>"'''.
 +
 +
''Příklad:''
 +
<source lang="bash">root@andre:~# cat /etc/apcupsd/hosts.conf
 +
MONITOR 127.0.0.1 "Andre"
 +
MONITOR 10.107.137.9 "Andre2"
 +
MONITOR 10.107.136.1 "Purkyne"
 +
MONITOR 10.107.237.1 "Hrubinova"
 +
root@andre:~#
 +
</source>
 +
''Pozn.: v souboru nesmí být žádné prázdné řádky''.
 +
 +
''Pozn2.: Pozor co nastavíme na lokal serveru, stahování dat je vždy přes síť, pokud na lokal serveru nastavíme NISIP na něco jiného než localhost, musíme to samé pro local UPS nastavit i v hosts.conf''.
 +
 +
Pro provedení změn musí opět následovat restart apcupsd.
 +
 +
by Lucutus

Aktuální verze z 11. 2. 2020, 13:55

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 apache2

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

Multimon.gif

Status.png

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

Pokud Vám po přidání script aliasu bude prohlížeč stále zobrazovat chybu Forbidden 403 jako mě, je nutné ještě v apache povolit modul cgi, a to provedeme příkazem:

sudo a2enmod cgi

Po povolení modulu je nutné restartovat apache:

service apache2 restart

Je možné že po povolení tohoto modulu bude nutné restartovat webový prohlížeč, poté už by se měla zobrazit CGI stránka

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=technici@hkfree.org
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 -t $SYSADMIN -u "$MSG" -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

Sledování více UPS z jednoho místa

Když máme více chytrých UPS a chceme je mít sledované hezky z jednoho místa můžeme provést konfiguraci tak, že si script multimon stáhne informace z každého serveru ke kterému je připojená UPS a běží tam správně nakonfigurovaný apcupsd. Jak na to:

Úprava konfigurace na vzdálených serverch

Na všech serverech, ze kterých chceme stahovat data musíme upravit v konfiguračním souboru /etc/apcupsd/apcupsd.conf řádek NISIP, kde zadáme na jaké adrese má NIS server naslouchat pro příchozí spojení, default hodnota je pouze localhost 127.0.0.1, IP si nastavíme podle uvážení, případně můžeme nastavit 0.0.0.0, což znamená naslouchej na všech IP, které má server nastavené.

příklad:

root@hrubinova:~# cat /etc/apcupsd/apcupsd.conf |grep NISIP
# NISIP <dotted notation ip address>
NISIP 10.107.237.1
root@hrubinova:~#

Pro provedení změn je třeba apsupsd restartovat, viz. výše.

Úprava konfigurace na lokálním serveru

Lokálním serverem myslíme ten, který bude schromažďovat data od serverů vzdálechých, zde je démonu apcupds potřeba říct co má sledovat a na jaké IP to má najít, provedeme to úpravou konfiguračního souboru /etc/apcupsd/hosts.conf. Zde si vytvoříme pro každou UPS jeden řádek ve formátu: MONITOR <ip serveru> "<název>".

Příklad:

root@andre:~# cat /etc/apcupsd/hosts.conf
MONITOR 127.0.0.1 "Andre"
MONITOR 10.107.137.9 "Andre2"
MONITOR 10.107.136.1 "Purkyne"
MONITOR 10.107.237.1 "Hrubinova"
root@andre:~#

Pozn.: v souboru nesmí být žádné prázdné řádky.

Pozn2.: Pozor co nastavíme na lokal serveru, stahování dat je vždy přes síť, pokud na lokal serveru nastavíme NISIP na něco jiného než localhost, musíme to samé pro local UPS nastavit i v hosts.conf.

Pro provedení změn musí opět následovat restart apcupsd.

by Lucutus