Supervision d’un onduleur avec Nagios

Le plugin check_snmp_ups permet de superviser l’état d’un onduleur (la source, la température, le niveau et la charge des batteries, la puissance consommée).

Ce plugins Nagios est écrit en Bash et est distribué sous licence GPLv2. Il nécessite en pré-requis, l’installation des utilitaires SNMP (snmpget et snmpwalk) sur votre serveur Nagios : yum install snmp-utils.

check_snmp_ups_1

– Déplacez le plugin check_snmp_ups dans le répertoire contenant les plugins Nagios : mv check_snmp_ups /usr/local/nagios/libexec/
– Rendez le fichier exécutable : chmod +x /usr/local/nagios/libexec/check_snmp_ups
– Modifiez le propriétaire pour ce script : chown nagios:nagios /usr/local/nagios/libexec/check_snmp_ups

Pour vérifier que ce plugin Nagios fonctionne correctement, il vous suffit de l’exécuter : /usr/local/nagios/libexec/check_snmp_ups -H xxx.xxx.xxx.xxx -C public -t battery

L’argument H correspond à l’adresse IP de l’onduleur, C à la communauté SNMP et t au type d’information que vous souhaitez récupérer.  Les valeurs possibles sont : battery, charge, power, source et temperature. En fonction du type d’information, il vous faudra utiliser d’autres arguments tels que w et c pour indiquer les seuils d’alerte. Vous trouverez plus d’informations sur son utilisation en affichant l’aide qui accompagne ce plugin : /usr/local/nagios/libexec/check_snmp_ups -h

Voici quelques exemples d’utilisation :

– Vérifiez l’état des batteries de l’onduleur : ./check_snmp_ups -H xxx.xxx.xxx.xxx -C public -t battery

Battery status : Battery level is ok

– Vérifiez la charge des batteries de l’onduleur : ./check_snmp_ups -H xxx.xxx.xxx.xxx -C public -t charge -w 70 -c 30

Battery level : 100%. Remaining time : 122 minutes | charge=100;70;30;0

– Vérifiez la puissance consommée par l’onduleur : ./check_snmp_ups -H xxx.xxx.xxx.xxx -C public -t power -w 0 -c 0

Output load : 9.62 KWatt | output_power=9622;0;0;0

– Vérifiez la source de l’onduleur : ./check_snmp_ups -H xxx.xxx.xxx.xxx -C public -t source

Output source : Output is filtered

– Vérifiez la température de l’onduleur : ./check_snmp_ups -H xxx.xxx.xxx.xxx -C public -t temperature -w 0 -c 0

Temperature : 22 Degree Celsius | temperature=22;0;0;0

Nous allons maintenant modifier la configuration de Nagios pour superviser un onduleur. Cette partie dépend de l’arborescence de configuration et de l’installation de Nagios dont vous disposez.

– Ajoutez les définitions des objets command : vi /etc/nagios/objects/commands.cfg

define command {
command_name check_ups_battery
command_line $USER2$/check_snmp_ups -H $HOSTADDRESS$ -C $ARG1$ -t battery
}

define command {
command_name check_ups_charge
command_line $USER2$/check_snmp_ups -H $HOSTADDRESS$ -C $ARG1$ -t charge -w $ARG2$ -c $ARG3$
}

define command {
command_name check_ups_power
command_line $USER2$/check_snmp_ups -H $HOSTADDRESS$ -C $ARG1$ -t power -w $ARG2$ -c $ARG3$
}

define command {
command_name check_ups_source
command_line $USER2$/check_snmp_ups -H $HOSTADDRESS$ -C $ARG1$ -t source
}

define command {
command_name check_ups_temperature
command_line $USER2$/check_snmp_ups -H $HOSTADDRESS$ -C $ARG1$ -t temperature -w $ARG2$ -c $ARG3$
}

– Ajoutez la définition de l’objet host pour l’onduleur : vi /etc/nagios/objects/hosts.cfg

define host {
host_name ups
use generic-host
alias Onduleur
address xxx.xxx.xxx.xxx
contact_groups +admin
}

– Ajoutez la définition des objets service pour l’onduleur : vi /etc/nagios/objects/services.cfg

define service {
host_name ups
use generic-service
service_description Batterie
check_command check_ups_battery!public
contact_groups +admin
}

define service {
host_name ups
use generic-service
service_description Charge
check_command check_ups_charge!public!70!30
contact_groups +admin
}

define service {
host_name ups
use generic-service
service_description Puissance
check_command check_ups_power!public!0!0
contact_groups +admin
}

define service {
host_name ups
use generic-service
service_description Source
check_command check_ups_source!public
contact_groups +admin
}

– Rechargez la configuration de Nagios : service nagios reload ou systemctl reload nagios

L’onduleur est maintenant supervisé à l’aide de Nagios.

check_snmp_ups_2

check_snmp_ups_3

4 thoughts on “Supervision d’un onduleur avec Nagios”

  1. Les graphiques RRDtool sont générées à partir des données de performances retournées par le plugin.

  2. bonjour
    sur mon interface thruk c’est marque no such file or directory alors en ligne de commande les remontés se font malgrés l’erreur /bin/basename: No such file or directory

    merci d’avance

  3. Bonjour,

    basename est une commande Unix standard placé habituellement dans le répertoire /bin/ (ou /usr/bin/).
    Dans ce script, elle permet simplement de récupérer le nom du plugin (check_snmp_ups).

    Avec un « whereis basename« , vous pouvez afficher le répertoire où se situe cette commande.
    Il suffit ensuite d’éditer le plugin check_snmp_ups :

    CMD_BASENAME="/bin/basename"

    Cordialement.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.