Windows Tips & News

Hur man övervakar USB UPS-status via SNMP

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

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.

Annons

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.

InnehållDölj
Förberedelser
Hur man övervakar USB UPS-status via SNMP

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:

UppladdningSpänningBatteritempKörning
REKOMMENDERAD: Klicka här för att åtgärda Windows-problem och optimera systemets prestanda
Aktivera eller inaktivera webbplatsåtkomst till språklistan i Windows 10

Aktivera eller inaktivera webbplatsåtkomst till språklistan i Windows 10

Lämna ett svarHur du aktiverar eller inaktiverar webbplatsåtkomst till språklistan i Windows 10Vi...

Läs mer

Kör olika Firefox-versioner samtidigt

Kör olika Firefox-versioner samtidigt

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

Läs mer

Kör olika Firefox-versioner samtidigt

Kör olika Firefox-versioner samtidigt

Den populära webbläsaren Firefox finns i många olika utgåvor. Varje utgåva har sin egen releaseka...

Läs mer