Windows Tips & News

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

click fraud protection

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 :

Windows 10 Build 16299 est sorti pour Slow Ring

Windows 10 Build 16299 est sorti pour Slow Ring

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

Lire la suite

Télécharger Désactiver ou activer le stockage réservé dans Windows 10

Ce site Web utilise des cookies pour améliorer votre expérience lorsque vous naviguez sur le site...

Lire la suite

Exporter et importer WSL Linux Distro sous Windows 10

Exporter et importer WSL Linux Distro sous Windows 10

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

Lire la suite