Windows Tips & News

Hvordan overvåke USB UPS-status via SNMP

click fraud protection

Hvordan overvåke USB UPS-status via SNMP

Det er flere datamaskiner med USB-tilkoblet UPS. Alle datamaskinene bruker apcupsd-programmet. La oss si at du ønsker å samle informasjon om tilstanden til strømforsyningen for hver enhet på ett sted. Siden snmpd allerede kjører der, ville det være logisk å utvide funksjonaliteten.

Løsningen nedenfor, med tillatelse fra Admins blogg, samler inn dataene fra alle snmpd-enheter samtidig.

For å overvåke USB UPS-status via SNMP, må vi først endre snmp-demonkonfigurasjonen.

Forberedelser

Legger til følgende til konfigurasjonen snmpd.conf.

# APC UPS
pass .1.3.6.1.4.1.318.1.1.1 /bin/sh /etc/snmp/apcupsd.sh

Innholdet i /etc/snmp/apcupsd.sh-skriptet er som følger.

#!/bin/sh -f # Sjekk at apcupsd er online. apcaccess > /dev/null 2>&1 || exit 0 PLACE=".1.3.6.1.4.1.318.1.1.1" REQ="$2" # Forespurt OID # # Behandle SET-forespørsler ved ganske enkelt å logge den tilordnede verdien. # Merk at slike "tildelinger" ikke er vedvarende, # heller ikke er syntaksen eller den forespurte verdien validert. # if [ "$1" = "-s" ]; deretter. echo $* >> /tmp/passtest.log. utgang 0. fi # # GETNEXT-forespørsler - finn neste gyldige forekomst. # if [ "$1" = "-n" ]; deretter. tilfellet "$REQ" i. $PLACE| \ $PLACE.0| \ $PLASS.0.*| \ $PLACE.1| \ $PLASS.1.1.0*) RET=$PLASS.1.1.1.0;; $PLASS.1*| \ $PLACE.2.0| \ $PLASS.2.0.*| \ $PLASS.2.1| \ $PLASS.2.2.0*) RET=$PLASS.2.2.1.0;; $PLASS.2.2.1*) RET=$PLASS.2.2.2.0;; $PLASS.2.2.2*) RET=$PLASS.2.2.3.0;; $PLASS.2.2.3*) RET=$PLASS.2.2.4.0;; $PLASS.2*| \ $PLACE.3.0*| \ $PLASS.3.1*| \ $PLASS.3.2.0*) RET=$PLASS.3.2.1.0;; $PLASS.3.2.1*| \ $PLASS.3.2.2*| \ $PLASS.3.2.3*) RET=$PLASS.3.2.4.0;; $PLASS.3.2.4*) RET=$PLASS.3.2.5.0;; $PLASS.3.2*| \ $PLASS.4.0*| \ $PLASS.4.1*| \ $PLASS.4.2.0*) RET=$PLASS.4.2.1.0;; $PLASS.4.2.1*) RET=$PLASS.4.2.2.0;; $PLASS.4.2.2*) RET=$PLASS.4.2.3.0;; $PLASS.4.2.3*) RET=$PLASS.4.2.4.0;; $PLASS.4.2.*| \ $PLASS.5*| \ $PLASS.6*| \ $PLACE.7.0*| \ $PLASS.7.1*| \ $PLACE.7.2.0*| \ $PLASS.7.2.1*| \ $PLASS.7.2.2*) RET=$PLASS.7.2.3.0;; $PLASS.7.2.3*) RET=$PLASS.7.2.4.0;; $PLASS.7*| \ $PLACE.8.0*) RET=$PLACE.8.1.0;; *) exit 0;; esac. ellers. # # GET-forespørsler - se etter gyldig forekomst. # tilfellet "$REQ" i. $PLASS.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| \ $PLASS.3.2.5.0| \ $PLACE.4.2.1.0| \ $PLACE.4.2.2.0| \ $PLASS.4.2.3.0| \ $PLACE.4.2.4.0| \ $PLASS.7.2.3.0| \ $PLASS.7.2.4.0| \ $PLACE.8.1.0) RET=$REQ;; *) exit 0;; esac. fi # # "Prosess" GET*-forespørsler - returner hardkodet verdi. # ekko "$RET" tilfelle "$RET" i. $PLACE.1.1.1.0) ekko "streng"; apcaccess -u -p MODELL; utgang 0;; $PLACE.2.2.1.0) ekko "Gauge32"; apcaccess -u -p BCHARGE; utgang 0;; $PLACE.2.2.2.0) ekko "Gauge32"; apcaccess -u -p ITEMP; utgang 0;; $PLACE.2.2.3.0) ekko "Timeticks"; echo $(($(LC_ALL=C printf "%.*f" 0 $(apcaccess -u -p TIMELEFT)) * 6000)); utgang 0;; $PLACE.2.2.4.0) ekko "streng"; apcaccess -u -p BATTDATE; utgang 0;; $PLACE.3.2.1.0) ekko "Gauge32"; apcaccess -u -p LINEV; utgang 0;; $PLACE.3.2.4.0) ekko "Gauge32"; apcaccess -u -p LINEFREQ; utgang 0;; $PLACE.3.2.5.0) ekko "streng"; apcaccess -u -p LASTXFER; utgang 0;; $PLACE.4.2.1.0) ekko "Gauge32"; apcaccess -u -p OUTPUTV; utgang 0;; $PLACE.4.2.2.0) ekko "Gauge32"; apcaccess -u -p LINEFREQ; utgang 0;; $PLACE.4.2.3.0) ekko "Gauge32"; apcaccess -u -p LOADPCT; utgang 0;; $PLACE.4.2.4.0) ekko "Gauge32"; apcaccess -u -p LOADPCT; utgang 0;; $PLACE.7.2.3.0) ekko "streng"; apcaccess -u -p SELVEST; utgang 0;; $PLACE.7.2.4.0) ekko "streng"; apcaccess -u -p SELVEST; utgang 0;; $PLACE.8.1.0) ekko "Gauge32"; ekko 1; utgang 0;; *) ekko "streng"; ekko "ack... $RET $REQ"; utgang 0;; # Bør ikke skje. esac.

Hvis du lurer på OID, kan du finne dem HER. Merk at noen UPS-modeller ikke returnerer alle parametere eller i feil format, så koden kan inneholde unøyaktigheter og stubber.

Nå er du klar.

Hvordan overvåke USB UPS-status via SNMP

For å overvåke USB UPS-status via SNMP, kjør følgende kommando: snmpwalk -v 1 -c offentlig 127.0.0.1 .1.3.6.1.4.1.318.1.1.1. Utgangen vil være slik:

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 = Måler32: 100
SNMPv2-SMI:: enterprises.318.1.1.1.2.2.2.0 = Måler32: 36
SNMPv2-SMI:: enterprises.318.1.1.1.2.2.3.0 = Tidsmerker: (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 = Måler32: 227
SNMPv2-SMI:: enterprises.318.1.1.1.3.2.4.0 = Måler32: 50
SNMPv2-SMI:: enterprises.318.1.1.1.3.2.5.0 = STRING: "Automatisk eller eksplisitt selvtest"
SNMPv2-SMI:: enterprises.318.1.1.1.4.2.1.0 = Måler32: 227
SNMPv2-SMI:: enterprises.318.1.1.1.4.2.2.0 = Måler32: 50
SNMPv2-SMI:: enterprises.318.1.1.1.4.2.3.0 = Måler32: 13
SNMPv2-SMI:: enterprises.318.1.1.1.4.2.4.0 = Måler32: 13
SNMPv2-SMI:: enterprises.318.1.1.1.7.2.3.0 = STRING: "NEI"
SNMPv2-SMI:: enterprises.318.1.1.1.7.2.4.0 = STRING: "NEI"
SNMPv2-SMI:: enterprises.318.1.1.1.8.1.0 = Måler32: 1

Hvis du konfigurerer overvåkingsskriptet ytterligere, kan du få disse smarte grafene:

Brukere i Kina kan støte på Windows 11-oppgraderingsproblemer på grunn av landets TPM-brikkeforbud

Brukere i Kina kan støte på Windows 11-oppgraderingsproblemer på grunn av landets TPM-brikkeforbud

Tilbake i juni, da Microsoft nettopp annonserte Windows 11, hadde selskapet også avslørt det nye ...

Les mer

Visual Studio 2019 utgitt

Visual Studio 2019 utgitt

Microsoft slipper Visual Studio 2019, den neste versjonen av deres populære produkt for utviklere...

Les mer

Slik legger du til oppgavelinjeklokke på sekundær skjerm i Windows 11

Slik legger du til oppgavelinjeklokke på sekundær skjerm i Windows 11

Slik viser du oppgavelinjeklokken på den sekundære skjermen i Windows 11. Som standard viser den ...

Les mer