Windows Tips & News

So überwachen Sie den Status der USB-USV über SNMP

EMPFOHLEN: Klicken Sie hier, um Windows-Probleme zu beheben und die Systemleistung zu optimieren

So überwachen Sie den Status der USB-USV über SNMP

Es gibt mehrere Computer mit USB-verbundener USV. Alle Computer verwenden das Programm apcupsd. Angenommen, Sie möchten Informationen über den Zustand der Stromversorgung für jedes Gerät an einem Ort zusammenfassen. Da snmpd dort bereits läuft, wäre es logisch, seine Funktionalität zu erweitern.

Werbung

Die unten stehende Lösung, mit freundlicher Genehmigung der Admin-Blog, sammelt die Daten von allen snmpd-Einheiten gleichzeitig.

Um den Status der USB-USV über SNMP zu überwachen, müssen wir zuerst die SNMP-Daemon-Konfiguration ändern.

Inhaltverstecken
Vorbereitungen
So überwachen Sie den Status der USB-USV über SNMP

Vorbereitungen

Fügt der config snmpd.conf Folgendes hinzu.

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

Der Inhalt des Skripts /etc/snmp/apcupsd.sh ist wie folgt.

#!/bin/sh -f # Überprüfen Sie, ob appcupsd online ist. apcaccess > /dev/null 2>&1 || Ausgang 0 PLACE=".1.3.6.1.4.1.318.1.1.1" REQ="$2" # Angeforderte OID # # SET-Anfragen verarbeiten, indem einfach der zugewiesene Wert protokolliert wird. # Beachten Sie, dass solche "Zuweisungen" weder beständig sind, # noch die Syntax oder der angeforderte Wert validiert werden. # if [ "$1" = "-s" ]; dann. echo $* >> /tmp/passtest.log. Ausgang 0. fi # # GETNEXT-Anfragen - bestimmt die nächste gültige Instanz. # if [ "$1" = "-n" ]; dann. Fall "$REQ" in. $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;; *) Ausgang 0;; esac. anders. # # GET-Anfragen - auf gültige Instanz prüfen. # Fall "$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;; *) Ausgang 0;; esac. fi # # GET*-Anforderungen "verarbeiten" - hartcodierten Wert zurückgeben. # echo "$RET" Fall "$RET" in. $PLACE.1.1.1.0) echo "Zeichenfolge"; apcaccess -u -p MODELL; Ausgang 0;; $PLACE.2.2.1.0) echo "Gauge32"; apcaccess -u -p BCHARGE; Ausgang 0;; $PLACE.2.2.2.0) echo "Gauge32"; apcaccess -u -p ITEMP; Ausgang 0;; $PLACE.2.2.3.0) echo "Timeticks"; echo $(($(LC_ALL=C printf "%.*f" 0 $(apcaccess -u -p TIMELEFT)) * 6000)); Ausgang 0;; $PLACE.2.2.4.0) echo "Zeichenfolge"; apcaccess -u -p BATTDATE; Ausgang 0;; $PLACE.3.2.1.0) echo "Gauge32"; apcaccess -u -p LINEV; Ausgang 0;; $PLACE.3.2.4.0) echo "Gauge32"; apcaccess -u -p LINEFREQ; Ausgang 0;; $PLACE.3.2.5.0) echo "Zeichenfolge"; apcaccess -u -p LASTXFER; Ausgang 0;; $PLACE.4.2.1.0) echo "Gauge32"; apcaccess -u -p AUSGABETV; Ausgang 0;; $PLACE.4.2.2.0) echo "Gauge32"; apcaccess -u -p LINEFREQ; Ausgang 0;; $PLACE.4.2.3.0) echo "Gauge32"; apcaccess -u -p LOADPCT; Ausgang 0;; $PLACE.4.2.4.0) echo "Gauge32"; apcaccess -u -p LOADPCT; Ausgang 0;; $PLACE.7.2.3.0) echo "Zeichenfolge"; apcaccess -u -p SELBSTTEST; Ausgang 0;; $PLACE.7.2.4.0) echo "Zeichenfolge"; apcaccess -u -p SELBSTTEST; Ausgang 0;; $PLACE.8.1.0) echo "Gauge32"; Echo 1; Ausgang 0;; *) echo "Zeichenfolge"; echo "ack... $RET $REQ"; Ausgang 0;; # Sollte nicht passieren. esac.

Wenn Sie sich über OIDs wundern, können Sie sie finden HIER. Beachten Sie, dass einige USV-Modelle nicht alle Parameter oder im falschen Format zurückgeben, sodass der Code Ungenauigkeiten und Stubs enthalten kann.

Jetzt sind Sie bereit.

So überwachen Sie den Status der USB-USV über SNMP

Führen Sie den folgenden Befehl aus, um den Status der USB-USV über SNMP zu überwachen: snmpwalk -v 1 -c öffentlich 127.0.0.1 .1.3.6.1.4.1.318.1.1.1. Die Ausgabe wird so aussehen:

SNMPv2-SMI:: enterprise.318.1.1.1.1.1.1.0 = STRING: "Smart-UPS 750"
SNMPv2-SMI:: enterprise.318.1.1.1.2.2.1.0 = Gauge32: 100
SNMPv2-SMI:: enterprise.318.1.1.1.2.2.2.0 = Gauge32: 36
SNMPv2-SMI:: enterprise.318.1.1.1.2.2.3.0 = Timeticks: (432000) 1:12:00.00
SNMPv2-SMI:: enterprise.318.1.1.1.2.2.4.0 = STRING: "2020-05-14"
SNMPv2-SMI:: Unternehmen.318.1.1.1.3.2.1.0 = Gauge32: 227
SNMPv2-SMI:: Unternehmen.318.1.1.1.3.2.4.0 = Gauge32: 50
SNMPv2-SMI:: enterprise.318.1.1.1.3.2.5.0 = STRING: "Automatischer oder expliziter Selbsttest"
SNMPv2-SMI:: Unternehmen.318.1.1.1.4.2.1.0 = Gauge32: 227
SNMPv2-SMI:: Unternehmen.318.1.1.1.4.2.2.0 = Gauge32: 50
SNMPv2-SMI:: Unternehmen.318.1.1.1.4.2.3.0 = Gauge32: 13
SNMPv2-SMI:: Unternehmen.318.1.1.1.4.2.4.0 = Gauge32: 13
SNMPv2-SMI:: enterprise.318.1.1.1.7.2.3.0 = STRING: "NO"
SNMPv2-SMI:: enterprise.318.1.1.1.7.2.4.0 = STRING: "NO"
SNMPv2-SMI:: enterprise.318.1.1.1.8.1.0 = Gauge32: 1

Wenn Sie das Überwachungsskript weiter konfigurieren, erhalten Sie diese raffinierten Diagramme:

HochladenStromspannungBatterietempLaufzeit
EMPFOHLEN: Klicken Sie hier, um Windows-Probleme zu beheben und die Systemleistung zu optimieren
Stellen Sie die genaue Anzeigeauflösung in der virtuellen VirtualBox-Maschine ein

Stellen Sie die genaue Anzeigeauflösung in der virtuellen VirtualBox-Maschine ein

EMPFOHLEN: Klicken Sie hier, um Windows-Probleme zu beheben und die Systemleistung zu optimierenV...

Weiterlesen

Windows 10 Redstone 3 bringt eine neue Designsprache, "Project NEON" ist der Codename

Windows 10 Redstone 3 bringt eine neue Designsprache, "Project NEON" ist der Codename

Während Microsoft damit beschäftigt ist, am nächsten großen Update für Windows 10 namens Creators...

Weiterlesen

Fix anzeigen, dass die am häufigsten verwendeten Apps in Windows 10 ausgegraut sind

Fix anzeigen, dass die am häufigsten verwendeten Apps in Windows 10 ausgegraut sind

EMPFOHLEN: Klicken Sie hier, um Windows-Probleme zu beheben und die Systemleistung zu optimierenW...

Weiterlesen