Groupe Linagora - OBM Online - Planète - Blogs
Logo Linagora.org
Piste: » Divers » OpenOffice.org 2 - Module Feuille de calculs (Calc) » Extensions » Supports de formation » Serveurs d’application J2EE » OpenOffice.org 2 - Module Présentation (Impress) » Yves MIEZAN EZO » Documentations » Raphaël OUAZANA » Ajout d'un script dans les commandes Nagios

Ajout d'un script dans les commandes Nagios

Présentation

Tutoriel décrivant l'installation et la configuration d'un script en tant que commande Nagios.

Cela permet notamment d'utiliser les scripts développés par Linagora, disponibles dans la rubrique Supervision.

Pré-requis du script

Le script (ou plugin) à ajouter dans Nagios doit respecter plusieurs critères :

  • être exécutable sur le système d'exploitation hébergeant Nagios, avec les droits de l'utilisateur Nagios (classiquement nagios).
  • afficher un message, de préférence une seule ligne, décrivant la situation du service (par exemple : Temps de réponse OK - 0.564 secondes).
  • posséder un code de retour (généralement renvoyé par la fonction exit) qui indique le statut du service :
    • valeur 0 : OK (le service fonctionne correctement).
    • valeur 1 : Warning (le service fonctionne en mode dégradé).
    • valeur 2 : Critical (le service ne fonctionne plus).
    • valeur 3 : Unknown (impossible de déterminer l'état du service).

Le premier critère implique que le système d'exploitation possède les programmes et les librairies nécessaires à l'exécution du script. Pour les scripts Perl par exemple, il faut s'assurer que les modules utilisés sont bien présents dans le système.

Conventions

Pour la suite du tutoriel, il est supposé que Nagios est installé dans le répertoire /usr/local/nagios, sa configuration dans le sous-répertoire etc/, ses scripts dans le sous-répertoire libexec/ et ses binaires dans le sous-répertoire bin/. Le script (ou plugin) à installer est nommé check_exemple.Ce script prend 4 arguments en ligne de commande :

  • -H : le nom ou l'adresse IP de la machine à superviser.
  • -p : le port du programme à superviser.
  • -w : le niveau d'alerte Warning.
  • -c : le niveau d'alerte Critical.

Par exemple :

# ./check_exemple -H 192.168.100.1 -p 389 -w 5 -c 10

Ce script sera utilisé pour créer le service “Exemple” associé à la machine “Machine” (déjà configurée dans les hôtes de Nagios).

Il convient donc d'adapter les commandes en fonction du nom du script, de ses paramètres et du répertoire d'installation de Nagios.

Installation du script

Il suffit de copier le script dans le répertoire des scripts Nagios et de le rendre exécutable :

# cp check_exemple /usr/local/nagios/libexec/
# chmod 755 /usr/local/nagios/libexec/check_exemple

Création d'une commande dans Nagios

La bonne connaissance des paramètres du script intervient ici. Il est possible de générer des variables dans Nagios dont la valeur sera indiquée dans la définition du service associé à une machine, ces variables étant ensuite utilisées pour remplir les arguments du script. Il est également possible de fixer la valeur des arguments du script lors de la création de la commande dans Nagios, évitant ainsi de préciser ces valeurs à chaque définition d'un service associé à une machine.

Dans notre exemple le script check_exemple prend 4 arguments. L'argument -H doit prendre l'adresse IP de la machine distante où tourne le programme à superviser, il faudrait qu'il soit rempli automatiquement par l'adresse IP associée à cette machine définie dans Nagios. L'argument -p désigne le port d'écoute, il est préférable qu'il soit associé à une variable de Nagios, au cas où ce port varie d'une machine supervisée à l'autre, ou bien si plusieurs instances du service supervisé tournent sur la même machine, écoutant alors sur des ports différents. Les deux derniers arguments (-w et -c) sont les seuils d'alertes, ils seront fixés ici dans la commande. En modifiant leur valeur dans la commande, cela sera pris en compte pour tous les services associés aux machines, ce qui évite de fastidieuses opérations de mise à jour en cas de reréglage des seuils.

La définition de la commande prend en compte les choix précédents, elle est donc également à adapter en fonction de la nature du script.

Pour plus de simplicité dans les manipulations, se rendre dans le répertoire d'installation de Nagios :

# cd /usr/local/nagios

Éditer le fichier checkcommands.cfg :

# vi etc/checkcommands.cfg

Ajouter ces lignes à la fin du fichier :

define command                        
        command_name    exemple         
        command_line    $USER1$/check_exemple -H $HOSTADDRESS$ -p $ARG1$ -w 5 -c 10

Enregistrer et fermer le fichier.

La commande exemple est à présent disponible dans Nagios.

Définition d'un service pour une machine supervisée

Les machines sont déclarées dans le fichier etc/hosts.cfg et leurs services associés dans etc/services.cfg. Éditer ce dernier :

# vi etc/services.cfg

Le service generic-service est défini au début du fichier, il sera utilisé pour déclarer le service Exemple.

Ajouter ces lignes dans le fichier :

define service
        use                             generic-service

        host_name                       Machine
        service_description             Exemple
        is_volatile                     0
        check_period                    24x7
        max_check_attempts              3
        normal_check_interval           3
        retry_check_interval            1
        contact_groups                  admin
        notification_interval           120
        notification_period             24x7
        notification_options            w,u,c,r
        check_command                   exemple!389

Enregistrer et fermer le fichier.

Le service Exemple a été créé pour la machine Machine.

Redémarrage de Nagios

Avant de redémarrer Nagios, s'assurer que la configuration est valide :

# bin/nagios -v etc/nagios.cfg

Si aucune erreur n'est détectée, redémarrer le service Nagios :

# /etc/init.d/nagios restart

Le service Exemple apparaît maintenant dans l'interface Web !

Contributeurs : Clément OUDOT