Windows Tips & News

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

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.

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.

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 :

Un bug dans Windows 10 version 2004 empêche l'enregistrement des cookies et des logins

De nouveaux rapports indiquent que certains utilisateurs ont des problèmes avec le successeur de ...

Lire la suite

La calculatrice de réparation ne s'ouvre pas dans Windows 10

La calculatrice de réparation ne s'ouvre pas dans Windows 10

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

Lire la suite

Voici comment les applications Win32 classiques fonctionneront sous Windows 10X

Voici comment les applications Win32 classiques fonctionneront sous Windows 10X

Si vous suivez la couverture Windows 10X sur Winaero, vous savez peut-être déjà que cette version...

Lire la suite