Kako spremljati status USB UPS prek SNMP
Kako spremljati status USB UPS prek SNMP
Obstaja več računalnikov z USB povezanim UPS. Vsi računalniki uporabljajo program apcupsd. Recimo, da želite združiti informacije o stanju napajanja za vsako enoto na enem mestu. Ker snmpd tam že deluje, bi bilo logično razširiti njegovo funkcionalnost.
Oglas
Spodnja rešitev, z dovoljenjem Administratorjev blog, bo zbral podatke iz vseh snmpd enot hkrati.
Za spremljanje stanja USB UPS prek SNMP, moramo najprej spremeniti konfiguracijo demona snmp.
Priprave
V konfiguracijo snmpd.conf doda naslednje.
# APC UPS
pass .1.3.6.1.4.1.318.1.1.1 /bin/sh /etc/snmp/apcupsd.sh
Vsebina skripta /etc/snmp/apcupsd.sh je naslednja.
#!/bin/sh -f # Preverite, ali je apcupsd na spletu. apcaccess > /dev/null 2>&1 || izhod 0 MESTO=".1.3.6.1.4.1.318.1.1.1" REQ="$2" # Zahtevani OID # # Obdelajte zahteve SET tako, da preprosto zabeležite dodeljeno vrednost. # Upoštevajte, da takšne "dodelitve" niso trajne, # niti ni potrjena sintaksa ali zahtevana vrednost. # če [ "$1" = "-s" ]; potem. echo $* >> /tmp/passtest.log. izhod 0. fi # # Zahteve GETNEXT - določi naslednji veljaven primerek. # če [ "$1" = "-n" ]; potem. primer "$REQ" v. $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;; $PLACE.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.*| \ $PLACE.5*| \ $PLACE.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;; $PLACE.7*| \ $PLACE.8.0*) RET=$PLACE.8.1.0;; *) izhod 0;; esac. drugo. # # Zahteve GET - preverite veljaven primer. # primer "$REQ" v. $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;; *) izhod 0;; esac. fi # # "Obdelaj" zahteve GET* - vrni trdo kodirano vrednost. # odmev "$RET" primer "$RET" v. $PLACE.1.1.1.0) echo "niz"; apcaccess -u -p MODEL; izhod 0;; $PLACE.2.2.1.0) echo "Gauge32"; apcaccess -u -p BCHARGE; izhod 0;; $PLACE.2.2.2.0) echo "Gauge32"; apcaccess -u -p ITEMP; izhod 0;; $PLACE.2.2.3.0) echo "Timeticks"; echo $(($(LC_ALL=C printf "%.*f" 0 $(apcaccess -u -p TIMELEFT)) * 6000)); izhod 0;; $PLACE.2.2.4.0) echo "niz"; apcaccess -u -p BATTDATE; izhod 0;; $PLACE.3.2.1.0) echo "Gauge32"; apcaccess -u -p LINEV; izhod 0;; $PLACE.3.2.4.0) echo "Gauge32"; apcaccess -u -p LINEFREQ; izhod 0;; $PLACE.3.2.5.0) echo "niz"; apcaccess -u -p LASTXFER; izhod 0;; $PLACE.4.2.1.0) echo "Gauge32"; apcaccess -u -p IZHOD TV; izhod 0;; $PLACE.4.2.2.0) echo "Gauge32"; apcaccess -u -p LINEFREQ; izhod 0;; $PLACE.4.2.3.0) echo "Gauge32"; apcaccess -u -p LOADPCT; izhod 0;; $PLACE.4.2.4.0) echo "Gauge32"; apcaccess -u -p LOADPCT; izhod 0;; $PLACE.7.2.3.0) echo "niz"; apcaccess -u -p SAMOTESTI; izhod 0;; $PLACE.7.2.4.0) echo "niz"; apcaccess -u -p SAMOTESTI; izhod 0;; $PLACE.8.1.0) echo "Gauge32"; odmev 1; izhod 0;; *) echo "string"; echo "ack... $RET $REQ"; izhod 0;; # Ne bi se smelo zgoditi. esac.
Če se sprašujete o OID-jih, jih lahko najdete TUKAJ. Upoštevajte, da nekateri modeli UPS ne vrnejo vseh parametrov ali so v napačni obliki, zato lahko koda vsebuje netočnosti in škrbine.
Zdaj ste pripravljeni.
Kako spremljati status USB UPS prek SNMP
Če želite spremljati stanje USB UPS prek SNMP, zaženite naslednji ukaz: snmpwalk -v 1 -c javna 127.0.0.1 .1.3.6.1.4.1.318.1.1.1
. Izhod bo takšen:
SNMPv2-SMI:: enterprises.318.1.1.1.1.1.1.0 = STRING: "Smart-UPS 750"
SNMPv2-SMI:: enterprises.318.1.1.1.2.2.1.0 = Gauge32: 100
SNMPv2-SMI:: enterprises.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:: enterprises.318.1.1.1.3.2.1.0 = Gauge32: 227
SNMPv2-SMI:: enterprises.318.1.1.1.3.2.4.0 = Gauge32: 50
SNMPv2-SMI:: enterprises.318.1.1.1.3.2.5.0 = STRING: "Samodejni ali eksplicitni samopreizkus"
SNMPv2-SMI:: enterprises.318.1.1.1.4.2.1.0 = Gauge32: 227
SNMPv2-SMI:: enterprises.318.1.1.1.4.2.2.0 = Gauge32: 50
SNMPv2-SMI:: enterprises.318.1.1.1.4.2.3.0 = Gauge32: 13
SNMPv2-SMI:: enterprises.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:: enterprises.318.1.1.1.8.1.0 = Gauge32: 1
Če dodatno konfigurirate skript za spremljanje, lahko dobite te izvrstne grafe: