Kaip stebėti USB UPS būseną per SNMP
Kaip stebėti USB UPS būseną per SNMP
Yra keli kompiuteriai su USB prijungtu UPS. Visi kompiuteriai naudoja apcupsd programą. Tarkime, kad norite vienoje vietoje kaupti informaciją apie kiekvieno įrenginio maitinimo būseną. Kadangi ten jau veikia snmpd, logiška būtų išplėsti jo funkcionalumą.
Žemiau pateiktas sprendimas Administratoriaus dienoraštis, rinks duomenis iš visų snmpd įrenginių vienu metu.
Norėdami stebėti USB UPS būseną per SNMP, pirmiausia turime modifikuoti snmp demono konfigūraciją.
Preparatai
Prie config snmpd.conf prideda šiuos dalykus.
# APC UPS
praeiti .1.3.6.1.4.1.318.1.1.1 /bin/sh /etc/snmp/apcupsd.sh
Scenarijaus /etc/snmp/apcupsd.sh turinys yra toks.
#!/bin/sh -f # Patikrinkite, ar apcupsd yra prisijungęs. apcaccess > /dev/null 2>&1 || išėjimas 0 PLACE=".1.3.6.1.4.1.318.1.1.1" REQ="$2" # Reikalingas OID # # Apdorokite SET užklausas tiesiog registruodami priskirtą reikšmę. # Atminkite, kad tokie „priskyrimai“ nėra nuolatiniai, # taip pat nėra patvirtinta sintaksė ar prašoma reikšmė. # if [ "$1" = "-s" ]; tada. echo $* >> /tmp/passtest.log. išėjimas 0. fi # # GETNEXT užklausos – nustatykite kitą tinkamą egzempliorių. # if [ "$1" = "-n" ]; tada. korpusas "$REQ" in. $VIETA| \ $VIETA.0| \ VIETA.0.*| \ $VIETA.1| \ $VIETA.1.1.0*) RET=$VIETA.1.1.1.0;; $VIETA.1*| \ $VIETA.2.0| \ $VIETA.2.0.*| \ $VIETA.2.1| \ $PLACE.2.2.0*) RET=$PLACE.2.2.1.0;; $PLACE.2.2.1*) RET=$PLACE.2.2.2.0;; $VIETA.2.2.2*) RET=$VIETA.2.2.3.0;; $VIETA.2.2.3*) RET=$VIETA.2.2.4.0;; $VIETA.2*| \ $VIETA.3.0*| \ $VIETA.3.1*| \ $VIETA.3.2.0*) RET=$VIETA.3.2.1.0;; $VIETA.3.2.1*| \ $VIETA.3.2.2*| \ $VIETA.3.2.3*) RET=$VIETA.3.2.4.0;; $VIETA.3.2.4*) RET=$VIETA.3.2.5.0;; $VIETA.3.2*| \ $VIETA.4.0*| \ $VIETA.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;; $VIETA.4.2.*| \ $VIETA.5*| \ $VIETA.6*| \ $VIETA.7.0*| \ $VIETA.7.1*| \ $VIETA.7.2.0*| \ $VIETA.7.2.1*| \ $PLACE.7.2.2*) RET=$PLACE.7.2.3.0;; $PLACE.7.2.3*) RET=$PLACE.7.2.4.0;; $VIETA.7*| \ $VIETA.8.0*) RET=$VIETA.8.1.0;; *) išėjimas 0;; esac. Kitas. # # GET užklausos – patikrinkite, ar egzempliorius yra tinkamas. # korpusas "$REQ" in. $VIETA.1.1.1.0| \ $PLACE.2.2.1.0| \ $VIETA.2.2.2.0| \ $VIETA.2.2.3.0| \ $VIETA.2.2.4.0| \ $PLACE.3.2.1.0| \ $VIETA.3.2.4.0| \ $VIETA.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| \ $VIETA.8.1.0) RET=$REQ;; *) išėjimas 0;; esac. fi # # „Apdoroti“ GET* užklausas – grąžinama užkoduota reikšmė. # aidas "$RET" korpusas "$RET" in. $PLACE.1.1.1.0) echo "styga"; apcaccess -u -p MODELIS; išėjimas 0;; $PLACE.2.2.1.0) echo "Gauge32"; apcaccess -u -p BCHARGE; išėjimas 0;; $PLACE.2.2.2.0) echo "Gauge32"; apcaccess -u -p ITEMP; išėjimas 0;; $PLACE.2.2.3.0) echo "Laiko rodyklės"; echo $(($(LC_ALL=C printf "%.*f" 0 $(apcaccess -u -p TIMELEFT)) * 6000)); išėjimas 0;; $PLACE.2.2.4.0) echo "styga"; apcaccess -u -p BATTDATE; išėjimas 0;; $PLACE.3.2.1.0) echo "Gauge32"; apcaccess -u -p LINEV; išėjimas 0;; $PLACE.3.2.4.0) echo "Gauge32"; apcaccess -u -p LINEFREQ; išėjimas 0;; $PLACE.3.2.5.0) echo "styga"; apcaccess -u -p LASTXFER; išėjimas 0;; $PLACE.4.2.1.0) echo "Gauge32"; apcaccess -u -p OUTPUTV; išėjimas 0;; $PLACE.4.2.2.0) echo "Gauge32"; apcaccess -u -p LINEFREQ; išėjimas 0;; $PLACE.4.2.3.0) echo "Gauge32"; apcaccess -u -p LOADPCT; išėjimas 0;; $PLACE.4.2.4.0) echo "Gauge32"; apcaccess -u -p LOADPCT; išėjimas 0;; $PLACE.7.2.3.0) echo "styga"; apcaccess -u -p SELFTEST; išėjimas 0;; $PLACE.7.2.4.0) echo "styga"; apcaccess -u -p SELFTEST; išėjimas 0;; $PLACE.8.1.0) echo "Gauge32"; aidas 1; išėjimas 0;; *) aidas "styga"; echo "ack... $RET $REQ"; išėjimas 0;; # Neturėtų atsitikti. esac.
Jei jums įdomu apie OID, galite juos rasti ČIA. Atminkite, kad kai kurie UPS modeliai nepateikia visų parametrų arba pateikia netinkamą formatą, todėl kode gali būti netikslumų ir spragų.
Dabar jūs pasiruošę.
Kaip stebėti USB UPS būseną per SNMP
Norėdami stebėti USB UPS būseną per SNMP, paleiskite šią komandą: snmpwalk -v 1 -c public 127.0.0.1 .1.3.6.1.4.1.318.1.1.1
. Išvestis bus tokia:
SNMPv2-SMI:: įmonės.318.1.1.1.1.1.1.0 = STRING: "Smart-UPS 750"
SNMPv2-SMI:: įmonės.318.1.1.1.2.2.1.0 = 32 matuoklis: 100
SNMPv2-SMI:: įmonės.318.1.1.1.2.2.2.0 = Gauge32: 36
SNMPv2-SMI:: įmonės.318.1.1.1.2.2.3.0 = Laikrodžiai: (432000) 1:12:00.00
SNMPv2-SMI:: įmonės.318.1.1.1.2.2.4.0 = STRING: "2020-05-14"
SNMPv2-SMI:: įmonės.318.1.1.1.3.2.1.0 = Gauge32: 227
SNMPv2-SMI:: įmonės.318.1.1.1.3.2.4.0 = 32 matuoklis: 50
SNMPv2-SMI:: companies.318.1.1.1.3.2.5.0 = STRING: "Automatinis arba aiškus savęs patikrinimas"
SNMPv2-SMI:: įmonės.318.1.1.1.4.2.1.0 = Gauge32: 227
SNMPv2-SMI:: įmonės.318.1.1.1.4.2.2.0 = 32 matuoklis: 50
SNMPv2-SMI:: įmonės.318.1.1.1.4.2.3.0 = Gauge32: 13
SNMPv2-SMI:: įmonės.318.1.1.1.4.2.4.0 = Gauge32: 13
SNMPv2-SMI:: įmonės.318.1.1.1.7.2.3.0 = STRING: "NE"
SNMPv2-SMI:: įmonės.318.1.1.1.7.2.4.0 = STRING: "NE"
SNMPv2-SMI:: įmonės.318.1.1.1.8.1.0 = Gauge32: 1
Jei toliau konfigūruosite stebėjimo scenarijų, galite gauti šiuos puikius grafikus: