Kako pratiti status USB UPS-a putem SNMP-a
Kako pratiti status USB UPS-a putem SNMP-a
Postoji nekoliko računala s USB povezanim UPS-om. Sva računala koriste program apcupsd. Recimo da želite prikupiti informacije o stanju napajanja za svaku jedinicu na jednom mjestu. Budući da snmpd tamo već radi, logično bi bilo proširiti njegovu funkcionalnost.
Rješenje u nastavku, ljubaznošću Adminov blog, prikupit će podatke sa svih snmpd jedinica odjednom.
Kako bismo pratili status USB UPS-a putem SNMP-a, prvo moramo izmijeniti konfiguraciju snmp demona.
Pripreme
Dodaje sljedeće u konfiguraciju snmpd.conf.
# APC UPS
pass .1.3.6.1.4.1.318.1.1.1 /bin/sh /etc/snmp/apcupsd.sh
Sadržaj skripte /etc/snmp/apcupsd.sh je sljedeći.
#!/bin/sh -f # Provjerite je li apcupsd online. apcaccess > /dev/null 2>&1 || izlaz 0 PLACE=".1.3.6.1.4.1.318.1.1.1" REQ="$2" # Zatraženi OID # # Obradite SET zahtjeve jednostavnim bilježenjem dodijeljene vrijednosti. # Imajte na umu da takvi "dodjela" nisu trajni, # niti je sintaksa ili tražena vrijednost provjerena. # if [ "$1" = "-s" ]; zatim. echo $* >> /tmp/passtest.log. izlaz 0. fi # # GETNEXT zahtjevi - odredite sljedeću valjanu instancu. # if [ "$1" = "-n" ]; zatim. slučaj "$REQ" u. $PLACE| \ $PLACE.0| \ $PLACE.0.*| \ $PLACE.1| \ $PLACE.1.1.0*) RET=$PLACE.1.1.1.0;; $PLACE.1*| \ $PLACE.2.0| \ $PLACE.2.0.*| \ $PLACE.2.1| \ $PLACE.2.2.0*) RET=$PLACE.2.2.1.0;; $PLACE.2.2.1*) RET=$PLACE.2.2.2.0;; $PLACE.2.2.2*) RET=$PLACE.2.2.3.0;; $PLACE.2.2.3*) RET=$PLACE.2.2.4.0;; $MJESTO.2*| \ $PLACE.3.0*| \ $PLACE.3.1*| \ $PLACE.3.2.0*) RET=$PLACE.3.2.1.0;; $PLACE.3.2.1*| \ $PLACE.3.2.2*| \ $PLACE.3.2.3*) RET=$PLACE.3.2.4.0;; $PLACE.3.2.4*) RET=$PLACE.3.2.5.0;; $PLACE.3.2*| \ $PLACE.4.0*| \ $PLACE.4.1*| \ $PLACE.4.2.0*) RET=$PLACE.4.2.1.0;; $PLACE.4.2.1*) RET=$PLACE.4.2.2.0;; $PLACE.4.2.2*) RET=$PLACE.4.2.3.0;; $PLACE.4.2.3*) RET=$PLACE.4.2.4.0;; $PLACE.4.2.*| \ $MJESTO.5*| \ $MJESTO.6*| \ $PLACE.7.0*| \ $PLACE.7.1*| \ $PLACE.7.2.0*| \ $PLACE.7.2.1*| \ $PLACE.7.2.2*) RET=$PLACE.7.2.3.0;; $PLACE.7.2.3*) RET=$PLACE.7.2.4.0;; $MJESTO.7*| \ $PLACE.8.0*) RET=$PLACE.8.1.0;; *) izlaz 0;; esac. drugo. # # GET zahtjevi - provjerite valjanu instancu. # slučaj "$REQ" u. $PLACE.1.1.1.0| \ $PLACE.2.2.1.0| \ $PLACE.2.2.2.0| \ $PLACE.2.2.3.0| \ $PLACE.2.2.4.0| \ $PLACE.3.2.1.0| \ $PLACE.3.2.4.0| \ $PLACE.3.2.5.0| \ $PLACE.4.2.1.0| \ $PLACE.4.2.2.0| \ $PLACE.4.2.3.0| \ $PLACE.4.2.4.0| \ $PLACE.7.2.3.0| \ $PLACE.7.2.4.0| \ $PLACE.8.1.0) RET=$REQ;; *) izlaz 0;; esac. fi # # "Obradi" GET* zahtjeve - vrati tvrdo kodiranu vrijednost. # odjek "$RET" slučaj "$RET" u. $PLACE.1.1.1.0) echo "string"; apcaccess -u -p MODEL; izlaz 0;; $PLACE.2.2.1.0) echo "Gauge32"; apcaccess -u -p NAPUNJAVANJE; izlaz 0;; $PLACE.2.2.2.0) echo "Gauge32"; apcaccess -u -p ITEMP; izlaz 0;; $PLACE.2.2.3.0) echo "Timeticks"; echo $(($(LC_ALL=C printf "%.*f" 0 $(apcaccess -u -p TIMELEFT)) * 6000)); izlaz 0;; $PLACE.2.2.4.0) echo "string"; apcaccess -u -p BATTDATE; izlaz 0;; $PLACE.3.2.1.0) echo "Gauge32"; apcaccess -u -p LINEV; izlaz 0;; $PLACE.3.2.4.0) echo "Gauge32"; apcaccess -u -p LINEFREQ; izlaz 0;; $PLACE.3.2.5.0) echo "string"; apcaccess -u -p LASTXFER; izlaz 0;; $PLACE.4.2.1.0) echo "Gauge32"; apcaccess -u -p IZLAZNI TV; izlaz 0;; $PLACE.4.2.2.0) echo "Gauge32"; apcaccess -u -p LINEFREQ; izlaz 0;; $PLACE.4.2.3.0) echo "Gauge32"; apcaccess -u -p LOADPCT; izlaz 0;; $PLACE.4.2.4.0) echo "Gauge32"; apcaccess -u -p LOADPCT; izlaz 0;; $PLACE.7.2.3.0) echo "string"; apcaccess -u -p SAMOTESTIRANJE; izlaz 0;; $PLACE.7.2.4.0) echo "string"; apcaccess -u -p SAMOTESTIRANJE; izlaz 0;; $PLACE.8.1.0) echo "Gauge32"; odjek 1; izlaz 0;; *) echo "string"; echo "potvrdi... $RET $REQ"; izlaz 0;; # Ne bi se trebalo dogoditi. esac.
Ako se pitate o OID-ovima, možete ih pronaći OVDJE. Imajte na umu da neki modeli UPS-a ne vraćaju sve parametre ili su u pogrešnom formatu, tako da kod može sadržavati netočnosti i nedostatke.
Sada ste spremni.
Kako pratiti status USB UPS-a putem SNMP-a
Za praćenje statusa USB UPS-a putem SNMP-a, pokrenite sljedeću naredbu: snmpwalk -v 1 -c javni 127.0.0.1 .1.3.6.1.4.1.318.1.1.1
. Izlaz će biti ovakav:
SNMPv2-SMI:: enterprises.318.1.1.1.1.1.1.0 = STRING: "Smart-UPS 750"
SNMPv2-SMI:: poduzeća.318.1.1.1.2.2.1.0 = Gauge32: 100
SNMPv2-SMI:: poduzeća.318.1.1.1.2.2.2.0 = Gauge32: 36
SNMPv2-SMI:: enterprises.318.1.1.1.2.2.3.0 = Timeticks: (432000) 1:12:00.00
SNMPv2-SMI:: enterprises.318.1.1.1.2.2.4.0 = STRING: "2020-05-14"
SNMPv2-SMI:: poduzeća.318.1.1.1.3.2.1.0 = Gauge32: 227
SNMPv2-SMI:: poduzeća.318.1.1.1.3.2.4.0 = Gauge32: 50
SNMPv2-SMI:: enterprises.318.1.1.1.3.2.5.0 = STRING: "Automatsko ili eksplicitno samotestiranje"
SNMPv2-SMI:: poduzeća.318.1.1.1.4.2.1.0 = Gauge32: 227
SNMPv2-SMI:: poduzeća.318.1.1.1.4.2.2.0 = Gauge32: 50
SNMPv2-SMI:: poduzeća.318.1.1.1.4.2.3.0 = Gauge32: 13
SNMPv2-SMI:: poduzeća.318.1.1.1.4.2.4.0 = Gauge32: 13
SNMPv2-SMI:: enterprises.318.1.1.1.7.2.3.0 = STRING: "NE"
SNMPv2-SMI:: enterprises.318.1.1.1.7.2.4.0 = STRING: "NE"
SNMPv2-SMI:: poduzeća.318.1.1.1.8.1.0 = Gauge32: 1
Ako dodatno konfigurirate skriptu za praćenje, možete dobiti ove zgodne grafikone: