Ad Widget

Collapse

UserParameter always returns 0

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • jimmy4413
    Junior Member
    • Oct 2010
    • 12

    #1

    UserParameter always returns 0

    Hi all,

    I need to check if processes are running on a linux machine with a custom parameter that executes the simple script :

    TEST=$(ps auxw | grep $1 | grep -v grep | wc -l)
    if [ $TEST -eq 1 ]
    then
    echo 1
    else
    echo 0
    fi

    But when i create the item, the only value returned is 0, and when i execute the script manually, it returns 1......

    Here are the two relevant lines of my zabbix_agentd.conf :

    Server=svtczabap01p,svtczabap02p,10.56.163.28
    .....
    UserParameter=was.check[*],/etc/zabbix/scripts/was_status.sh "$1"

    ps : the server i use is 10.56.163.28 with RHEL5 and zabbix 1.6


    thanks for your replies!!
  • alixen
    Senior Member
    • Apr 2006
    • 474

    #2
    Hi,

    In my UserParameter definitions, I don't use quotes.

    Have you tried :
    UserParameter=was.check[*],/etc/zabbix/scripts/was_status.sh $1

    Regards,
    Alixen
    http://www.alixen.fr/zabbix.html

    Comment

    • jimmy4413
      Junior Member
      • Oct 2010
      • 12

      #3
      Je vois que tu es francais, je vais donc parler notre belle langue et non pas la langue roturière de shakespeare!!!
      Blague à part, je viens d'essayer ce que tu a exposé, mais le résultat est le meme......... Je ne comprend pas pourquoi j'ai un retour mais de 0

      merci de ta patience

      Comment

      • jimmy4413
        Junior Member
        • Oct 2010
        • 12

        #4
        en corrigeant ma faute d'orthographe : que tu AS exposé........

        Comment

        • alixen
          Senior Member
          • Apr 2006
          • 474

          #5
          Je ne suis pas sûr que passer au français soit une très bonne idée, ça restreint énormément les possibilités de réponse à ta question.
          je n'ai pas vraiment d'explication pour ton problème puisque "chez moi ça marche" .

          Ma suggestion n'a rien de spécifique à Zabbix, mais je te suggère d'ajouter des traces dans le script afin d'être sûr que le problème n'est pas à ce niveau.

          En ajoutant en début de script:
          set -x
          exec 2>>/tmp/monscript.log

          tu pourras vérifier dans /tmp/monscript.log si le script génère bien les bonnes valeurs lorsqu'il est appelé par l'agent Zabbix.

          Cordialement,
          Alixen
          http://www.alixen.fr/zabbix.html

          Comment

          • jimmy4413
            Junior Member
            • Oct 2010
            • 12

            #6
            Re-merci de ton retour,

            J'ai eu un eclair de génie......suggéré on va dire. J'ai remplacé les 'echo' dans mon script par des 'exit' -> résultat : 'not supported by zabbix agent'
            Voila mon nouveau script :


            TEST=$(ps auxw | grep $1 | grep -v grep | wc -l)
            if [ $TEST -eq 1 ]
            then
            exit 1
            else
            exit 0
            fi

            Merci de ton aide

            Comment

            • alixen
              Senior Member
              • Apr 2006
              • 474

              #7
              Originally posted by jimmy4413
              J'ai eu un eclair de génie......suggéré on va dire. J'ai remplacé les 'echo' dans mon script par des 'exit' -> résultat : 'not supported by zabbix agent'
              C'est normal.
              Le script doit retourner une valeur (c'est-à-dire écrire quelque chose sur sa sortie standard). En remplaçant les echo par des exit, ton script ne produit rien donc, vu de Zabbix, ne fonctionne pas d'où le "non supporté".

              Je réitère donc ma suggestion précédente d'ajouter des traces dans un fichier log. D'expérience, c'est le plus efficace pour mettre au point ce type de script.

              Cordialement,
              Alixen
              http://www.alixen.fr/zabbix.html

              Comment

              • jimmy4413
                Junior Member
                • Oct 2010
                • 12

                #8
                Re,

                J'ai replacé les echos dans le script, y aurait il un problème de version?
                j'utilise 1.6.6

                merci infiniment

                Comment

                • jimmy4413
                  Junior Member
                  • Oct 2010
                  • 12

                  #9
                  J'ai suivi tes conseils en ajoutant >>toto.log après la declaration de variable au debut du script, mais en vérifiant le log.....rien.
                  J'ai l'impression que le passage de la varaiable ne se fait pas correctement.

                  Encore merci et bon weekend

                  Comment

                  • alixen
                    Senior Member
                    • Apr 2006
                    • 474

                    #10
                    Pas d'expérience particulière avec 1.6.6 mais j'ai utilisé du 1.4.x, 1.6.2, 1.6.5, 1.8.1, 1.8.2, 1.8.3 et je n'ai jamais de problème dans Zabbix avec des UserParameter. Par contre, des scripts qui ne marchent pas du premier coup, c'est courant.

                    Au risque de passer pour un gros lourd, je ne saurais trop te conseiller d'ajouter des traces dans ton script; d'autant plus que je n'ai pas compris pourquoi il est si long.

                    Si tu veux t'assurer qu'un process tourne, la ligne:
                    Code:
                    ps auxw | grep $1 | grep -v grep | wc -l
                    devrait suffire.
                    Ton script, tel qu'il est écrit, retourne 1 uniquement si un seul process est actif et 0 si aucun ou plus d'un sont actifs.
                    A moins que j'aie mal compris ton besoin initial ("I need to check if processes are running").

                    Cordialement,
                    Alixen
                    http://www.alixen.fr/zabbix.html

                    Comment

                    • alixen
                      Senior Member
                      • Apr 2006
                      • 474

                      #11
                      Originally posted by jimmy4413
                      J'ai suivi tes conseils en ajoutant >>toto.log après la declaration de variable au debut du script, mais en vérifiant le log.....rien.
                      J'ai l'impression que le passage de la varaiable ne se fait pas correctement.
                      La ligne
                      Code:
                      set -x
                      est importante. Elle provoque le log de toutes les commandes exécutées dans le script. Sinon le fichier log sera vide à moins que tu ajoutes aussi des messages de debug du style:
                      Code:
                      echo 'bla bla' >&2
                      Cordialement,
                      Alixen
                      http://www.alixen.fr/zabbix.html

                      Comment

                      • jimmy4413
                        Junior Member
                        • Oct 2010
                        • 12

                        #12
                        Bonjour,

                        Le weekend ne m'a pas ammener la solution miracle.......J'ai ajouté un set -x
                        et un ">>toto.log" apres la commande "echo $1" pour voir quel parametre était passé par l'agent. Il se trouve que rien n'est passé en parametre.....ce qui explique la valeur retournée de 0.
                        As-tu deja rencontré ce problème?

                        Merci des retours

                        Comment

                        • jimmy4413
                          Junior Member
                          • Oct 2010
                          • 12

                          #13
                          Problème résolu!! Apparement, le fait d’exécuter des scripts par l'agent zabbix génère d'autres processus portant le nom du script.....vu que ce dernier utilise un paramètre, le nom du processus a vérifier, le script comptait plus d'un processus.......

                          Merci beaucoup de tes retours, et bonne continuation

                          Comment

                          Working...