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
Windows 11 est désormais conçu pour un large déploiement

Windows 11 est désormais conçu pour un large déploiement

À partir d'aujourd'hui, chaque utilisateur peut télécharger la dernière et la dernière version de...

Lire la suite

Windows 11 Build 22000.706 ajoute Windows Spotlight au bureau dans l'aperçu de la version

Windows 11 Build 22000.706 ajoute Windows Spotlight au bureau dans l'aperçu de la version

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

Lire la suite

Edge Dev 103.0.1255.0 publié avec des améliorations de recherche et de politique

Edge Dev 103.0.1255.0 publié avec des améliorations de recherche et de politique

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

Lire la suite