apc smart ups script snmp bash

24/09/2007 by - Bash

APC azienda leader nella fabbricazione di gruppo di continuità permette
via snmp il monitoraggio del device.
Alcune delle informazioni più importanti che si possono ottenere sono:

– lo stato delle batterie [Normal|Low]
– il tempo trascorso in modalità batteria
– il tempo massimo in modalità batteria
– la capacità in % delle batterie
– il rilevamento delle batterie da sostituire
– la temperatura delle batterie
– la temperature ambientale

Utilizzando delle semplici istruzioni snmp, due righe di bash e un canale (un demone…)
per interfacciarsi ad un gateway sms possiamo farci inviare dei messaggi sms in caso di problemi, oppure semplicemente ricevere ad intervalli regolari una mail informativa sullo stato.

Avendo ad esempio un condizionatore “casalingo” il gruppo di continuità può venirci incontro
offrendoci la possibilità materiale di ottenere la temperatura della nostra server farm.

NB: sono in commercio sensori per il rilevamento di umidità.

Installato snmp e scaricato il file MIB (Management Information Base) sotto /usr/share/snmp/mibs/powernetX.X.X.mib bisogna configurare il demone sul dispositivo ups.
Per farlo consultate il manuale del produttore.

Nell’esempio il dispositivo avrà indirizzo IP 192.168.30.11 e la community read “public”

Possiamo iniziare il polling dello stato con uno script


#!/bin/sh
echo "---------------------------------";
snmpget -OsQ -m "/usr/share/snmp/mibs/powernetX.X.X.mib" \
-v1 -c public 192.168.30.11 \
upsBasicBatteryStatus.0 \
upsBasicBatteryTimeOnBattery.0 \
upsAdvBatteryCapacity.0 \
upsAdvBatteryTemperature.0 \
upsAdvBatteryRunTimeRemaining.0 \
upsAdvBatteryReplaceIndicator.0 \
iemStatusProbeCurrentTemp.1
echo "---------------------------------";
echo;
exit 0

che produrrà un output molto chiaro

tex:~$ /usr/local/bin/upsinfo
---------------------------------
upsBasicBatteryStatus.0 = batteryNormal
upsBasicBatteryTimeOnBattery.0 = 0:0:00:00.00
upsAdvBatteryCapacity.0 = 100
upsAdvBatteryTemperature.0 = 29
upsAdvBatteryRunTimeRemaining.0 = 0:3:58:00.00
upsAdvBatteryReplaceIndicator.0 = noBatteryNeedsReplacing
iemStatusProbeCurrentTemp.1 = 24
---------------------------------

Per controllare lo stato della temperatura esterna (per creare grafici con mrtg, farsi inviare sms di allarme, ecc…) basterà inserire nello script:


CURTEM=`snmpget -Oqv -m "/usr/share/snmp/mibs/powernetX.X.X.mib" -v1 -c public 192.168.30.11 iemStatusProbeCurrentTemp.1`

e confrontare/salvare il valore di CURTEM.



Lascia un commento

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.