Windows Tips & News

Hoe de USB UPS-status te controleren via SNMP

click fraud protection

Hoe de USB UPS-status te controleren via SNMP

Er zijn verschillende computers met een via USB aangesloten UPS. Alle computers gebruiken het programma apcupsd. Stel dat u informatie over de toestand van de voeding voor elke unit op één plaats wilt samenvoegen. Aangezien snmpd daar al draait, zou het logisch zijn om de functionaliteit uit te breiden.

De onderstaande oplossing, met dank aan de Beheerdersblog, verzamelt de gegevens van alle snmpd-eenheden tegelijk.

Om de USB UPS-status via SNMP te controleren, moeten we eerst de snmp-daemonconfiguratie wijzigen.

Voorbereidende werkzaamheden

Voegt het volgende toe aan de config snmpd.conf.

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

De inhoud van het /etc/snmp/apcupsd.sh script is als volgt.

#!/bin/sh -f # Controleer of apcupsd online is. apcaccess > /dev/null 2>&1 || exit 0 PLACE=".1.3.6.1.4.1.318.1.1.1" REQ="$2" # Aangevraagde OID # # Verwerk SET-verzoeken door simpelweg de toegewezen waarde te loggen. # Merk op dat dergelijke "toewijzingen" niet blijvend zijn, # noch is de syntaxis of de gevraagde waarde gevalideerd. # if [ "$1" = "-s"]; dan. echo $* >> /tmp/passtest.log. uitgang 0. fi # # GETNEXT-verzoeken - bepaal de volgende geldige instantie. # if [ "$1" = "-n" ]; dan. geval "$REQ" in. $PLAATS| \ $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*| \ $PLAATS.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;; *) uitgang 0;; esac. anders. # # GET-verzoeken - controleer op geldige instantie. # geval "$REQ" in. $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;; *) uitgang 0;; esac. fi # # "Process" GET*-verzoeken - hardgecodeerde waarde retourneren. # echo "$RET" geval "$RET" in. $PLACE.1.1.1.0) echo "string"; apcaccess -u -p MODEL; uitgang 0;; $PLACE.2.2.1.0) echo "Gauge32"; apcaccess -u -p BCHARGE; uitgang 0;; $PLACE.2.2.2.0) echo "Gauge32"; apcaccess -u -p ITEMP; uitgang 0;; $PLACE.2.2.3.0) echo "Timeticks"; echo $(($(LC_ALL=C printf "%.*f" 0 $(apcaccess -u -p TIMELEFT)) * 6000)); uitgang 0;; $PLACE.2.2.4.0) echo "string"; apcaccess -u -p BATTDATE; uitgang 0;; $PLACE.3.2.1.0) echo "Gauge32"; apcaccess -u -p LINEV; uitgang 0;; $PLACE.3.2.4.0) echo "Gauge32"; apcaccess -u -p LIJNFREQ; uitgang 0;; $PLACE.3.2.5.0) echo "string"; apcaccess -u -p LASTXFER; uitgang 0;; $PLACE.4.2.1.0) echo "Gauge32"; apcaccess -u -p OUTPUTV; uitgang 0;; $PLACE.4.2.2.0) echo "Gauge32"; apcaccess -u -p LIJNFREQ; uitgang 0;; $PLACE.4.2.3.0) echo "Gauge32"; apcaccess -u -p LOADPCT; uitgang 0;; $PLACE.4.2.4.0) echo "Gauge32"; apcaccess -u -p LOADPCT; uitgang 0;; $PLACE.7.2.3.0) echo "string"; apcaccess -u -p ZELFTEST; uitgang 0;; $PLACE.7.2.4.0) echo "string"; apcaccess -u -p ZELFTEST; uitgang 0;; $PLACE.8.1.0) echo "Gauge32"; echo 1; uitgang 0;; *) echo "tekenreeks"; echo "Ak... $RET $VERZOEK"; uitgang 0;; # Mag niet gebeuren. esac.

Als je je afvraagt ​​over OID's, kun je ze vinden HIER. Houd er rekening mee dat sommige UPS-modellen niet alle parameters of in het verkeerde formaat retourneren, dus de code kan onnauwkeurigheden en steekjes bevatten.

Nu ben je klaar.

Hoe de USB UPS-status te controleren via SNMP

Voer de volgende opdracht uit om de USB UPS-status via SNMP te controleren: snmpwalk -v 1 -c openbaar 127.0.0.1 .1.3.6.1.4.1.318.1.1.1. De uitvoer zal als volgt zijn:

SNMPv2-SMI:: enterprise.318.1.1.1.1.1.1.0 = STRING: "Smart-UPS 750"
SNMPv2-SMI:: ondernemingen.318.1.1.1.2.2.1.0 = Gauge32: 100
SNMPv2-SMI:: ondernemingen.318.1.1.1.2.2.2.0 = Spoor32: 36
SNMPv2-SMI:: ondernemingen.318.1.1.1.2.2.3.0 = Tijdslimieten: (432000) 1:12:00.00
SNMPv2-SMI:: ondernemingen.318.1.1.1.2.2.4.0 = STRING: "2020-05-14"
SNMPv2-SMI:: ondernemingen.318.1.1.1.3.2.1.0 = Spoor32: 227
SNMPv2-SMI:: ondernemingen.318.1.1.1.3.2.4.0 = Spoor32: 50
SNMPv2-SMI:: enterprise.318.1.1.1.3.2.5.0 = STRING: "Automatische of expliciete zelftest"
SNMPv2-SMI:: ondernemingen.318.1.1.1.4.2.1.0 = Spoor32: 227
SNMPv2-SMI:: ondernemingen.318.1.1.1.4.2.2.0 = Spoor32: 50
SNMPv2-SMI:: ondernemingen.318.1.1.1.4.2.3.0 = Spoor32: 13
SNMPv2-SMI:: ondernemingen.318.1.1.1.4.2.4.0 = Spoor32: 13
SNMPv2-SMI:: ondernemingen.318.1.1.1.7.2.3.0 = STRING: "NEE"
SNMPv2-SMI:: ondernemingen.318.1.1.1.7.2.4.0 = STRING: "NEE"
SNMPv2-SMI:: ondernemingen.318.1.1.1.8.1.0 = Gauge32: 1

Als u het monitoringscript verder configureert, kunt u deze handige grafieken krijgen:

Chrome voegt de leesmodus toe aan de zijbalk. Hier leest u hoe u deze kunt inschakelen

Chrome voegt de leesmodus toe aan de zijbalk. Hier leest u hoe u deze kunt inschakelen

AANBEVOLEN: Klik hier om Windows-problemen op te lossen en de systeemprestaties te optimaliserenE...

Lees verder

Windows 11 versie 23H2 is nu beschikbaar in Release Preview met ISO's

Windows 11 versie 23H2 is nu beschikbaar in Release Preview met ISO's

De nieuwste Windows 11 2023-update (versie 23H2, bouwnummer 22631) is nu als optionele update bes...

Lees verder

Windows 11 Build 23531 (Dev) zorgt ervoor dat Zoeken wordt geopend wanneer de muis beweegt

Windows 11 Build 23531 (Dev) zorgt ervoor dat Zoeken wordt geopend wanneer de muis beweegt

Microsoft brengt Windows 11 Insider Preview Build 23531 uit op het ontwikkelaarskanaal. De update...

Lees verder