Windows Tips & News

Cum se monitorizează starea UPS-ului USB prin SNMP

click fraud protection

Cum se monitorizează starea UPS-ului USB prin SNMP

Există mai multe computere cu UPS conectat prin USB. Toate computerele folosesc programul apcupsd. Să presupunem că doriți să agregați informații despre starea sursei de alimentare pentru fiecare unitate într-un singur loc. Deoarece snmpd rulează deja acolo, ar fi logic să-și extindă funcționalitatea.

Soluția de mai jos, prin amabilitatea Blogul administratorului, va colecta datele de la toate unitățile snmpd simultan.

Pentru a monitoriza starea UPS-ului USB prin SNMP, trebuie să modificăm mai întâi configurația demonului snmp.

Pregătiri

Adaugă următoarele la configurația snmpd.conf.

# UPS APC
trece .1.3.6.1.4.1.318.1.1.1 /bin/sh /etc/snmp/acupsd.sh

Conținutul scriptului /etc/snmp/apcupsd.sh este următorul.

#!/bin/sh -f # Verificați că apcupsd este online. apcaccess > /dev/null 2>&1 || exit 0 PLACE=".1.3.6.1.4.1.318.1.1.1" REQ="$2" # OID solicitat # # Procesați cererile SET prin simpla înregistrare a valorii atribuite. # Rețineți că astfel de „atribuții” nu sunt persistente, # și nici sintaxa sau valoarea cerută nu sunt validate. # dacă [ "$1" = "-s" ]; atunci. echo $* >> /tmp/passtest.log. iesirea 0. fi # # solicitări GETNEXT - determinați următoarea instanță validă. # dacă [ "$1" = "-n" ]; atunci. cazul „$REQ” în. $PLACE| \ $PLACE.0| \ $PLACE.0.*| \ $PLACE.1| \ $LOC.1.1.0*) RET=$LOC.1.1.1.0;; $PLACE.1*| \ $PLACE.2.0| \ $PLACE.2.0.*| \ $PLACE.2.1| \ $LOC.2.2.0*) RET=$LOC.2.2.1.0;; $LOC.2.2.1*) RET=$LOC.2.2.2.0;; $LOC.2.2.2*) RET=$LOC.2.2.3.0;; $LOC.2.2.3*) RET=$LOC.2.2.4.0;; $PLACE.2*| \ $PLACE.3.0*| \ $PLACE.3.1*| \ $LOC.3.2.0*) RET=$LOC.3.2.1.0;; $PLACE.3.2.1*| \ $PLACE.3.2.2*| \ $LOC.3.2.3*) RET=$LOC.3.2.4.0;; $LOC.3.2.4*) RET=$LOC.3.2.5.0;; $PLACE.3.2*| \ $PLACE.4.0*| \ $PLACE.4.1*| \ $LOC.4.2.0*) RET=$LOC.4.2.1.0;; $LOC.4.2.1*) RET=$LOC.4.2.2.0;; $LOC.4.2.2*) RET=$LOC.4.2.3.0;; $LOC.4.2.3*) RET=$LOC.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*| \ $LOC.7.2.2*) RET=$LOC.7.2.3.0;; $LOC.7.2.3*) RET=$LOC.7.2.4.0;; $PLACE.7*| \ $LOC.8.0*) RET=$LOC.8.1.0;; *) iesirea 0;; esac. altfel. # # solicitări GET - verificați o instanță validă. # cazul „$REQ” în. $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;; *) iesirea 0;; esac. fi # # „Procesează” solicitări GET* - returnează valoarea codificată. # ecou „$RET” cazul „$RET” în. $PLACE.1.1.1.0) echo "șir"; apcaccess -u -p MODEL; ieșire 0;; $PLACE.2.2.1.0) echo "Gauge32"; apcaccess -u -p BCHARGE; ieșire 0;; $PLACE.2.2.2.0) echo "Gauge32"; apcaccess -u -p ITEMP; ieșire 0;; $PLACE.2.2.3.0) echo "Timeticks"; echo $(($(LC_ALL=C printf "%.*f" 0 $(apcaccess -u -p TIMELEFT)) * 6000)); ieșire 0;; $PLACE.2.2.4.0) echo "șir"; apcaccess -u -p BATTDATE; ieșire 0;; $PLACE.3.2.1.0) echo "Gauge32"; apcaccess -u -p LINEV; ieșire 0;; $PLACE.3.2.4.0) echo "Gauge32"; apcaccess -u -p LINEFREQ; ieșire 0;; $PLACE.3.2.5.0) echo "șir"; apcaccess -u -p LASTXFER; ieșire 0;; $PLACE.4.2.1.0) echo "Gauge32"; apcaccess -u -p OUTPUTV; ieșire 0;; $PLACE.4.2.2.0) echo "Gauge32"; apcaccess -u -p LINEFREQ; ieșire 0;; $PLACE.4.2.3.0) echo "Gauge32"; apcaccess -u -p LOADPCT; ieșire 0;; $PLACE.4.2.4.0) echo "Gauge32"; apcaccess -u -p LOADPCT; ieșire 0;; $PLACE.7.2.3.0) echo "șir"; apcaccess -u -p SELFTEST; ieșire 0;; $PLACE.7.2.4.0) echo "șir"; apcaccess -u -p SELFTEST; ieșire 0;; $PLACE.8.1.0) echo "Gauge32"; ecou 1; ieșire 0;; *) echo "șir"; ecou „ack... $RET $REQ"; ieșire 0;; # Nu ar trebui să se întâmple. esac.

Dacă vă întrebați despre OID, le puteți găsi AICI. Rețineți că unele modele de UPS nu returnează toți parametrii sau în format greșit, astfel încât codul poate conține inexactități și stub-uri.

Acum ești gata.

Cum se monitorizează starea UPS-ului USB prin SNMP

Pentru a monitoriza starea UPS USB prin SNMP, executați următoarea comandă: snmpwalk -v 1 -c public 127.0.0.1 .1.3.6.1.4.1.318.1.1.1. Ieșirea va fi așa:

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 = Timeticks: (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: „Autotest automat sau explicit”
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 = STRING: „NU”
SNMPv2-SMI:: enterprises.318.1.1.1.7.2.4.0 = STRING: „NU”
SNMPv2-SMI:: enterprises.318.1.1.1.8.1.0 = Gauge32: 1

Dacă configurați în continuare scriptul de monitorizare, puteți obține aceste grafice ingenioase:

Cum să verificați dacă computerul dvs. poate rula Windows 10 Hyper-V

Cum să verificați dacă computerul dvs. poate rula Windows 10 Hyper-V

2 RăspunsuriWindows 10, Windows 8.1 și Windows 8 vin cu Client Hyper-V, astfel încât să puteți ru...

Citeste mai mult

Cum să activați Lansarea rapidă în Windows 10

Cum să activați Lansarea rapidă în Windows 10

Una dintre caracteristicile mele preferate ale barei de activități este bara de instrumente Quick...

Citeste mai mult

Salvați setările planului de alimentare în fișierul text în Windows 10

Salvați setările planului de alimentare în fișierul text în Windows 10

RECOMANDAT: Faceți clic aici pentru a remedia problemele Windows și pentru a optimiza performanța...

Citeste mai mult