Nagios : Des plugins Nagios en veux-tu en voilà !

Un plugin Nagios a en charge le contrôle de l’état et des performances d’un hôte. Grâce à lui, il vous est possible de vérifier la charge CPU, la mémoire utilisée, le trafic réseau d’un serveur ou encore de surveiller la température d’une salle serveur. Le résultat d’un plugin étant ensuite récupéré par Nagios.

Les plugins Nagios que je vous propose, permettent de vérifier différents services à l’aide de requêtes SNMP (version 1) effectuées sur un agent SNMP.

1. check_snmp_cpu : Contrôle la charge CPU d’un serveur. Ce plugin retourne des données de performance.
2. check_snmp_memory : Indique la mémoire utilisée par un serveur. Ce plugin retourne des données de performance.
3. check_snmp_disksize : Vérifie l’espace disque disponible sur un point de montage. Ce plugin retourne des données de performance.
4. check_snmp_dell_equallogic : Surveille l’état d’une baie de stockage Dell EqualLogic. Ce plugin retourne des données de performance.
5. check_snmp_dell_poweredge : Vérifie l’état d’un serveur Dell PowerEdge (température CPU, redondance de l’alimentation, état des disques durs) à l’aide de Dell OpenManage Server Administrator. Ce plugin retourne des données de performance pour la température CPU.
6. check_snmp_ups : Indique l’état d’un onduleur. Ce plugin retourne des données de performance.
7. check_snmp_uptime : Indique la durée fonctionnement d’un équipement. Ce plugin retourne des données de performance.
8. check_snmp_printer : Affiche l’état des consommables et du nombre de pages imprimé. Ce plugin retourne des données de performance.

Les plugins Nagios présents dans cet article sont écrits en Bash et sont distribués sous licence GPLv2. Ils nécessitent en pré-requis, l’installation des utilitaires SNMP (snmpget et snmpwalk) sur votre serveur Nagios : yum install snmp-utils.

A noté que les plugins Nagios sont distribués en langue anglaise. Il vous sera toutefois assez facile de les francisé si vous le souhaitez.

Quelques exemples de graphiques RRDTool d’après les données de performance retournées par ces plugins :

check_snmp_traffic

check_snmp_memory

check_snmp_cpu

32 thoughts on “Nagios : Des plugins Nagios en veux-tu en voilà !”

  1. I just tried to use check_snmp_memory agains one of my linux server to no avail. However it works when checking a window server. Below is what i got when trying on a linux server:

    ./check_snmp_memory -H 10.210.2.111 -C lun1t
    snmp_build: unknown failuresnmpget: Error building ASN.1 representation (Can’t build OID for variable)
    snmp_build: unknown failuresnmpget: Error building ASN.1 representation (Can’t build OID for variable)
    snmp_build: unknown failuresnmpget: Error building ASN.1 representation (Can’t build OID for variable)

    And below is a result when checking my window server:

    ./check_snmp_memory -H 10.210.21.231 -C lssnmp
    Memory usage : 1.43 Go used for a total of 2.99 Go (47%), SWAP usage : 1.85 Go used for a total of 4.34 Go (42%) | mem_used=1544159232B;0;0;0 swap_used=1986985984B;0;0;0

  2. Hello,

    The plugin can’t retrieve the OIDs values (HOST-RESOURCES-MIB).
    In the configuration file /etc/snmp/snmpd.conf, you can check if the view isn’t restricted :

    view all included .1

    Regards.

  3. hello,

    Je test le check dell et ca me renvoi systématiquement unknow… :o(

    ./check_snmp_dell_poweredge -H 192.168.0.10 -C public
    Unknown

    Hellpppp .

  4. Bonjour,

    Je viens de corriger une petite erreur dans le plugin check_snmp_dell_poweredge (disk à la place de diskstate). Je ne sais pas si c’était la cause de votre erreur.

    Voici quelques exemples d’utilisation :
    ./check_snmp_dell_poweredge -H xxx.xxx.xxx.xxx -C public -t disk -d 1
    ./check_snmp_dell_poweredge -H xxx.xxx.xxx.xxx -C public -t fan
    ./check_snmp_dell_poweredge -H xxx.xxx.xxx.xxx -C public -t health
    ./check_snmp_dell_poweredge -H xxx.xxx.xxx.xxx -C public -t info
    ./check_snmp_dell_poweredge -H xxx.xxx.xxx.xxx -C public -t power
    ./check_snmp_dell_poweredge -H xxx.xxx.xxx.xxx -C public -t redundancy
    ./check_snmp_dell_poweredge -H xxx.xxx.xxx.xxx -C public -t temperature -w 30 -c 35

    Pour ma part, j’ai validé son fonctionnement sur des serveurs Dell PowerEdge R410 et R710. Certaines vérifications (température, ventilateur) ne fonctionnent pas sur les anciens serveurs Dell PowerEdge (2600, 2850, …).

    Cordialement.

  5. salut
    moi j’arrive à avoir en retour le fan et health sur des 2950

    mais unknow pour t°, power, redundacy

    bizarre non?

  6. Même problème que Nico , ca me renvoi systématiquement unknow…

    /usr/lib/nagios/plugins/check_snmp_dell_poweredge -H X.X.X.X -C public -t info
    Timeout: No Response from X.X.X.X.
    Unknown

  7. Bonjour,

    Voici les informations que je récupère selon les types de serveurs Dell que je supervise actuellement :
    – Dell PowerEdge 2600 : disk, health, info, redundancy
    – Dell PowerEdge 2850 et 2900 : disk, fan, health, info, redundancy, temperature
    – Dell PowerEdge R410 et R710 : disk, fan, health, info, power, redundancy, temperature

    Si vous avez des problèmes pour utiliser le plugin check_snmp_dell_poweredge, vous pouvez exécuter les commandes suivantes :
    – snmpwalk -v 1 -c public x.x.x.x
    – snmpwalk -v 1 -c public x.x.x.x .1.3.6.1.4.1.674

    La première commande permet d’effectuer des requêtes SNMP afin de vérifier la communication avec l’agent SNMP sur les MIBs standards.

    La deuxième commande précise l’OID permettant d’accéder à la branche enterprise spécifique à Dell. Je rappel qu’il est nécessaire d’installer Dell OpenManage Server Administrator.

    Cordialement.

  8. Les deux commande que vous m’avait transmis semble fonctionné mais le plugin ne semble pas communiquer avec le client :

    ./check_snmp_dell_poweredge -H x.x.x.x -C root -t info
    Timeout: No Response from x.x.x.x.
    Unknown

    Une idée du problème ?
    Le client est un windows server 2008 avec OpenManage Server Administrator, j’ai activer le service snmp sur le windows + set snmp sur l’interface OpenManage …

    y a t’il d’autre outils à installer ?

  9. Donc il n’y a pas d’autre outils à installer !

    c’est moi qui me suis trompé !

    la vrai ligne :

    ./check_snmp_dell_poweredge -H x.x.x.x -C public -t fan

    Tout fonctionne sauf « redondance » !

    Merci de votre aide !

  10. Bonjour à tous,

    j’ai un probleme avec le plugin check_snmp_cpu cela me renvoi le status du service en UNKNOW ?

    Quelq’un aurait il une idée ?

    dans les command sur centreon j’ai mis $USER1$/check_snmp_cpu -H $HOSTADDRESS$ -C $ARG1$

    merci pour votre aide

  11. Bonjour,

    Je viens de trouver une erreur de ma part dans le script check_snmp_cpu (un saut de ligne à la ligne 111, que je viens de corriger).

    Pouvez-vous récupérer et essayer à nouveau ce plugin ?

    Pour ma part, je l’utilise sur des serveurs Windows et Linux.

    Merci,

    Cordialement.

  12. Bonjour :

    Le service marche bien bien avec moi apres plusieurs jours de teste puisque je suis un dubutant avec nagios et snmp

    Est ce que quel qu’un peux m’aider comment faire pour afficher les graphes ?

    Merci
    Sofiane

  13. Hello,

    Je récupère toujours la valeur « Unknown » lors du check_snmp_disksize. Pour info j’essaie de superviser l’espace disque d’un NAS Synology 209+.

  14. Bonjour,

    @sofiane : Pour afficher les graphes, il est nécessaire d’utiliser les données de performances retournées par les plugins Nagios. Plusieurs solutions existent basées sur RRDTool comme PNP4Nagios.

    @hellboy : Le plugin check_snmp_disksize utilise la MIB HOST-RESOURCES-MIB pour vérifier l’espace disque. Ce plugin a été conçu pour récupérer via le protocole SNMP, l’espace utilisé sur des serveurs Windows et Linux.

    En argument (-d), il est nécessaire de spécifier soit la lettre de la partition (par exemple, C: pour Windows) soit le point de montage (par exemple, /home pour Linux).

    L’état Unknown signifie que le plugin n’a pas réussi à récupérer la valeur correspondante à l’argument spécifié (-d). Ceci peut être une simple erreur orthographique de votre part. Il se peut aussi que votre NAS n’implémente pas cette MIB. C’est souvent le cas pour des matériels spécifiques, qui préfèrent exploiter leurs propres MIB. Il faut alors créer ces propres plugins Nagios à partir de ces MIB, comme je l’ai fait pour la baie Dell EqualLogic.

    Pour le vérifier, il suffit d’effectuer une requête SNMP et d’analyser son résultat : snmpwalk -v 1 -c public xxx.xxx.xxx.xxx .1.3.6.1.2.1.25

    xxx.xxx.xxx.xxx est l’adresse IP de votre NAS.

    Cordialement.

  15. Bonjour,
    j’ai testé le plugins check_snmp_poweredge sur mon serveur mais il me remonte seulement l’état du disque 1

    Pour être sur voici ce que j’ai fait :
    Rajouter le plugins dans mon répertoire /usr/lib/nagios/plugins

    tester les commandes suivante :
    ./check_snmp_dell_poweredge -H xxx.xxx.xxx.xxx -C public -t disk -d 1
    ./check_snmp_dell_poweredge -H xxx.xxx.xxx.xxx -C public -t fan
    ./check_snmp_dell_poweredge -H xxx.xxx.xxx.xxx -C public -t health
    ./check_snmp_dell_poweredge -H xxx.xxx.xxx.xxx -C public -t info
    ./check_snmp_dell_poweredge -H xxx.xxx.xxx.xxx -C public -t power
    ./check_snmp_dell_poweredge -H xxx.xxx.xxx.xxx -C public -t redundancy
    ./check_snmp_dell_poweredge -H xxx.xxx.xxx.xxx -C public -t temperature -w 30 -c 35

    Tout est OK jusque la

    Ensuite j’ai rajouté dans Centreon une commande :
    $USER1$/check_snmp_dell_poweredge -H $HOSTADDRESS$ -v 1 -C

    (je sais pas si il faut mettre autre chose ou pas, c’est la premiere fois que je rajoute une commande)
    et ensuite creer un service pour un serveur en utilise cette commande.

    est ce la bonne manip ?
    De plus en testant toutes les lignes de commande je ne vois pas la température du CPU est-ce normal ?

    merci d’avance pour votre aide.

    Cordialement,

  16. Bonjour,

    Pour le plugin check_snmp_dell_poweredge, j’ai préféré distinguer l’état de chaque disque dur. Il vous faut donc définir un objet service pour chaque disque dur de votre serveur avec l’argument-d.

    – Vérifiez l’état du premier disque : ./check_snmp_dell_poweredge -H xxx.xxx.xxx.xxx -C public -t disk -d 1
    – Vérifiez l’état du second disque : ./check_snmp_dell_poweredge -H xxx.xxx.xxx.xxx -C public -t disk -d 2
    – Vérifiez l’état du troisième disque : ./check_snmp_dell_poweredge -H xxx.xxx.xxx.xxx -C public -t disk -d 3

    Dans la configuration de Nagios, la définition de la commande doit être par exemple de ce type :

    define command {
    command_name check_dell_poweredge_disk
    command_line $USER2$/check_snmp_dell_poweredge -H $HOSTADDRESS$ -C $ARG1$ -t disk -d $ARG2$
    }

    Et la définition d’un objet service :

    define service {
    host_name NomServer
    use generic_service
    service_description Etat_Disque_1
    check_command check_dell_poweredge_disk!public!1
    contact_groups +MonGroupe
    }

    Concernant la température du CPU, comme mentionné dans les commentaires précédents, les remontés d’informations possibles dépendent du modèle.

    Cordialement.

  17. Bonjour Merci beaucoup pour ton aide, j’ai enfin réussi a rajouter les services que je voulais.
    Par contre j’ai un pb avec le check sur les alimentations des poweredge R210, ils sont en unknown

    Merci encore

  18. Bonjour, Merci merci merci beaucoup.
    Je débute avec Nagios et PNP, pourriez vous m’indiquer quels templates utiliser au niveau de PNP pour obtenir les graphiques associés ?
    Cordialement,

  19. Thanks for check_snmp_memory.
    It´s good!
    But where are .pjp template for Pnp4nagios?
    Looking at your example, I see it.

    Thanks!

    Diramos

  20. Bonjour,

    J’ai créé mes propres templates PNP. Il est nécessaire de connaitre l’outil RRDTool pour pouvoir les créer.

    Pour cela, il est nécessaire de créer un fichier texte correspondant au nom du service que vous avez défini dans la configuration de Nagios, dans le répertoire templates.

    Par exemple le template check_cpu.php correspondant au service check_cpu :

    Cordialement.

  21. OK, je comprends.
    Je pensais que vous aviez déjà un prêt pour check_memory.
    Je vais créer et puis je vais poster le code ici, s’il vous plaît.
    Quoi qu’il en soit, merci pour le plugin.
    Il fonctionne parfaitement.

    Un câlin et bonne chance.

    Diramos

  22. Bonjour,
    j’utilise vos check pour mon nagios depuis un certain temps et tout fonctionne à merveille. Aujourd’hui je me penche un peu plus sur les graph que je pourrais exploiter. J’arrive à avoir certain graph, mais impossible de faire fonctionner celui de la mémoire. Avez vous une idée ?

    merci d’avance

  23. Bonjour
    dans le plugin check_snmp_dell_poweredge.

    A la ligne 229
    PERFORMANCE_DATA= »$PERFORMANCE_DATA ‘${COOLING_NAME}’=${COOLING_READING} »

    Cela ne remonte qu’un seul graph quand on a plusieurs ventilateurs. J’ai 6 ventilateurs sur un serveur DELL. Seul le 6e est remonté.
    Il y a en effet une erreur dans le plugin car il n’y a pas de caractère séparateur entre les différents ventilateurs.
    Ex :
    Status Information: Vitesse de rotation des ventilateurs : ‘BMC FAN 1 RPM’ : 4800 tr/min, ‘BMC FAN 2 RPM’ : 5100 tr/min, ‘BMC FAN 3 RPM’ : 4875 tr/min, ‘BMC FAN 4 RPM’ : 4950 tr/min, ‘BMC FAN 5 RPM’ : 4650 tr/min, ‘BMC FAN 6 RPM’ : 4725 tr/min,

    Performance Data: ‘BMC FAN 1 RPM’=4800 ‘BMC FAN 2 RPM’=5100 ‘BMC FAN 3 RPM’=4875 ‘BMC FAN 4 RPM’=4950 ‘BMC FAN 5 RPM’=4650 ‘BMC FAN 6 RPM’=4725
    Ce qui fait que le graph n’affiche que pour BMC FAN 6
    Pouvez-vous fournir le correctif ?
    Merci d’avance.
    Sébastien

  24. Bonjour,

    Je viens de modifier le format des données de performance pour ce plugin. Il manquait les valeurs warn, crit, min et max mais le caractère de séparation est bien l’espace.

    Cordialement.

  25. Bonjour

    Merci pour la modification mais les alertes indiquent 0 en valeur. Ce n’est pas grave j’ai pu modifier dans le script en mettant les valeurs de warn et crit voulues.
    Tout fonctionne parfaitement j’ai bien les 6 BMC FAN affichés

  26. Bonjour,

    Je suis actuellement en stage dans une entreprise qui me demande d’installer une supervision avec Centreon. J’aimerai par la suite, pouvoir récupérer vos scripts et les installer pour avoir ces commandes dans Centreon hors je n’ai aucune idée de comment procéder à cela. J’ai bien installer utilitaires SNMP sur ma machine CentOS 6.7 avec CES et j’ai bien configuré mon SNMP sur ma machine a supervisé. J’ai testé d’installer les scripts en faisant vim /usr/lib/nagios/plugin mais je n’ai rien dans Centreon une fois cela fait.

    Avez-vous une idée de mon problème ou pouvez-vous m’expliquer la bonne démarche ?

    Merci d’avance et bonne journée!

  27. Bonjour,

    Pour récupérer les plugins, il vous suffit d’utiliser la commande wget, de modifier le propriétaire et de rendre exécutable les scripts.
    Ensuite, il est nécessaire de créer des objets de type command pour pouvoir utiliser les différents plugins.

    Cordialement.

  28. Bonjour,

    Merci de votre rapide réponse! Je test ça tout de suite, je vous tiens au courant.

    Merci.

  29. Bonjour,

    Eh bien je viens vous remercier de votre aide! J’ai enfin réussi à configurer tout ce que je voulais! Bonne continuation et à bientôt!

    Cordialement

  30. Bonjour,
    si quelqu’un me reçoit SVP help!!!!
    je tente de configurer le check snmp traffic mais je ne comprend pas comment je dois proceder avec le script.

    Please Help

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.