Windows Tips & News

Hur man övervakar USB UPS-status via SNMP

click fraud protection

Hur man övervakar USB UPS-status via SNMP

Det finns flera datorer med USB-ansluten UPS. Alla datorer använder programmet apcupsd. Säg att du vill samla information om tillståndet för strömförsörjningen för varje enhet på ett ställe. Eftersom snmpd redan körs där skulle det vara logiskt att utöka dess funktionalitet.

Nedanstående lösning, med tillstånd av Admins blogg, samlar in data från alla snmpd-enheter på en gång.

För att övervaka USB UPS-status via SNMP måste vi först ändra snmp-demonkonfigurationen.

Förberedelser

Lägger till följande till konfigurationen snmpd.conf.

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

Innehållet i skriptet /etc/snmp/apcupsd.sh är som följer.

#!/bin/sh -f # Kontrollera att apcupsd är online. apcaccess > /dev/null 2>&1 || exit 0 PLACE=".1.3.6.1.4.1.318.1.1.1" REQ="$2" # Begärt OID-nummer # Bearbeta SET-förfrågningar genom att helt enkelt logga det tilldelade värdet. # Observera att sådana "tilldelningar" inte är beständiga, # inte heller är syntaxen eller det begärda värdet validerat. # if [ "$1" = "-s" ]; sedan. echo $* >> /tmp/passtest.log. avsluta 0. fi # # GETNEXT-förfrågningar - bestäm nästa giltiga instans. # if [ "$1" = "-n" ]; sedan. fallet "$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. annan. # # GET-förfrågningar - kontrollera efter giltig instans. # fallet "$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 # # "Bearbeta" GET*-förfrågningar - returnera hårdkodat värde. # eko "$RET" fallet "$RET" i. $PLACE.1.1.1.0) eko "sträng"; apcaccess -u -p MODELL; utgång 0;; $PLACE.2.2.1.0) echo "Gauge32"; apcaccess -u -p BCHARGE; utgång 0;; $PLACE.2.2.2.0) echo "Gauge32"; apcaccess -u -p ITEMP; utgång 0;; $PLACE.2.2.3.0) echo "Timeticks"; echo $(($(LC_ALL=C printf "%.*f" 0 $(apcaccess -u -p TIMELEFT)) * 6000)); utgång 0;; $PLACE.2.2.4.0) eko "sträng"; apcaccess -u -p BATTDATE; utgång 0;; $PLACE.3.2.1.0) echo "Gauge32"; apcaccess -u -p LINEV; utgång 0;; $PLACE.3.2.4.0) echo "Gauge32"; apcaccess -u -p LINEFREQ; utgång 0;; $PLACE.3.2.5.0) eko "sträng"; apcaccess -u -p LASTXFER; utgång 0;; $PLACE.4.2.1.0) echo "Gauge32"; apcaccess -u -p OUTPUTV; utgång 0;; $PLACE.4.2.2.0) echo "Gauge32"; apcaccess -u -p LINEFREQ; utgång 0;; $PLACE.4.2.3.0) echo "Gauge32"; apcaccess -u -p LOADPCT; utgång 0;; $PLACE.4.2.4.0) echo "Gauge32"; apcaccess -u -p LOADPCT; utgång 0;; $PLACE.7.2.3.0) eko "sträng"; apcaccess -u -p SJÄLVMEST; utgång 0;; $PLACE.7.2.4.0) eko "sträng"; apcaccess -u -p SJÄLVMEST; utgång 0;; $PLACE.8.1.0) echo "Gauge32"; eko 1; utgång 0;; *) eko "sträng"; eko "ack... $RET $REQ"; utgång 0;; # Bör inte hända. esac.

Om du undrar över OID kan du hitta dem HÄR. Observera att vissa UPS-modeller inte returnerar alla parametrar eller i fel format, så koden kan innehålla felaktigheter och stubbar.

Nu är du redo.

Hur man övervakar USB UPS-status via SNMP

För att övervaka USB UPS-status via SNMP, kör följande kommando: snmpwalk -v 1 -c public 127.0.0.1 .1.3.6.1.4.1.318.1.1.1. Utgången blir så här:

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 = Gauge32: 100
SNMPv2-SMI:: enterprises.318.1.1.1.2.2.2.0 = Gauge32: 36
SNMPv2-SMI:: enterprises.318.1.1.1.2.2.3.0 = Tidsgränser: (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 = Gauge32: 227
SNMPv2-SMI:: enterprises.318.1.1.1.3.2.4.0 = Gauge32: 50
SNMPv2-SMI:: enterprises.318.1.1.1.3.2.5.0 = STRING: "Automatiskt eller explicit självtest"
SNMPv2-SMI:: enterprises.318.1.1.1.4.2.1.0 = Gauge32: 227
SNMPv2-SMI:: enterprises.318.1.1.1.4.2.2.0 = Gauge32: 50
SNMPv2-SMI:: enterprises.318.1.1.1.4.2.3.0 = Gauge32: 13
SNMPv2-SMI:: enterprises.318.1.1.1.4.2.4.0 = Gauge32: 13
SNMPv2-SMI:: enterprises.318.1.1.1.7.2.3.0 = STRÄNG: "NEJ"
SNMPv2-SMI:: enterprises.318.1.1.1.7.2.4.0 = STRÄNG: "NEJ"
SNMPv2-SMI:: enterprises.318.1.1.1.8.1.0 = Gauge32: 1

Om du konfigurerar övervakningsskriptet ytterligare kan du få dessa snygga grafer:

Lägg till System Unnattended Sleep Timeout till Power Options i Windows 10

Lägg till System Unnattended Sleep Timeout till Power Options i Windows 10

Så här sätter du timeout för oövervakad viloläge till energialternativ i Windows 10Windows 10 kom...

Läs mer

Vivaldi följer nu System Dark Theme (Dev Snapshot)

Vivaldi följer nu System Dark Theme (Dev Snapshot)

REKOMMENDERAD: Klicka här för att åtgärda Windows-problem och optimera systemets prestandaÄnnu en...

Läs mer

Återställ alla lokala grupprincipinställningar på en gång i Windows 10

Återställ alla lokala grupprincipinställningar på en gång i Windows 10

REKOMMENDERAD: Klicka här för att åtgärda Windows-problem och optimera systemets prestandaLokal g...

Läs mer