Bonjour à tous,
Dans le cadre d’un projet informatique, j’ai été amené à travailler avec Nagios / Centreon.
Afin de récupérer la valeur d’un capteur de température, j’ai créé un plugin python qui va lire la température dans une base de données et l’affiche.
Le problème est que lorsque je veux monitorer mon service basé sur ce plugin, il s’affiche en « CRITICAL » dans l’interface Web de Centreon avec l’erreur « (Return code 127 is out of bounds) plugin may be missing ».
Voici un récapitulatif de mes installations :
- Installation de Nagios + Centreon + NDOutils sur Debian 7.5 en suivant ce tutoriel
http://fr.scribd.com/doc/239973292/1...-Debian#scribd
- Installation d'un plugin python "cigne_plugin.py" qui vient lire une valeur dans une base de données et l'affiche
- Ajout du fichier cigne_python.py dans /usr/local/nagios/libexec
Dans le fichier /usr/local/nagios/etc/resource.cfg, la macro $USER1$ est définie sur /usr/local/nagios/libexec
- Dans le fichier /usr/local/nagios/etc/checkcommands.cfg, ajout des lignes :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 define command{ command_name arduino_temp_sensor command_line $USER1$/cigne_plugin.py }
- Dans le fichier /usr/local/nagios/etc/objects/commands.cfg, ajout des lignes:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 define command{ command_name arduino_temp_sensor command_line $USER1$/cigne_plugin.py }
- Dans le fichier /usr/local/nagios/etc/objects/localhost.cfg :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 define service{ use local-service host_name localhost service_description Arduino Temp check_command arduino_temp_sensor notification_enabled 0 }
- Ajout de la commande arduino_temp_sensor dans l'interface Web de Centreon (Configuration -> Commands)
- Ajout du service "Arduino Temp" dans l'interface Web de Centreon (Configuration -> Services)
- Vérification des droits
- Vérification que le script est exécutable
- Vérification des propriétaires de fichiers
- Vérification des users et des groupes
Dans le fichier /usr/local/nagios/etc/services.cfg, j'ai bien mon service qui s'est créé pour mon localhost.
J’ai essayé avec une version du plugin en commentant tout le code et qui ne fait qu’un « sys.exit(2) », le problème ne viens donc pas du code.
Merci d’avance de votre aide, bonne journée.
EDIT : Problème résolu :
La commande ne savais pas où aller chercher l'interpréteur de python, malgré le "#!/usr/bin/env python" en début de fichier.
J'ai donc modifié la définition de ma commande dans le fichier "/usr/local/nagios/etc/commands.cfg", ainsi que la définition de la commande dans l'interface Web :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 define command{ command_name arduino_temp_sensor command_line /usr/bin/python $USER1$/cigne_plugin.py }
Partager