Ad Widget

Collapse

zabbix agent - return wrong value

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • yujin777
    Junior Member
    • Jul 2017
    • 7

    #1

    zabbix agent - return wrong value

    Приветствую !

    У меня есть Жабикс сервер установленный в docker container:
    zabbix_server -V
    zabbix_server (Zabbix) 3.2.6 (2017-07-13)
    Revision 67849 4 May 2017, compilation time: Jul 13 2017 14:38:43




    Есть скрипт - который кое-что проверяет.
    Его дергает zabbix_agent active.

    Когда запускаешь его из консоли под юзером zabbix - он работает правильно и возвращает 0 или 1.

    [root@zabbix-agent-sipp scripts]# ./sip_opt_chk.sh 8.8.8.8
    1


    Когда его дергает zabbix_agent - он возвращает странный набор символов: 103:20170717:204926.163 zbx_popen(): executing script 1

    Соответсвенно item у меня стоял numeric - но после получения такого значения - он становился not supported. Я поставил тип данных на item = text, теперь он выполняется без ошибки и я вижу эти странные данные.

    В логах самого zabbix_server - видно следующе:
    64:20170717:204325.523 trapper got '{"request":"agent data","data":[{"host":"zabbix-agent-sipp","key":"sipp.check_options[\"8.8.8.8\"]","value":" 87:20170717:204324.211 zbx_popen(): executing script\n1","clock":1500324204,"ns":522952253}],"clock":1500324205,"ns":523651618}'



    я взял самый простой скрипт который может быть:
    ------------------------------
    cat sip_opt_chk.sh
    #!/bin/bash

    echo 0

    ------------------------------

    В консоли он возвращает нормальное значение:
    root@voip-zabbix:/docker/zabbix/sipp/etc/scripts# ./sip_opt_chk.sh
    0


    В логах вот такое:
    Jul 18 06:34:32 voip-zabbix 410ef7e1d86e[30511]: 364:20170718:063432.542 trapper got '{"request":"agent data","data":[{"host":"zabbix-agent-sipp","key":"sipp.check_options[\"8.8.8.8\"]","value":" 698:20170718:063431.539 zbx_popen(): executing script\n0","clock":1500359671,"ns":541202649}],"clock":1500359672,"ns":541955387}'

    При этом выполнял те же скрипты через zabbix external scripts - результат тот же.

    Плиз хелп !
  • Kos
    Senior Member
    Zabbix Certified SpecialistZabbix Certified Professional
    • Aug 2015
    • 3404

    #2
    Originally posted by yujin777
    Когда запускаешь его из консоли под юзером zabbix - он работает правильно и возвращает 0 или 1.

    [root@zabbix-agent-sipp scripts]# ./sip_opt_chk.sh 8.8.8.8
    1


    Когда его дергает zabbix_agent - он возвращает странный набор символов: 103:20170717:204926.163 zbx_popen(): executing script 1
    Судя по процитированному, пробуете запускать этот скрипт Вы всё же не "под юзером zabbix", а от root-а.
    Убедитесь, пожалуйста, что скрипт нормально запускается именно от пользователя zabbix. Например:
    Code:
    [root@zabbix-agent-sipp scripts]# su - zabbix
    [zabbix@~]$ cd нужнаяДиректория
    [zabbix@zabbix-agent-sipp scripts]$ ./sip_opt_chk.sh 8.8.8.8

    Comment

    • yujin777
      Junior Member
      • Jul 2017
      • 7

      #3
      zabbix_agent docker контейнер был создан вот так

      Суть проблеммы в следующем:

      Посылаю команду на хост zabbix-agent-sipp:

      Code:
      [root@zabbix-server etc]# zabbix_get -s zabbix-agent-sipp  -k "sipp.check_options[8.8.8.8]"
          92:20170718:085131.702 zbx_popen(): executing script
      1

      И на самом агенте:
      Code:
      [root@zabbix-agent-sipp zabbix]# sudo -u zabbix zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf -t sipp.check_options[8.8.8.8]
      sipp.check_options[8.8.8.8]                   [t|1]


      проблема в лишней строке "92:20170718:085131.702 zbx_popen(): executing script".
      Last edited by yujin777; 18-07-2017, 10:58.

      Comment

      • Kos
        Senior Member
        Zabbix Certified SpecialistZabbix Certified Professional
        • Aug 2015
        • 3404

        #4
        С контейнерами, к сожалению, не помогу - я с ними пока что не разбирался.

        Пока что выглядит так, что либо баг, либо ошибка конфигурации.
        Фраза "zbx_popen(): executing script" в исходниках присутствует только в одном месте - в файле src/libs/zbxexec/execute.c, в конце функции
        zbx_popen():
        Code:
                zabbix_log(LOG_LEVEL_DEBUG, "%s(): executing script", __function_name);
        
                execl("/bin/sh", "sh", "-c", command, NULL);
        
                /* execl() returns only when an error occurs */
                zabbix_log(LOG_LEVEL_WARNING, "execl() failed for [%s]: %s", command, zbx_strerror(errno));
                exit(EXIT_SUCCESS);
        Видимо, часть отладочного вывода при запуске агента с параметром "-f" попадает не туда, куда подразумевается.
        С другой стороны, этот вывод должен идти только при выставленном DebugLevel=4. Проверьте свой конфиг-файл агента и попробуйте уменьшить уровень вывода до стандартного 3.

        Comment

        • yujin777
          Junior Member
          • Jul 2017
          • 7

          #5
          https://stackoverflow.com/questions/...nal-check-json

          Code:
          This is bug. When DebugLevel is more than 3 Zabbix mix part of the debug output with the value data. Something like zbx_popen(): executing script. Solution to reduce DebugLevel to 3 or lower, and wait until ZBX-12195 will be fixed.

          Comment

          • yujin777
            Junior Member
            • Jul 2017
            • 7

            #6
            Судя по всему это баг Zabbix Server ?
            я пробовал сделать DebugLevel=1 - перезапустил ZS - результат то же (

            Comment

            • Kos
              Senior Member
              Zabbix Certified SpecialistZabbix Certified Professional
              • Aug 2015
              • 3404

              #7
              Нет, это баг Zabbix-агента. Вы же на нём пытаетесь скрипт выполнить?
              Проверьте свой конфиг-файл агента и попробуйте уменьшить уровень вывода до стандартного 3.

              Comment

              • yujin777
                Junior Member
                • Jul 2017
                • 7

                #8
                да - действительно, понизил уровень отладки на агенте, и стало нормально !
                Спасибо !


                Поставил след значения:
                Code:
                DebugLevel=0
                EnableRemoteCommands=0
                LogRemoteCommands=0
                не знаю точно что из этого помогло.

                Странно что когда запускал данный скрипт на сервере агента - ошибку тоже не выдавало:
                Code:
                sudo -u zabbix zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf -t sipp.check_options[8.8.8.8]
                sipp.check_options[8.8.8.8]                   [t|1]
                Но, когда я запускал этот же скрипт через External checks - то была таже проблема, тоесть баг есть похоже и на сервере ?

                Comment

                • yujin777
                  Junior Member
                  • Jul 2017
                  • 7

                  #9
                  Подтверждаю - когда DebugLevel > 3 на агенте, то баг начинает появляться.

                  Comment

                  Working...