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/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
}