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.
Mainos
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:



