Windows Tips & News

Come monitorare lo stato dell'UPS USB tramite SNMP

CONSIGLIATO: Fare clic qui per risolvere i problemi di Windows e ottimizzare le prestazioni del sistema

Come monitorare lo stato dell'UPS USB tramite SNMP

Esistono diversi computer con UPS collegato tramite USB. Tutti i computer utilizzano il programma apcupsd. Supponi di voler aggregare informazioni sullo stato dell'alimentazione per ogni unità in un unico posto. Poiché snmpd è già in esecuzione lì, sarebbe logico espandere la sua funzionalità.

Annuncio

La soluzione di seguito, per gentile concessione del Blog dell'amministratore, raccoglierà i dati da tutte le unità SNMPD contemporaneamente.

Per monitorare lo stato dell'UPS USB tramite SNMP, dobbiamo prima modificare la configurazione del demone snmp.

Contenutinascondere
preparativi
Come monitorare lo stato dell'UPS USB tramite SNMP

preparativi

Aggiunge quanto segue alla configurazione snmpd.conf.

# UPS APC
passare .1.3.6.1.4.1.318.1.1.1 /bin/sh /etc/snmp/apcupsd.sh

Il contenuto dello script /etc/snmp/apcupsd.sh è il seguente.

#!/bin/sh -f # Verifica che apcupsd sia online. apcaccess > /dev/null 2>&1 || exit 0 POSTO=".1.3.6.1.4.1.318.1.1.1" REQ="$2" # OID richiesto # # Elabora le richieste SET semplicemente registrando il valore assegnato. # Nota che tali "assegnamenti" non sono persistenti, # né la sintassi o il valore richiesto sono convalidati. # if [ "$1" = "-s" ]; poi. echo $* >> /tmp/passtest.log. uscita 0. fi # # Richieste GETNEXT - determina la prossima istanza valida. # if ["$1" = "-n"]; poi. caso "$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;; *) uscita 0;; esac. altro. # # Richieste GET - verifica un'istanza valida. # caso "$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;; *) uscita 0;; esac. fi # # Richieste GET* "Processo" - restituisce il valore hardcoded. # echo "$RET" caso "$RET" in. $PLACE.1.1.1.0) echo "stringa"; apcaccess -u -p MODELLO; uscita 0;; $PLACE.2.2.1.0) echo "Gauge32"; apcaccess -u -p BCHARGE; uscita 0;; $PLACE.2.2.2.0) echo "Gauge32"; apcaccess -u -p ITEMP; uscita 0;; $PLACE.2.2.3.0) echo "Timeticks"; echo $(($(LC_ALL=C printf "%.*f" 0 $(apcaccess -u -p TIMELEFT)) * 6000)); uscita 0;; $PLACE.2.2.4.0) echo "stringa"; apcaccess -u -p BATTDATE; uscita 0;; $PLACE.3.2.1.0) echo "Gauge32"; apcaccess -u -p LINEV; uscita 0;; $PLACE.3.2.4.0) echo "Gauge32"; apcaccess -u -p LINEFREQ; uscita 0;; $PLACE.3.2.5.0) echo "stringa"; apcaccess -u -p LASTXFER; uscita 0;; $PLACE.4.2.1.0) echo "Gauge32"; apcaccess -u -p OUTPUTV; uscita 0;; $PLACE.4.2.2.0) echo "Gauge32"; apcaccess -u -p LINEFREQ; uscita 0;; $PLACE.4.2.3.0) echo "Gauge32"; apcaccess -u -p LOADPCT; uscita 0;; $PLACE.4.2.4.0) echo "Gauge32"; apcaccess -u -p LOADPCT; uscita 0;; $PLACE.7.2.3.0) echo "stringa"; apcaccess -u -p SELFTEST; uscita 0;; $PLACE.7.2.4.0) echo "stringa"; apcaccess -u -p SELFTEST; uscita 0;; $PLACE.8.1.0) echo "Gauge32"; eco 1; uscita 0;; *) echo "stringa"; eco "ack... $RET $REQ"; uscita 0;; # Non dovrebbe accadere. esac.

Se ti stai chiedendo degli OID, puoi trovarli QUI. Si noti che alcuni modelli di UPS non restituiscono tutti i parametri o nel formato sbagliato, quindi il codice potrebbe contenere imprecisioni e stub.

Ora sei pronto.

Come monitorare lo stato dell'UPS USB tramite SNMP

Per monitorare lo stato dell'UPS USB tramite SNMP, eseguire il comando seguente: snmpwalk -v 1 -c public 127.0.0.1 .1.3.6.1.4.1.318.1.1.1. L'output sarà così:

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:: 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:: enterprises.318.1.1.1.3.2.5.0 = STRING: "Autotest automatico o esplicito"
SNMPv2-SMI:: enterprise.318.1.1.1.4.2.1.0 = Gauge32: 227
SNMPv2-SMI:: enterprise.318.1.1.1.4.2.2.0 = Gauge32: 50
SNMPv2-SMI:: enterprise.318.1.1.1.4.2.3.0 = Gauge32: 13
SNMPv2-SMI:: enterprise.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 = Gauge32: 1

Se configuri ulteriormente lo script di monitoraggio, puoi ottenere questi graziosi grafici:

CaricaVoltaggioTemp.batteriaTempo di esecuzione
CONSIGLIATO: Fare clic qui per risolvere i problemi di Windows e ottimizzare le prestazioni del sistema
Tutti i modi per aprire il prompt dei comandi in Windows 10

Tutti i modi per aprire il prompt dei comandi in Windows 10

Nei miei articoli, faccio spesso riferimento a strumenti da riga di comando e utilità della conso...

Leggi di più

Windows 10 Build 19042.421 è disponibile con il nuovo menu Start per il canale Beta (20H2)

Windows 10 Build 19042.421 è disponibile con il nuovo menu Start per il canale Beta (20H2)

CONSIGLIATO: Fare clic qui per risolvere i problemi di Windows e ottimizzare le prestazioni del s...

Leggi di più

Abilita nuovo menu Start in Windows 10 Build 20161

Abilita nuovo menu Start in Windows 10 Build 20161

Come abilitare il nuovo menu Start in Windows 10 Build 20161Pochi giorni fa Microsoft ha rilascia...

Leggi di più