Windows Tips & News

Sådan overvåger du USB UPS-status via SNMP

Sådan overvåger du USB UPS-status via SNMP

Der er flere computere med USB-tilsluttet UPS. Alle computere bruger programmet apcupsd. Lad os sige, at du vil samle oplysninger om strømforsyningens tilstand for hver enhed på ét sted. Da snmpd allerede kører der, ville det være logisk at udvide dets funktionalitet.

Nedenstående løsning, høflighed af Admins blog, vil indsamle data fra alle snmpd-enheder på én gang.

For at overvåge USB UPS-status via SNMP, skal vi først ændre snmp-dæmonens konfiguration.

Forberedelser

Tilføjer følgende til konfigurationen snmpd.conf.

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

Indholdet af /etc/snmp/apcupsd.sh scriptet er som følger.

#!/bin/sh -f # Tjek, at apcupsd er online. apcaccess > /dev/null 2>&1 || exit 0 PLACE=".1.3.6.1.4.1.318.1.1.1" REQ="$2" # Anmodet OID # # Behandle SET-anmodninger ved blot at logge den tildelte værdi. # Bemærk, at sådanne "tildelinger" ikke er vedvarende, # og syntaksen eller den anmodede værdi er heller ikke valideret. # if [ "$1" = "-s" ]; derefter. echo $* >> /tmp/passtest.log. udgang 0. fi # # GETNEXT-anmodninger - bestemme næste gyldige forekomst. # if [ "$1" = "-n" ]; derefter. tilfældet "$REQ" i. $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;; *) exit 0;; esac. andet. # # GET-anmodninger - tjek for gyldig instans. # tilfældet "$REQ" i. $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;; *) exit 0;; esac. fi # # "Process" GET*-anmodninger - returner hårdkodet værdi. # ekko "$RET" tilfældet "$RET" i. $PLACE.1.1.1.0) ekko "streng"; apcaccess -u -p MODEL; udgang 0;; $PLACE.2.2.1.0) ekko "Måler32"; apcaccess -u -p BCHARGE; udgang 0;; $PLACE.2.2.2.0) ekko "Måler32"; apcaccess -u -p ITEMP; udgang 0;; $PLACE.2.2.3.0) ekko "Timeticks"; echo $(($(LC_ALL=C printf "%.*f" 0 $(apcaccess -u -p TIMELEFT)) * 6000)); udgang 0;; $PLACE.2.2.4.0) ekko "streng"; apcaccess -u -p BATTDATE; udgang 0;; $PLACE.3.2.1.0) ekko "Måler32"; apcaccess -u -p LINEV; udgang 0;; $PLACE.3.2.4.0) ekko "Måler32"; apcaccess -u -p LINEFREQ; udgang 0;; $PLACE.3.2.5.0) ekko "streng"; apcaccess -u -p LASTXFER; udgang 0;; $PLACE.4.2.1.0) ekko "Måler32"; apcaccess -u -p OUTPUTV; udgang 0;; $PLACE.4.2.2.0) ekko "Måler32"; apcaccess -u -p LINEFREQ; udgang 0;; $PLACE.4.2.3.0) ekko "Måler32"; apcaccess -u -p LOADPCT; udgang 0;; $PLACE.4.2.4.0) ekko "Måler32"; apcaccess -u -p LOADPCT; udgang 0;; $PLACE.7.2.3.0) ekko "streng"; apcaccess -u -p SELVMEST; udgang 0;; $PLACE.7.2.4.0) ekko "streng"; apcaccess -u -p SELVMEST; udgang 0;; $PLACE.8.1.0) echo "Gauge32"; ekko 1; udgang 0;; *) ekko "streng"; ekko "ak... $RET $REQ"; udgang 0;; # Bør ikke ske. esac.

Hvis du undrer dig over OID'er, kan du finde dem HER. Bemærk, at nogle UPS-modeller ikke returnerer alle parametre eller i det forkerte format, så koden kan indeholde unøjagtigheder og stubber.

Nu er du klar.

Sådan overvåger du USB UPS-status via SNMP

For at overvåge USB UPS-status via SNMP skal du køre følgende kommando: snmpwalk -v 1 -c offentlig 127.0.0.1 .1.3.6.1.4.1.318.1.1.1. Outputtet vil være sådan:

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 = Tidspunkter: (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 eksplicit 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: "NEJ"
SNMPv2-SMI:: enterprises.318.1.1.1.7.2.4.0 = STRING: "NEJ"
SNMPv2-SMI:: enterprises.318.1.1.1.8.1.0 = Måler32: 1

Hvis du konfigurerer overvågningsscriptet yderligere, kan du få disse smarte grafer:

Windows 10 Build 18865 (20H1, Spring Ahead)

Windows 10 Build 18865 (20H1, Spring Ahead)

ANBEFALEDE: Klik her for at løse Windows-problemer og optimere systemets ydeevneEndnu en build er...

Læs mere

GIMP 2.10 udgivet

GIMP 2.10 udgivet

GIMP, den fremragende billedredigeringssoftware, der er tilgængelig til Linux, Windows og Mac, ha...

Læs mere

Windows 10 Build 18309 (hurtig ring)

Windows 10 Build 18309 (hurtig ring)

ANBEFALEDE: Klik her for at løse Windows-problemer og optimere systemets ydeevneMicrosoft frigive...

Læs mere