Ad Widget

Collapse

Не работает внешняя проверка

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Serj47
    Junior Member
    • Jul 2018
    • 6

    #1

    Не работает внешняя проверка

    Достался zabbix на freebsd.
    В случае запуска забикса из автозагрузки как сервиса не работает внешняя проверка. Нет доступа к серверу сейчас, завтра будет,скажу точнее.
    Если же остановить сервис и запустить заббикс из терминала под рутом zabbix_server, то все работает.
    Скрипту даны права на чтение запуск для всех.
    Гдето читал что возможно причина в различиях переменных сред в ос, но до конца не понял.
    Также заметил что в /etc/passwd у пользователя zabbix используется /.../sh , a в терминале у меня /.../bash, и если в баше терминале попробовать sh scriptname, то скрипт возвращает ошибку, а в баше ./ scriptname норм.
    Скрипт взят отсюда-https://habr.com/post/229539/





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

    #2
    К сожалению, не вижу текст самого скрипта (на работе закрыт достп к файлообменникам).
    Однако, если скрипт рассчитан на конкретный интерпретатор, то обычно это указывается первой строкой скрипта в комментарии специального вида.

    Comment

    • Serj47
      Junior Member
      • Jul 2018
      • 6

      #3
      оригинальный скрипт во вложении. только в моем случае пришлось поправить путь к интерпретатору на !/usr/local/bin/bash.

      такие однотипные сообщения в логах если забикс запускается как служба:
      31892:20180731:155823.888 error reason for "Kyocera2535.SRUiE:get_kyocera_counters.sh[{HOST.CONN},accounting_print_black_and_white_copy_ counter]" changed: Timeout while executing a shell script.

      если же стартовать заббикс рутом из терминала просто командой zabbix_server то все норм работает.. а в логах такое..
      8389:20180731:160350.279 item "Kyocera2535.RUiUE:get_kyocera_counters.sh[{HOST.CONN},device_life_counter]" became supported

      p.s. из под любого пользователя скрипт выполняется нормально в терминале ./get_kyocera_counters.sh ответ приходит за 1-2-3 секунды, таймаут на выполнение внешних проверок в конфигурационном файле заббикса=10сек
      Attached Files
      Last edited by Serj47; 31-07-2018, 15:26.

      Comment

      • wins
        Senior Member
        • Sep 2014
        • 307

        #4
        А что отдает скрипт если его запустить от имени юзера заббикс-сервера? sudo -u zabbix-server /path/to/script например.

        Comment

        • Serj47
          Junior Member
          • Jul 2018
          • 6

          #5
          В /etc/passwd есть пользователь zabbix:*:122:122:Zabbix NMS:/nonexistent:/bin/sh , я так понимаю что им авторизоваться в систему не получится он же nonexistent? у меня по крайней мере не получилось, известные мне пароли к нему не подходят.
          для проверки работоспособности скрипта от обычного пользователя, создал нового "user" от него скрипт работает.

          Comment

          • nik.kgn
            Junior Member
            • Jun 2017
            • 26

            #6
            А какие права на скрипт стоЯт? Может просто пользователю zabbix прав на выполнение не хватает?
            В файле /etc/passwd указывается конкретная оболочка пользователя, это его "рабочая оболочка при логине", и никак не влияет на команду, прописанную в скрипте. В скрипте прописывается тот процесс, который будет выполнять данный скрипт. Вот если пользователю zabbix нельзя запускать bash, то он и скрипт не выполнит. А в данном случае в скрипте можете спокойно, по моему мнению, сменить bash на sh для чистоты эксперимента

            Comment

            • Serj47
              Junior Member
              • Jul 2018
              • 6

              #7
              Для чистоты на скрипт установлены права "777"(-rwxrwxrwx). Изменил в скрипте bash на sh, теперь из терминала тоже не работает, выдает:
              get_kyocera_counters.sh: 23: Syntax error: word unexpected (expecting ")")
              23 строка:
              if [[ (-z "$1") || (-z "$2") ]]

              Comment

              • wins
                Senior Member
                • Sep 2014
                • 307

                #8
                Я бы для начала отладил скрипт. А еще лучше - переделать проверки на snmp. Внешние скрипты, если долго выполняются, могут некисло увеличить очередь в заббиксе.

                Comment

                • Serj47
                  Junior Member
                  • Jul 2018
                  • 6

                  #9
                  Не все нужные счетчики аппарат отдает по snmp, часть приходят в xml по http. Всегда думал что скрипту фиолетово sh или bash...

                  Comment

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

                    #10
                    Originally posted by serj47
                    всегда думал что скрипту фиолетово sh или bash...
                    а зря. синтаксическая конструкция с удвоенными квадратными скобками - башевское расширение, posix-шеллом не поддерживается. да и вообще на тему переносимости шелловских конструкций тут очень много полезного, рекомендую.

                    Comment

                    Working...