Windows Tips & News

Jak monitorować stan USB UPS przez SNMP?

ZALECANA: Kliknij tutaj, aby rozwiązać problemy z systemem Windows i zoptymalizować wydajność systemu

Jak monitorować stan USB UPS przez SNMP?

Istnieje kilka komputerów z zasilaczem UPS podłączonym przez USB. Wszystkie komputery korzystają z programu apcupsd. Załóżmy, że chcesz zebrać w jednym miejscu informacje o stanie zasilania każdej jednostki. Ponieważ snmpd już tam działa, logiczne byłoby rozszerzenie jego funkcjonalności.

Reklama

Poniższe rozwiązanie, dzięki uprzejmości Blog administratora, zbierze dane ze wszystkich jednostek snmpd jednocześnie.

Aby monitorować stan USB UPS przez SNMP, musimy najpierw zmodyfikować konfigurację demona snmp.

Zawartośćukryć
Przygotowania
Jak monitorować stan USB UPS przez SNMP?

Przygotowania

Dodaje następujące elementy do pliku konfiguracyjnego snmpd.conf.

# UPS APC
przejść .1.3.6.1.4.1.318.1.1.1 /bin/sh /etc/snmp/apcupsd.sh

Zawartość skryptu /etc/snmp/apcupsd.sh jest następująca.

#!/bin/sh -f # Sprawdź, czy apcupsd jest online. apcaccess > /dev/null 2>&1 || wyjście 0 PLACE=".1.3.6.1.4.1.318.1.1.1" REQ="$2" # Żądany OID # # Przetwarzaj żądania SET, po prostu rejestrując przypisaną wartość. # Zauważ, że takie "przypisania" nie są trwałe, # ani składnia ani żądana wartość nie są sprawdzane. # if [ "$1" = "-s" ]; następnie. echo $* >> /tmp/passtest.log. wyjście 0. fi # # Żądania GETNEXT - określ następną ważną instancję. # if [ "$1" = "-n" ]; następnie. przypadek „$REQ” w. $MIEJSCE| \ $MIEJSCE.0| \ $PLACE.0.*| \ $PLACE.1| \ $MIEJSCE 1.1.0*) RET=$MIEJSCE.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;; $PLACE2.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;; *) wyjście 0;; esac. w przeciwnym razie. # # Żądania GET - sprawdź poprawną instancję. # przypadek „$REQ” w. $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;; *) wyjście 0;; esac. fi # # Żądania GET* „Process” — zwracają zakodowaną na sztywno wartość. # echo "$RET" przypadek „$RET” w. $PLACE.1.1.1.0) echo "ciąg"; apcaccess -u -p MODEL; wyjście 0;; $PLACE.2.2.1.0) echo "Wskaźnik32"; apcaccess -u -p BCHARGE; wyjście 0;; $PLACE.2.2.2.0) echo "Wskaźnik32"; apcaccess -u -p ITEMP; wyjście 0;; $PLACE.2.2.3.0) echo "Liczniki czasu"; echo $(($(LC_ALL=C printf "%.*f" 0 $(apcaccess -u -p TIMELEFT)) * 6000)); wyjście 0;; $PLACE.2.2.4.0) echo "ciąg"; apcaccess -u -p BATTDATE; wyjście 0;; $PLACE.3.2.1.0) echo "Wskaźnik32"; apcaccess -u -p LINEV; wyjście 0;; $PLACE.3.2.4.0) echo "Wskaźnik32"; apcaccess -u -p LINEFREQ; wyjście 0;; $PLACE.3.2.5.0) echo "ciąg"; apcaccess -u -p LASTXFER; wyjście 0;; $PLACE.4.2.1.0) echo "Wskaźnik32"; apcaccess -u -p OUTPUTV; wyjście 0;; $PLACE.4.2.2.0) echo "Wskaźnik32"; apcaccess -u -p LINEFREQ; wyjście 0;; $PLACE.4.2.3.0) echo "Wskaźnik32"; apcaccess -u -p LOADPCT; wyjście 0;; $PLACE.4.2.4.0) echo "Wskaźnik32"; apcaccess -u -p LOADPCT; wyjście 0;; $PLACE.7.2.3.0) echo "ciąg"; apcaccess -u -p SELFEST; wyjście 0;; $PLACE.7.2.4.0) echo "ciąg"; apcaccess -u -p SELFEST; wyjście 0;; $PLACE.8.1.0) echo "Wskaźnik32"; echo 1; wyjście 0;; *) echo „ciąg”; echo "potwierdź... $RET $REQ"; wyjście 0;; # Nie powinno się zdarzyć. esac.

Jeśli zastanawiasz się nad OID-ami, możesz je znaleźć TUTAJ. Należy pamiętać, że niektóre modele zasilaczy UPS nie zwracają wszystkich parametrów lub w złym formacie, więc kod może zawierać nieścisłości i fragmenty.

Teraz jesteś gotowy.

Jak monitorować stan USB UPS przez SNMP?

Aby monitorować stan USB UPS za pośrednictwem SNMP, uruchom następujące polecenie: snmpwalk -v 1 -c publiczne 127.0.0.1 .1.3.6.1.4.1.318.1.1.1. Wynik będzie taki:

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 = Timeticki: (432000) 1:12:00.00
SNMPv2-SMI:: przedsiębiorstwa.318.1.1.1.2.2.4.0 = STRING: "2020-05-14"
SNMPv2-SMI:: enterprise.318.1.1.1.3.2.1.0 = Gauge32: 227
SNMPv2-SMI:: enterprise.318.1.1.1.3.2.4.0 = Gauge32: 50
SNMPv2-SMI:: enterprise.318.1.1.1.3.2.5.0 = STRING: "Automatyczny lub jawny autotest"
SNMPv2-SMI:: przedsiębiorstwa.318.1.1.1.4.2.1.0 = Wskaźnik32: 227
SNMPv2-SMI:: enterprise.318.1.1.1.4.2.2.0 = Gauge32: 50
SNMPv2-SMI:: przedsiębiorstwa.318.1.1.1.4.2.3.0 = Wskaźnik32: 13
SNMPv2-SMI:: przedsiębiorstwa.318.1.1.1.4.2.4.0 = Wskaźnik32: 13
SNMPv2-SMI:: enterprise.318.1.1.1.7.2.3.0 = STRING: "NIE"
SNMPv2-SMI:: enterprise.318.1.1.1.7.2.4.0 = STRING: "NIE"
SNMPv2-SMI:: enterprise.318.1.1.1.8.1.0 = Wskaźnik32: 1

Jeśli skonfigurujesz dalej skrypt monitorowania, możesz uzyskać te fajne wykresy:

PrześlijNapięcieTemperatura bateriiCzas pracy
ZALECANA: Kliknij tutaj, aby rozwiązać problemy z systemem Windows i zoptymalizować wydajność systemu
Aktualizacja podsystemu Windows dla systemu Android majowa dodaje sprawdzanie antywirusowych plików APK

Aktualizacja podsystemu Windows dla systemu Android majowa dodaje sprawdzanie antywirusowych plików APK

Firma Microsoft udostępniła podsystem systemu Windows dla systemu Android w wersji 2304.40000.5.0...

Czytaj więcej

Wrześniowa aktualizacja Xbox OS dodaje tłumienie szumów czatu grupowego i nie tylko

Wrześniowa aktualizacja Xbox OS dodaje tłumienie szumów czatu grupowego i nie tylko

Firma Microsoft wydała nową aktualizację oprogramowania układowego dla konsol do gier Xbox, która...

Czytaj więcej

Windows 11 Build 23565 (Dev) zmienia ikonę Copilot

Windows 11 Build 23565 (Dev) zmienia ikonę Copilot

Nowo wydany system Windows 11 Build 23565 dla znawców kanału deweloperskiego zawiera kilka zmian....

Czytaj więcej