Kuinka seurata USB UPS: n tilaa SNMP: n kautta
Kuinka seurata USB UPS: n tilaa SNMP: n kautta
On olemassa useita tietokoneita, joissa on USB-liitännäinen UPS. Kaikki tietokoneet käyttävät apcupsd-ohjelmaa. Oletetaan, että haluat koota yhteen paikkaan tiedot jokaisen yksikön virtalähteen tilasta. Koska snmpd on jo käynnissä siellä, olisi loogista laajentaa sen toimintoja.
Alla oleva ratkaisu Ylläpitäjän blogi, kerää tiedot kaikista snmpd-yksiköistä kerralla.
Jotta voimme valvoa USB UPS: n tilaa SNMP: n kautta, meidän on ensin muutettava snmp-daemonin konfiguraatiota.
Valmistelut
Lisää seuraavan tiedoston config snmpd.conf.
# APC UPS
läpäise .1.3.6.1.4.1.318.1.1.1 /bin/sh /etc/snmp/apcupsd.sh
Komentosarjan /etc/snmp/apcupsd.sh sisältö on seuraava.
#!/bin/sh -f # Tarkista, että apcupsd on online-tilassa. apcaccess > /dev/null 2>&1 || poistu 0 PLACE=".1.3.6.1.4.1.318.1.1.1" REQ="$2" # Pyydetty OID # # Käsittele SET-pyynnöt kirjaamalla määritetty arvo. # Huomaa, että tällaiset "määritykset" eivät ole pysyviä, # eikä syntaksia tai pyydettyä arvoa ole vahvistettu. # jos [ "$1" = "-s" ]; sitten. echo $* >> /tmp/passtest.log. poistu 0. fi # # GETNEXT-pyynnöt - määritä seuraava kelvollinen esiintymä. # jos [ "$1" = "-n" ]; sitten. tapaus "$REQ" sisään. $PAIKKA| \ $PAIKKA.0| \ $PAIKKA.0.*| \ $PAIKKA.1| \ $PAIKKA.1.1.0*) RET=$PAIKKA.1.1.1.0;; $PAIKKA.1*| \ $PAIKKA.2.0| \ $PAIKKA.2.0.*| \ $PAIKKA.2.1| \ $PAIKKA.2.2.0*) RET=$PAIKKA.2.2.1.0;; $PAIKKA.2.2.1*) RET=$PAIKKA.2.2.2.0;; $PAIKKA.2.2.2*) RET=$PAIKKA.2.2.3.0;; $PAIKKA.2.2.3*) RET=$PAIKKA.2.2.4.0;; $PAIKKA.2*| \ $PAIKKA.3.0*| \ $PAIKKA.3.1*| \ $PAIKKA.3.2.0*) RET=$PAIKKA.3.2.1.0;; $PAIKKA.3.2.1*| \ $PAIKKA.3.2.2*| \ $PAIKKA.3.2.3*) RET=$PAIKKA.3.2.4.0;; $PAIKKA.3.2.4*) RET=$PAIKKA.3.2.5.0;; $PAIKKA.3.2*| \ $PAIKKA.4.0*| \ $PAIKKA.4.1*| \ $PAIKKA.4.2.0*) RET=$PAIKKA.4.2.1.0;; $PAIKKA.4.2.1*) RET=$PAIKKA.4.2.2.0;; $PAIKKA.4.2.2*) RET=$PAIKKA.4.2.3.0;; $PAIKKA.4.2.3*) RET=$PAIKKA.4.2.4.0;; $PAIKKA.4.2.*| \ PAIKKA $.5*| \ $PAIKKA.6*| \ $PAIKKA.7,0*| \ $PAIKKA.7.1*| \ $PAIKKA.7.2.0*| \ $PAIKKA.7.2.1*| \ $PAIKKA.7.2.2*) RET=$PAIKKA.7.2.3.0;; $PAIKKA.7.2.3*) RET=$PAIKKA.7.2.4.0;; PAIKKA, 7 $*| \ $PAIKKA.8.0*) RET=$PAIKKA.8.1.0;; *) poistu 0;; esac. muu. # # GET-pyynnöt - tarkista kelvollinen esiintymä. # tapaus "$REQ" sisään. $PAIKKA.1.1.1.0| \ $PAIKKA.2.2.1.0| \ $PAIKKA.2.2.2.0| \ $PAIKKA.2.2.3.0| \ $PAIKKA.2.2.4.0| \ $PAIKKA.3.2.1.0| \ $PAIKKA.3.2.4.0| \ $PAIKKA.3.2.5.0| \ $PAIKKA.4.2.1.0| \ $PAIKKA.4.2.2.0| \ $PAIKKA.4.2.3.0| \ $PAIKKA.4.2.4.0| \ $PAIKKA.7.2.3.0| \ $PAIKKA.7.2.4.0| \ $PAIKKA.8.1.0) RET=$REQ;; *) poistu 0;; esac. fi # # "Prosessoi" GET*-pyynnöt - palauttaa koodatun arvon. # kaiku "$RET" kotelo "$RET" sisään. $PLACE.1.1.1.0) kaiku "merkkijono"; apcaccess -u -p MALLI; poistu 0;; $PLACE.2.2.1.0) echo "Gauge32"; apcaccess -u -p BCHARGE; poistu 0;; $PLACE.2.2.2.0) echo "Gauge32"; apcaccess -u -p ITEMP; poistu 0;; $PLACE.2.2.3.0) echo "Timeticks"; echo $(($(LC_ALL=C printf "%.*f" 0 $(apcaccess -u -p TIMELEFT)) * 6000)); poistu 0;; $PLACE.2.2.4.0) kaiku "merkkijono"; apcaccess -u -p BATTDATE; poistu 0;; $PLACE.3.2.1.0) echo "Gauge32"; apcaccess -u -p LINEV; poistu 0;; $PLACE.3.2.4.0) echo "Gauge32"; apcaccess -u -p LINEFREQ; poistu 0;; $PLACE.3.2.5.0) kaiku "merkkijono"; apcaccess -u -p LASTXFER; poistu 0;; $PLACE.4.2.1.0) echo "Gauge32"; apcaccess -u -p OUTPUTV; poistu 0;; $PLACE.4.2.2.0) echo "Gauge32"; apcaccess -u -p LINEFREQ; poistu 0;; $PLACE.4.2.3.0) echo "Gauge32"; apcaccess -u -p LOADPCT; poistu 0;; $PLACE.4.2.4.0) echo "Gauge32"; apcaccess -u -p LOADPCT; poistu 0;; $PLACE.7.2.3.0) kaiku "merkkijono"; apcaccess -u -p SELFTEST; poistu 0;; $PLACE.7.2.4.0) kaiku "merkkijono"; apcaccess -u -p SELFTEST; poistu 0;; $PLACE.8.1.0) echo "Gauge32"; kaiku 1; poistu 0;; *) kaiku "merkkijono"; kaiku "hyvä... $RET $REQ"; poistu 0;; # Ei pitäisi tapahtua. esac.
Jos mietit OID: itä, löydät ne TÄSSÄ. Huomaa, että jotkin UPS-mallit eivät palauta kaikkia parametreja tai ne ovat väärässä muodossa, joten koodi saattaa sisältää epätarkkuuksia ja pätkiä.
Nyt olet valmis.
Kuinka seurata USB UPS: n tilaa SNMP: n kautta
Voit seurata USB UPS: n tilaa SNMP: n kautta suorittamalla seuraavan komennon: snmpwalk -v 1 -c julkinen 127.0.0.1 .1.3.6.1.4.1.318.1.1.1
. Tuloste tulee olemaan tällainen:
SNMPv2-SMI:: yritykset.318.1.1.1.1.1.1.0 = STRING: "Smart-UPS 750"
SNMPv2-SMI:: yritykset.318.1.1.1.2.2.1.0 = Mittari32: 100
SNMPv2-SMI:: yritykset.318.1.1.1.2.2.2.0 = Mittari32: 36
SNMPv2-SMI:: yritykset.318.1.1.1.2.2.3.0 = Aikataulut: (432000) 1:12:00.00
SNMPv2-SMI:: yritykset.318.1.1.1.2.2.4.0 = STRING: "2020-05-14"
SNMPv2-SMI:: yritykset.318.1.1.1.3.2.1.0 = Mittari32: 227
SNMPv2-SMI:: yritykset.318.1.1.1.3.2.4.0 = Mittari32: 50
SNMPv2-SMI:: companies.318.1.1.1.3.2.5.0 = STRING: "Automaattinen tai eksplisiittinen itsetestaus"
SNMPv2-SMI:: yritykset.318.1.1.1.4.2.1.0 = Mittari32: 227
SNMPv2-SMI:: yritykset.318.1.1.1.4.2.2.0 = Mittari32: 50
SNMPv2-SMI:: yritykset.318.1.1.1.4.2.3.0 = Mittari32: 13
SNMPv2-SMI:: yritykset.318.1.1.1.4.2.4.0 = Mittari32: 13
SNMPv2-SMI:: yritykset.318.1.1.1.7.2.3.0 = STRING: "EI"
SNMPv2-SMI:: yritykset.318.1.1.1.7.2.4.0 = STRING: "EI"
SNMPv2-SMI:: yritykset.318.1.1.1.8.1.0 = Mittari32: 1
Jos määrität valvontaskriptiä edelleen, voit saada nämä hienot kaaviot: