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.
Le script (ou plugin) à ajouter dans Nagios doit respecter plusieurs critères :
nagios).exit) qui indique le statut 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.
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 :
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.
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
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.
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.
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 !