Announcement

Collapse
No announcement yet.

Probleme création plugin

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Probleme création plugin

    Bonjour,

    J'ai créé un petit script en Java pour tester une connexion via le driver JDBC.

    J'execute ce script par une commande :
    $USER1$/JdbcThinCheckup/check_jdbc_connect_oracle $ARG1$ $ARG2$ $HOSTADDRESS$:$ARG3$:$ARG4$

    La commande fonctionne bien quand je la lance en console et me renvoi :
    OK : connected.
    Hello World - from THIN Driver
    Your JDBC installation is correct.

    ou

    CRITICAL : erreur retournée


    Le soucis c'est que dans centreon le service est en WARNING et sont statut est (null).

    Je pensais que le statut etait generé en fonction de ce qu'affichais la commande, j'ai du me tromper.

    Que dois ajouter au fichier qui execute le java ?

    Merci
    RoulienDeLaVegas
    Member
    Last edited by RoulienDeLaVegas; 18 February 2010, 22:30.

  • #2
    Non le statut n'as rien a voir avec le message de sortie mais le code de retour.

    Merci de lire la doc de Nagios sur la création de plugins : http://nagios.sourceforge.net/docs/3_0/pluginapi.html
    Centreon Syslog Module Manager/Developper
    Centreon E2S Module Manager/Developper
    Centreon Enterprise Server (2.x / 3.x) : Centreon Engine 1.3.x / 1.4.x, Centreon Broker 2.6.x / 2.8.x , Centreon 2.x, Centreon-Syslog 1.5.x, Centreon E2S 2.0
    Nagios 3.x et NDOutil 1.x

    Comment


    • #3
      Merci pour ta réponse, j'ai donc modifié mon script pour retourner 0 ou 2 selon les deux cas.

      Par contre comment je fait pour retourner le résultat, pour avoir l'erreur par exemple.

      Pour l'instant je fait exit 0, mais j'ai une variable $SERVICEOUTPUT qui contient le resultat complet, je fais comment pour l'afficher ?

      Bonne soirée

      Comment


      • #4
        je comprends plus rien, je n'arrive toujours pas à avoir le statut dans Centreon, qui remonte en CRITICAL avec comme retour (null).

        En console j'ai un résultat qui est correct.
        Tous les fichiers ont pour propriétaire nagios:nagiosgrp, le repertoire contenant le plugin également

        Voici le script :
        Code:
        #!/bin/sh
        
        STATE_OK=0
        STATE_WARNING=1
        STATE_CRITICAL=2
        STATE_UNKNOWN=3
        STATE_DEPENDENT=4
        
        rm -f JdbcThinCheckup.tmp
        rm -f JdbcThinCheckup.tmp2
        
        java -classpath .:/usr/local/nagios/libexec/JdbcThinCheckup/ojdbc14.jar JdbcThinCheckup $1 $2 $3 > JdbcThinCheckup.tmp
        
        
        # Mise sur une seule ligne du retour du script de connexion Java
        tr -d '\n' < JdbcThinCheckup.tmp > JdbcThinCheckup.tmp2
        
        # Récupération du résultat
        SERVICEOUTPUT=$(cat JdbcThinCheckup.tmp2)
        
        # Analyse du résultat
        PATTERN=OK
        if echo $SERVICEOUTPUT | grep -qF $PATTERN
        then
        # echo $SERVICEOUTPUT
         exit $STATE_OK
        else
        # echo $SERVICEOUTPUT
         exit $STATE_CRITICAL
        fi

        Comment


        • #5
          Bonjour,

          Désolé de relancer, mais toujours un (No output returned from plugin), je comprend pas car je renvoi bien 0 ou 2

          Comment


          • #6
            Et dans ton test en ligne de commande, ton user nagios n'a pas de variable d'environnement positionné qui sont utilisées? (Genre JAVA_HOME ou un truc du genre)?
            Auteur de Shinken, outil de supervision compatible avec Nagios et orientée supervision distribuée hautement disponible et mulitplateforme.

            Comment


            • #7
              Merci pour ta réponse.

              Après vérification, non, l'utilisateur Nagios a les même variable que les autre utilisateurs, et pas de JAVA_HOME de defini.

              Par contre je me demande si ça ne serait pas à cause des quote qui sont ajoutées autour des arguments :
              ma commande est :
              $USER1$/JdbcThinCheckup/check_jdbc_connect_oracle $ARG1$ $ARG2$ $HOSTADDRESS$:$ARG3$:$ARG4$
              du coup quand je créé un service il met :
              $USER1$/JdbcThinCheckup/check_jdbc_connect_oracle 'USER' 'PWD' xx.xx.xx.xx:'port':'SID'

              En console j'ai testé avec cette syntaxe et ça marche aussi...

              Comment


              • #8
                Bonjour,

                Problème résolu ! Merci pour votre aide.

                Le soucis venait des chemin que je défini dans mon fichier, je les ai passé de relatif à absolu et la ça fonctionne.

                Je cherchais compliqué alors que c'était tout simple...

                Bonne journée

                Comment

                Working...
                X