Windows Tips & News

Comment surveiller l'état de l'UPS USB via SNMP

click fraud protection
CONSEILLÉ: Cliquez ici pour résoudre les problèmes de Windows et optimiser les performances du système

Comment surveiller l'état de l'UPS USB via SNMP

Il existe plusieurs ordinateurs avec un onduleur connecté par USB. Tous les ordinateurs utilisent le programme apcupsd. Supposons que vous souhaitiez regrouper des informations sur l'état de l'alimentation pour chaque unité en un seul endroit. Étant donné que snmpd y est déjà exécuté, il serait logique d'étendre ses fonctionnalités.

Publicité

La solution ci-dessous, gracieuseté de la Blog de l'administrateur, collectera les données de toutes les unités snmpd à la fois.

Afin de surveiller l'état de l'UPS USB via SNMP, nous devons d'abord modifier la configuration du démon snmp.

Contenucacher
Les préparatifs
Comment surveiller l'état de l'UPS USB via SNMP

Les préparatifs

Ajoute ce qui suit à la configuration snmpd.conf.

# APC APC
passer .1.3.6.1.4.1.318.1.1.1 /bin/sh /etc/snmp/apcupsd.sh

Le contenu du script /etc/snmp/apcupsd.sh est le suivant.

#!/bin/sh -f # Vérifie que apcupsd est en ligne. apcaccess > /dev/null 2>&1 || sortie 0 PLACE=".1.3.6.1.4.1.318.1.1.1" REQ="$2" # OID demandé # # Traiter les requêtes SET en enregistrant simplement la valeur attribuée. # Notez que de telles "affectations" ne sont pas persistantes, # la syntaxe ou la valeur demandée n'est pas non plus validée. # if [ "$1" = "-s" ]; alors. echo $* >> /tmp/passtest.log. sortie 0. Fi # # requêtes GETNEXT - détermine la prochaine instance valide. # if [ "$1" = "-n" ]; alors. cas "$REQ" dans. $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;; *) sortie 0;; esac. autre. # # requêtes GET - vérifiez l'instance valide. # cas "$REQ" dans. $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;; *) sortie 0;; esac. Fi # # "Traiter" les requêtes GET* - renvoient une valeur codée en dur. # echo "$RET" cas "$RET" dans. $PLACE.1.1.1.0) echo "chaîne"; apcaccess -u -p MODÈLE; sortie 0;; $PLACE.2.2.1.0) echo "Gauge32"; apcaccess -u -p BCHARGE; sortie 0;; $PLACE.2.2.2.0) echo "Gauge32"; apcaccess -u -p ITEMP; sortie 0;; $PLACE.2.2.3.0) echo "Timeticks"; echo $(($(LC_ALL=C printf "%.*f" 0 $(apcaccess -u -p TIMELEFT)) * 6000)); sortie 0;; $PLACE.2.2.4.0) echo "chaîne"; apcaccess -u -p BATTDATE; sortie 0;; $PLACE.3.2.1.0) echo "Gauge32"; apcaccess -u -p LINEV; sortie 0;; $PLACE.3.2.4.0) echo "Gauge32"; apcaccess -u -p LINEFREQ; sortie 0;; $PLACE.3.2.5.0) echo "chaîne"; apcaccess -u -p LASTXFER; sortie 0;; $PLACE.4.2.1.0) echo "Gauge32"; apcaccess -u -p OUTPUTV; sortie 0;; $PLACE.4.2.2.0) echo "Gauge32"; apcaccess -u -p LINEFREQ; sortie 0;; $PLACE.4.2.3.0) echo "Gauge32"; apcaccess -u -p LOADPCT; sortie 0;; $PLACE.4.2.4.0) echo "Gauge32"; apcaccess -u -p LOADPCT; sortie 0;; $PLACE.7.2.3.0) echo "chaîne"; apcaccess -u -p AUTOTEST; sortie 0;; $PLACE.7.2.4.0) echo "chaîne"; apcaccess -u -p AUTOTEST; sortie 0;; $PLACE.8.1.0) echo "Gauge32"; écho 1; sortie 0;; *) echo "chaîne"; echo "ack... $RET $REQ"; sortie 0;; # Ne devrait pas arriver. esac.

Si vous vous posez des questions sur les OID, vous pouvez les trouver ICI. Notez que certains modèles d'onduleurs ne renvoient pas tous les paramètres ou dans le mauvais format, de sorte que le code peut contenir des inexactitudes et des talons.

Maintenant, vous êtes prêt.

Comment surveiller l'état de l'UPS USB via SNMP

Pour surveiller l'état de l'UPS USB via SNMP, exécutez la commande suivante: snmpwalk -v 1 -c public 127.0.0.1 .1.3.6.1.4.1.318.1.1.1. La sortie sera comme ça :

SNMPv2-SMI:: entreprises.318.1.1.1.1.1.1.0 = CHAINE: " Smart-UPS 750 "
SNMPv2-SMI:: entreprises.318.1.1.1.2.2.1.0 = Gauge32: 100
SNMPv2-SMI:: entreprises.318.1.1.1.2.2.2.0 = Gauge32: 36
SNMPv2-SMI:: entreprises.318.1.1.1.2.2.3.0 = Timeticks: (432000) 1:12:00.00
SNMPv2-SMI:: entreprises.318.1.1.1.2.2.4.0 = CHAINE: « 2020-05-14 »
SNMPv2-SMI:: entreprises.318.1.1.1.3.2.1.0 = Gauge32: 227
SNMPv2-SMI:: entreprises.318.1.1.1.3.2.4.0 = Gauge32: 50
SNMPv2-SMI:: entreprises.318.1.1.1.3.2.5.0 = STRING: « Autotest automatique ou explicite »
SNMPv2-SMI:: entreprises.318.1.1.1.4.2.1.0 = Gauge32: 227
SNMPv2-SMI:: entreprises.318.1.1.1.4.2.2.0 = Gauge32: 50
SNMPv2-SMI:: entreprises.318.1.1.1.4.2.3.0 = Gauge32: 13
SNMPv2-SMI:: entreprises.318.1.1.1.4.2.4.0 = Gauge32: 13
SNMPv2-SMI:: entreprises.318.1.1.1.7.2.3.0 = CHAINE: "NON"
SNMPv2-SMI:: entreprises.318.1.1.1.7.2.4.0 = CHAINE: "NON"
SNMPv2-SMI:: entreprises.318.1.1.1.8.1.0 = Gauge32: 1

Si vous configurez davantage le script de surveillance, vous pouvez obtenir ces graphiques astucieux :

TéléchargerTensionTempérature de la batterieDurée
CONSEILLÉ: Cliquez ici pour résoudre les problèmes de Windows et optimiser les performances du système
InPrivate Desktop est une fonctionnalité de bac à sable dans Windows 10

InPrivate Desktop est une fonctionnalité de bac à sable dans Windows 10

Un nouveau post sur le hub Windows 10 Insider Feedback a révélé une nouvelle fonctionnalité à ven...

Lire la suite

Comment activer Ubuntu Bash dans Windows 10

Comment activer Ubuntu Bash dans Windows 10

Comme vous le savez peut-être déjà, le récemment publié Windows 10 build 14316 est livré avec le ...

Lire la suite

Amélioration de la page des paramètres de stockage dans Windows 10 Build 18277

Amélioration de la page des paramètres de stockage dans Windows 10 Build 18277

CONSEILLÉ: Cliquez ici pour résoudre les problèmes de Windows et optimiser les performances du sy...

Lire la suite