Modèles de scripts PERL pour Centreon.

Dans ce tutoriel vous pourrez télécharger deux scripts PERL que j’utilise pour créer mes scripts Centreon.

J’ai essayé de commenter au mieux les scripts afin que vous compreniez bien comment cela fonctionne. N’étant pas un programmeur, je pense que l’on peut aisément les modifier pour les rendre plus performants.

Vous retrouvez l’intégralité des scripts sur mon compte Github à cette adresse : https://github.com/quick-tutoriel 

J’attends avec impatience vos modifications et vos commentaires.

Tous les scripts se basent sur une même trame :

  • Déclaration des variables et des paramètres du plugin.
  • Teste de tous les paramètres obligatoires.
  • Connexion SNMP à l’équipement.
  • Récupération de la/les valeur(s).
  • Test des conditions pour afficher le statut dans Centreon (OK, WARNING, CRITICAL, UNKNOWN).
  • Affichage dans Centreon.

script_perl_exemple_1

Pour bien comprendre les scripts voici quelques définitions :

  • MIB : Le système de gestion SNMP s’appuie sur deux éléments : un superviseur et des agents. Le superviseur (console permettant à l’administrateur réseau d’exécuter des requêtes de management) et les agents (entités se trouvant au niveau de chaque interface (carte réseau, switch) connectant l’équipement managé au réseau et permettant de récupérer des informations sur différents objets. Switchs, routeurs et serveurs sont des exemples d’équipements contenant des objets manageables. Ces objets peuvent être des informations matérielles, des paramètres de configuration, des statistiques de performance et autres objets directement liés au comportement en cours de l’équipement managé. SNMP gère le dialogue entre le superviseur et les agents afin de recueillir les objets souhaités dans la MIB. Chaque périphérique ou Os supportant le protocole SNMP dispose d’une MIB avec des variables (Oid).
  • OID : C’est une variable sous une forme numérique, 1.3.6. etc qui contient une valeur (statut d’un port, sa vitesse, …). Un manager de MIB peut interroger un OID et en faire ressortir sa valeur.
  • SNMPGET : Cette commande permet de récupérer la valeur d’un OID. Avec snmpget vous récupérez une et une seule valeur. Vous récupéré la valeur de l’OID demandé.
  • SNMPWALK : Cette commande permet de récupérer toutes les valeurs d’un OID « nœud ». Snmpwalk permet de récupérer toutes les valeurs d’un sous-arbre : vous récupérerez toutes les valeurs disponibles en dessous de l’arbre.
ATTENTION : ne faites JAMAIS une requête snmpwalk sur la racine de l’arbre SNMP ou sur un noeud de haut niveau. Si vous le faites, vous allez saturer l’agent SNMP de votre équipement et il sera peut-être nécessaire de redémarrer l’équipement.

script_perl_exemple_2

Exemple de commande :

snmpwalk -v <laversion> -c <lacommunaute> <adresseip> <oid>
snmpwalk -v 2c -c public 192.168.1.13 1.3.6.1.2.1.2.2.1.10
snmpget -v <laversion> -c <lacommunaute> <adresseip> <oid>
snmpget -v 2c -c public 192.168.1.13 1.3.6.1.2.1.2.2.1.10.1
Le premier script (Modèle de Script Centreon avec SNMPGET.pl) permet de faire un snmpget sur un OID pour récupérer une valeur précise.

Voici quelques portions de code intéressantes :

Code PERL permettant de se connecter à un équipement en SNMP, via le module NET::SNMP.

script_perl_exemple_3

Code PERL permettant de récupérer la valeur d’un OID en SNMP sur un équipement.

script_perl_exemple_4

Code PERL, permettant d’afficher le résultat dans Centreon.

Sur la ligne 165, on peut noter que les données de performances (graphique dans Centreon) sont gérées. Les données de performance sont après le | .

script_perl_exemple_5

Ce qui donne par la suite dans Centreon ce type d’affichage pour le texte :

script_perl_exemple_6

et au niveau des graphique ceci :

script_perl_exemple_7

Concernant le deuxième script (Modèle de Script Centreon avec SNMPWALK.pl), celui-ci est sensiblement identique sauf que nous utilisant un snmpwalk pour afficher plusieurs valeurs. Typiquement vous avez un stack de plusieurs switchs et vous voulez récupérer la CPU de chacun des switchs.

Voici la seule différence, on utilise une boucle pour parcourir toute les valeurs de notre OID :

script_perl_exemple_8

Ce qui peut se traduire par ceci au niveau de Centreon pour l’affichage texte:

script_perl_exemple_9

Pour l’affichage graphique :

script_perl_exemple_10

En espérant que ces modèles vous serviront pour découvrir le monde merveilleux de la supervision.

Vous retrouvez l’intégralité des scripts sur mon compte Github à cette adresse : https://github.com/quick-tutoriel 
Si vous utilisez ou modifier ces scripts, n’oubliez pas de laisser un petit commentaire via le formulaire de contact en cliquant ici

That’ s All.

5 Potins

  1. Bonjour,

    Centreon à besoin de scripts pour récupérer des informations sur les équipements en SNMP. Ce script peut-être écrit dans plusieurs langages comme le bash, php, powershell ou bien perl celui que j’ai choisi.

    Cordialement

  2. Bonjour je n’arrive pas à comprendre le lien entre centreon et le script.
    Merci

  3. Bonjour Guillaume,
    je suis un novice sur centreon . je suis stagiaire dans une entreprise et mon projet porte sur le développement d’un déclencheur d’alertes en fonction de l’évolution de données de performance( les graphes). il ne s’agit pas juste de définir des seuils mais de définir des plages de variation . pouvez vous me donner quelques astuces?

    je m’explique par exemple a 1h05 la courbe affiche comme valeur 200 et à 1h10 160 donc une perte de 40
    moi je veux définir une perte de 30 au maxi au de cette valeur je veux avoir un alerte. si la perte est inférieur à 30 pas de soucis.

  4. Bonjour,

    Votre script snmpget est super et m’a permis de superviser les cartouches de mes imprimantes !

    Merci et bonne continuation

  5. Bonjour et merci de l’intérêt que vous portez à notre logiciel de supervision.

    Pour compléter votre article, nous avons mis à jour récemment notre système de plugins Centreon dont vous trouverez plus d’information à cette adresse : http://blog.centreon.com/mise-a-jour-de-la-documentation/?lang=fr

    Ce nouveau système de plugins Centreon a pour but d’uniformiser l’utilisation et le développement de ces derniers.

    Bonne continuation !

Laisser un commentaire

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