Problème : (Return code 127 is out of bounds) plugin may be missing
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 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:
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:
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:
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 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:
1 2 3 4
| define command{
command_name arduino_temp_sensor
command_line /usr/bin/python $USER1$/cigne_plugin.py
} |