|
|
|
|
|
Monitorování UPS pomocí nástroje NUTNetwork UPS Tools (NUT) je sada programů, které slouží k monitorování UPS (Uninterruptible Power Supply) a zajišťují korektní vypnutí všech počítačů připojených k dané UPSce v případě dlouhodobého výpadku napájení, kdy UPS již nebude mít dostatečnou energii k napájení počítačů k ní připojených. Díky NUTu nám stačí mít k UPSce připojen přes sériový (případně USB) kabel pouze jediný počítač (master server) a zbylé počítače (slave) komunikují s tímto serverem přes TCP/IP, tedy přes klasický ethernetový (síťový) kabel.
Program NUT se skládá ze tří částí, první je démon
Druhou částí programu NUT je klientská/monitorovací část realizovaná programem
Třetí částí jsou CGI skripty sloužící pro monitoring UPS, případně pro nastavení některých parametrů UPS přes webové rozhraní nebo pro spuštění testů UPS. Instalace
Protože jsem v žádném z repozitářů CentOSu nenašel balíčky
pro NUT, tak jsem si je musel přeložit sám. Zdrojové kódy stabilní verze
NUTu lze nalézt na adrese
www.networkupstools.org/source/2.0/. Ve zdrojových kódech jsou v adresáři rpm -Uvh nut-server-2.0.5-1.i386.rpm nut-2.0.5-1.i386.rpm Konfigurace serveru
Konfigurační soubory nalezneme v adresáři
Výsledný konfigurační soubor SERVER=yes MODEL=apcsmart DEVICE=/dev/ttyS0 OPTIONS= UPSD_OPTIONS=
Nastavíme ještě konfigurační soubor
[smartups]
driver = apcsmart
port = /dev/ttyS0
sdtype = 0
desc = "APC Smart-UPS 2200"
Jméno UPSky (parametr V tuto chvíli již můžeme vyzkoušet, zda nám komunikace s UPSkou funguje a to následujícím příkazem: apcsmart -u root -DD -a smartups Na terminál se vypíše více informací o tom co UPSka podporuje za příkazy a výpis skončí následujícími řádky: ... APC - UPS capabilities determined Detected SMART-UPS 2200 [GS9946005257] on /dev/ttyS0 dstate_init: sock /var/run/nut/apcsmart-ttyS0 open on fd 5
Tímto máme potvrzeno, že komunikace s UPSkou přes sériový kabel funguje,
můžeme program ukončit pomocí kombinace CTRL-c a přistoupit
k další části konfigurace, tedy k nastavení démona
Konfigurační soubor démona
Nejprve si nastavíme přístupy klientských počítačů k našemu NUT serveru.
Nastavení je velice jednoduché a myslím si, že soubor
ACL all 0.0.0.0/0 ACL localhost 127.0.0.1/32 ACL backup 10.0.0.50/32 ACL www 10.0.0.51/32 ACCEPT localhost ACCEPT backup www REJECT all Tímto jsem povolil přístup k NUT serveru pouze z IP adres 127.0.0.1, 10.0.0.50 a 10.0.0.51. Pozor, maska za IP adresou je povinná!
Ještě si nadefinujeme jména uživatelů a hesla a povolíme jim přístup k
NUT serveru. Toto nalezneme v souboru
[ups]
password = monu6ivatel
allowfrom = localhost backup www
upsmon master
[admin]
password = administr8torups
allowfrom = localhost
actions = SET
instcmds = ALL
Nadefinoval jsem uživatele
Protože mám zapnutý firewall, tak musím na serveru ještě povolit přístup
z IP adres 10.0.0.50 a 10.0.0.51 a to na port na němž naslouchá upsd,
tedy na 3493. Do souboru s firewallem ( -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp -s 10.0.0.50 --dport 3493 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp -s 10.0.0.51 --dport 3493 -j ACCEPT Tímto máme konfiguraci na straně serveru hotovou a můžeme přejít ke konfiguraci klientů. Konfigurace klientů
Na klientských stanicích stačí nainstalovat pouze balíček
MONITOR smartups@localhost 1 ups monu6ivatel master MINSUPPLIES 1 SHUTDOWNCMD "/sbin/shutdown -h +0" POLLFREQ 20 POLLFREQALERT 5 HOSTSYNC 15 DEADTIME 60 POWERDOWNFLAG /etc/killpower RBWARNTIME 43200 NOCOMMWARNTIME 300 FINALDELAY 5
Parametr
Popis dalších parametrů v tomto souboru lze nalézt v manuálové stránce
(
Někdy je také dobré nastavit si logování některých událostí, což lze provést
přidáním níže uvedených direktiv do souboru NOTIFYFLAG ONLINE SYSLOG+WALL NOTIFYFLAG ONBATT SYSLOG+WALL NOTIFYFLAG LOWBATT SYSLOG+WALL Informace o tom, zda UPS pracuje ze sítě nebo z baterie, případně informace, že baterie je již vybitá se budou zapisovat do logu a zároveň posílat na terminál všem přihlášeným uživatelům. Lze nastavit například i posílání e-mailů. Tímto je konfigurace klientské části dokončena a můžeme provést otestování. Nastartujeme démon NUT a monitorovací program NUTu: /etc/init.d/upsd start /etc/init.d/upsmon start
Pomocí programu upsc smartups@localhost battery.alarm.threshold: 0 battery.charge: 100.0 battery.charge.restart: 00 battery.date: 11/10/99 battery.packs: 000 battery.runtime: 10320 battery.runtime.low: 420 battery.voltage: 55.05 battery.voltage.nominal: 048 driver.name: apcsmart driver.version: 2.0.5 driver.version.internal: 1.99.7 input.frequency: 50.00 input.quality: FF input.sensitivity: H input.transfer.high: 253 input.transfer.low: 196 input.transfer.reason: R input.voltage: 244.4 input.voltage.maximum: 245.7 input.voltage.minimum: 243.1 output.voltage: 244.4 output.voltage.target.battery: 230 ups.delay.shutdown: 180 ups.delay.start: 000 ups.firmware: 80.11.I ups.id: TACHEC ups.load: 006.7 ups.mfr: APC ups.mfr.date: 11/10/99 ups.model: SMART-UPS 2200 ups.serial: GS9946005257 ups.status: OL ups.temperature: 036.9 ups.test.interval: 1209600 ups.test.result: NO Pro zjištění příkazů, které UPSka podporuje můžeme použít následující příkaz: upscmd -l smartups@localhost Instant commands supported on UPS [apc@localhost]: test.panel.start - Start testing the UPS panel test.panel.stop - Stop a UPS panel test load.off - Turn off the load immediately shutdown.return - Turn off the load and return when power is back shutdown.stop - Stop a shutdown in progress beeper.on - Enable the UPS beeper beeper.off - Disable the UPS beeper uspcmd, bude vyžadován
uživatel, který smí zadávat příkazy a jeho heslo. V mém případě by to byl
uživatel admin a heslo administr8torups.
upscmd -u admin smartups@localhost beeper.off Konfigurace CGI skriptů
Pokud nán funguje NUT server a pomocí NUT klienta jsme schopni získat
informace z UPS a chceme mít informace o UPS v čitelnější podobě, tak si
můžeme nainstalovat balíček rpm -Uvh nut-cgi-2.0.5-1.i386.rpm
CGI skripty nalezneme klasicky v adresáři MONITOR smartups@localhost "Local UPS"
V případě, že budeme chtít využívat webové rozhraní i k zadávaní parametrů
dané UPS, tak je dobré si projít soubor Skripty jsou dostupné přes webový prohlížeč na adresách: http://127.0.0.1/cgi-bin/upsstats.cgi http://127.0.0.1/cgi-bin/upsset.cgi Ukázka výstupu CGI skriptů:
![]()
Naposledy změněno: 17.3.2007 9:21
|
|
|
© 2006-2008 o.k.
|
|