Ad Widget

Collapse

Автоматический запуск скриптов Zabbix (Срабатывание триггера).

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • shamil@it-openspace.ru
    Junior Member
    • Jun 2024
    • 8

    #1

    Автоматический запуск скриптов Zabbix (Срабатывание триггера).

    Всем добрый день.

    Имеется следующая инфраструктура:
    • 2 ноды в режиме кластера Zabbix Server
    • 1 нода Zabbix Proxy, которая обслуживает часть инфраструктуры
    • Сервер на CentOS 7 с установленным Zabbix Agent2

    Настроены автоматические действия при срабатывании триггера (ОЗУ > 90%). При срабатывании триггера должен запускаться скрипт на стороне Zabbix Agent2.

    Однако, при срабатывании триггера выполнение скрипта завершается со статусом "Неудачно", при этом ошибка не указывается.

    Что было проверено:
    1. Включен расширенный вывод ошибок на стороне агента - в логах ошибок нет.
    2. Логи на стороне прокси и сервера также чисты.
    3. В конфигурации агента настроена опция для выполнения удалённых скриптов (по документации).
    4. Пользователю zabbix разрешено выполнение команд.
    5. При выполнении скрипта вручную через веб-интерфейс он отрабатывает корректно, без ошибок и таймаутов.

    Может кто-то сталкивался с подобной проблемой или знает, в чем может быть причина?

    Заранее благодарю за любую помощь.
  • Kos
    Senior Member
    Zabbix Certified SpecialistZabbix Certified Professional
    • Aug 2015
    • 3404

    #2
    К сожалению, информации маловато.
    • С какой версией Zabbix работаете (сервер, прокси, агент)?
    • Ваш Zabbix Agent 2 настроен на работу в активном режиме, в пассивном режиме, в обоих режимах?
    • Ваш Zabbix Agent 2 работает через Zabbix прокси или же напрямую с Zabbix сервером?
    • Если используется прокси, то работает ли он с сервером в активном режиме или в пассивном?
    • Каким образом оформлен скрипт, который должен выполняться на стороне Zabbix агента? Что в настройках этого скрипта указано в параметрах "Область" (scope), "Тип" (Type), "Выполнение на" (Execute on)? Мне кажется, что настройки скрипта для запуска через веб-интефейс и для запуска в качестве действия - взаимоисключающие.
    • Что именно и как настраивалось в конфигурации агента? Слова "настраивалось по документации" без ссылок на конкретную страницу конкретной версии документации примерно настолько же информативны, как сказать "нашёл инструкцию в Интернете"...
    Last edited by Kos; 09-07-2024, 09:09. Reason: опечатки

    Comment

    • shamil@it-openspace.ru
      Junior Member
      • Jun 2024
      • 8

      #3
      Originally posted by Kos
      К сожалению, информации маловато.
      • С какой версией Zabbix работаете (сервер, прокси, агент)?
      • Ваш Zabbix Agent 2 настроен на работу в активном режиме, в пассивном режиме, в обоих режимах?
      • Ваш Zabbix Agent 2 работает через Zabbix прокси или же напрямую с Zabbix сервером?
      • Если используется прокси, то работает ли он с сервером в активном режиме или в пассивном?
      • Каким образом оформлен скрипт, который должен выполняться на стороне Zabbix агента? Что в настройках этого скрипта указано в параметрах "Область" (scope), "Тип" (Type), "Выполнение на" (Execute on)? Мне кажется, что настройки скрипта для запуска через веб-интефейс и для запуска в качестве действия - взаимоисключающие.
      • Что именно и как настраивалось в конфигурации агента? Слова "настраивалось по документации" без ссылок на конкретную страницу конкретной версии документации примерно настолько же информативны, как сказать "нашёл инструкцию в Интернете"...
      1. 7.0 LTS
      2. Агент работает с пассивными проверками (Template Linux by Zabbix Agent)
      3. Агент работает через прокси
      4. Прокси работает в активном режиме
      5. Вам правильно кажется, у меня есть два скрипта с одним кодом содержимого. Один нужен был для проверки самой команды и взаимодействия с Zabbix, работает без проблем
      Проблемный вот какой у нас
      Выполнять на - Zabbix Agent
      Код sudo echo 1 > /var/log/needrestart.log
      Тип Скрипт
      В действиях указано "на текущем узле сети"
      6. По документации, это означает
      а. Разрешить в конфигах Server=список серверов, которые будут отправлять команды
      б. AllowKey опция активирована, на время работы сделано полное разрешение
      в. Пользователю Zabbix разрешили sudo без ввода пароля

      Comment

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

        #4
        Я пока что по-прежнему не вижу причины такого поведения.
        Попробуйте проверить следующие вещи (может, найдётся какая-то зацепка):
        • в конфиг-файле агента включить параметр "LogRemoteCommands=1" (и перезапустить агента) - тогда, по крайней мере, в логах агента будет видно, пытался ли он вообще что-либо запускать;
        • в веб-интерфейсе зайти в раздел "Отчёты" -> "Журнал действий", может там есть какие-то сообщения об ошибках;
        • ещё раз зайти в раздел настроек скрипта ("Оповещения" -> "Скрипты" -> конкретный скрипт) и убедиться, что заполнено поле "Группа узлов сети", а в графе "Выполнение на" в конце НЕ стоит жёлтого значка предупреждения "Выполнение глобальных скриптов на Zabbix сервере отключено конфигурацией сервера."

        Comment

        • shamil@it-openspace.ru
          Junior Member
          • Jun 2024
          • 8

          #5
          Originally posted by Kos
          Я пока что по-прежнему не вижу причины такого поведения.
          Попробуйте проверить следующие вещи (может, найдётся какая-то зацепка):
          • в конфиг-файле агента включить параметр "LogRemoteCommands=1" (и перезапустить агента) - тогда, по крайней мере, в логах агента будет видно, пытался ли он вообще что-либо запускать;
          • в веб-интерфейсе зайти в раздел "Отчёты" -> "Журнал действий", может там есть какие-то сообщения об ошибках;
          • ещё раз зайти в раздел настроек скрипта ("Оповещения" -> "Скрипты" -> конкретный скрипт) и убедиться, что заполнено поле "Группа узлов сети", а в графе "Выполнение на" в конце НЕ стоит жёлтого значка предупреждения "Выполнение глобальных скриптов на Zabbix сервере отключено конфигурацией сервера."
          1. Выполнено. Подождем следующего срабатывания триггера и соответственно повторной ошибки
          2. В журнале (отчеты) неинформативная запись
          10.07.2024 22:15:05 Freeswitch Проблема Действие Команда:
          callswitch1-node2:sudo echo 1 > /var/log/needrestart.log
          Неудачно
          3. Проверил, все ок. Никаких "желтых" значков или предупреждений. Скрипты с действиями автоматические на серверах Windows с агентами срабатывают корректно.

          Comment

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

            #6
            Честно говоря, меня немного смущает само содержимое скрипта:
            Code:
            sudo echo 1 > /var/log/needrestart.log
            Насколько хватает моих познаний, тут в файл идёт перенаправление того, что выдаётся командой sudo, т.е. вывод команды "echo 1". Другими словами, с повышенными привилегиями выполняется лишь команда "echo 1" (для которой особые привилегии-то и не нужны), а перенаправление выполняется шеллом от имени того пользователя, от которого запущен агент (обычно "zabbix"). У него точно есть права (пере)создавать файл в папке /var/log/ ? До выполнения скрипта там файл с таким именем уже есть или он создаётся как новый?

            Comment

            • shamil@it-openspace.ru
              Junior Member
              • Jun 2024
              • 8

              #7
              Originally posted by Kos
              Честно говоря, меня немного смущает само содержимое скрипта:
              Code:
              sudo echo 1 > /var/log/needrestart.log
              Насколько хватает моих познаний, тут в файл идёт перенаправление того, что выдаётся командой sudo, т.е. вывод команды "echo 1". Другими словами, с повышенными привилегиями выполняется лишь команда "echo 1" (для которой особые привилегии-то и не нужны), а перенаправление выполняется шеллом от имени того пользователя, от которого запущен агент (обычно "zabbix"). У него точно есть права (пере)создавать файл в папке /var/log/ ? До выполнения скрипта там файл с таким именем уже есть или он создаётся как новый?
              Тут все нормально. Если бы скрипт выполнялся с ошибкой, там в отчете было бы сообщение из разряда (Ожидаю ввода пароля, или не удается получить доступ). Проблема не тут. Для zabbix я разрешил sudo без ввода пароля в /etc/sudoers.d

              Comment

              • shamil@it-openspace.ru
                Junior Member
                • Jun 2024
                • 8

                #8
                Originally posted by [email protected]

                Тут все нормально. Если бы скрипт выполнялся с ошибкой, там в отчете было бы сообщение из разряда (Ожидаю ввода пароля, или не удается получить доступ). Проблема не тут. Для zabbix я разрешил sudo без ввода пароля в /etc/sudoers.d
                Сдаюсь
                Повторно дошли до действия триггера
                В логах ни на сервере ни на агенте записей нет
                То есть скрипт не выполнился с ошибкой, а не выполнился в принципе, иначе какие то записи все же были бы
                К сожалению не знаю, как решить такой вопрос

                При ручном выполнии через веб Zabbix
                callswitch1-node2 zabbix_agent2[25891]: [SystemRun] Executing command:'sudo echo 1 > /var/log/needrestart.log'
                При автоматике данной записи нет
                Last edited by [email protected]; 14-07-2024, 09:53.

                Comment

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

                  #9
                  Originally posted by [email protected]
                  Сдаюсь
                  Повторно дошли до действия триггера
                  В логах ни на сервере ни на агенте записей нет
                  То есть скрипт не выполнился с ошибкой, а не выполнился в принципе, иначе какие то записи все же были бы
                  К сожалению не знаю, как решить такой вопрос
                  А в журнале аудита при этом запись, всё же, есть? Процитируйте её, пожалуйста, полностью, включая содержимое поля "Details"/"Детали".
                  И покажите, пожалуйста, скриншоты настроек: а) скрипта, б) действия; а также что видно на экране проблем после срабатывания триггера (в том числе, что видно при наведении указателя мыши на поле "Actions"/"Действия" напротив этой проблемы), и далее - что видно после нажатия на этом экране на линк с датой возникновения проблемы.

                  Comment

                  • shamil@it-openspace.ru
                    Junior Member
                    • Jun 2024
                    • 8

                    #10
                    Originally posted by Kos
                    А в журнале аудита при этом запись, всё же, есть? Процитируйте её, пожалуйста, полностью, включая содержимое поля "Details"/"Детали".
                    И покажите, пожалуйста, скриншоты настроек: а) скрипта, б) действия; а также что видно на экране проблем после срабатывания триггера (в том числе, что видно при наведении указателя мыши на поле "Actions"/"Действия" напротив этой проблемы), и далее - что видно после нажатия на этом экране на линк с датой возникновения проблемы.
                    Click image for larger version

Name:	image.png
Views:	1253
Size:	22.7 KB
ID:	487499

                    Деталей нет, от слова совсем
                    Вот при выполнении
                    Click image for larger version

Name:	image.png
Views:	1247
Size:	100.4 KB
ID:	487500
                    Сам скрипт
                    Click image for larger version

Name:	image.png
Views:	1246
Size:	40.7 KB
ID:	487501

                    Вот так сделано в действиях


                    Click image for larger version

Name:	image.png
Views:	1251
Size:	48.8 KB
ID:	487502
                    Click image for larger version

Name:	image.png
Views:	1247
Size:	32.0 KB
ID:	487503

                    Comment

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

                      #11
                      Originally posted by [email protected]

                      Деталей нет, от слова совсем
                      Вот при выполнении
                      Это журнал действий, а не журнал аудита.
                      Впрочем, не факт, что в журнал аудита в этом случае вообще что-то пишется... по крайней мере, в версии 6.0 пишется только информация о скриптах, запущенных вручную через веб-интерфейс; но в версии 7.0, вроде бы, обещали это улучшить. Я надеялся, что там будет что-то видно.
                      А если на экране проблем нажать на дату возникновения проблемы - то там что видно?

                      Comment

                      • shamil@it-openspace.ru
                        Junior Member
                        • Jun 2024
                        • 8

                        #12
                        Originally posted by Kos
                        Это журнал действий, а не журнал аудита.
                        Впрочем, не факт, что в журнал аудита в этом случае вообще что-то пишется... по крайней мере, в версии 6.0 пишется только информация о скриптах, запущенных вручную через веб-интерфейс; но в версии 7.0, вроде бы, обещали это улучшить. Я надеялся, что там будет что-то видно.
                        А если на экране проблем нажать на дату возникновения проблемы - то там что видно?
                        К сожалению ничего такого, за что можно было бы зацепиться.

                        Comment

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

                          #13
                          На экране события (который открывается при нажатии на дату начала проблемы на экране проблем) у меня, по крайней мере, есть информация о том, что сервером автоматически запускался скрипт; причём с результатом выполнения (а в случае ошибок в графе "Инфо" светится красная пометка, при наведении на которую видны какие-то подробности этой ошибки), см. скриншот. А у вас там что видно? Видно ли, что данный шаг хотя бы пытался быть выполненным?
                          Click image for larger version  Name:	screenshot-2024-07-15_01.png Views:	0 Size:	64.3 KB ID:	487537

                          Comment

                          • shamil@it-openspace.ru
                            Junior Member
                            • Jun 2024
                            • 8

                            #14
                            Originally posted by Kos
                            На экране события (который открывается при нажатии на дату начала проблемы на экране проблем) у меня, по крайней мере, есть информация о том, что сервером автоматически запускался скрипт; причём с результатом выполнения (а в случае ошибок в графе "Инфо" светится красная пометка, при наведении на которую видны какие-то подробности этой ошибки), см. скриншот. А у вас там что видно? Видно ли, что данный шаг хотя бы пытался быть выполненным?
                            Click image for larger version Name:	screenshot-2024-07-15_01.png Views:	0 Size:	64.3 KB ID:	487537
                            Да видно.
                            Написано неудачно, но почему не написано

                            На данной системе сделал обходной вариант через выполнение вместо на агенте Zabbix скрипта, сделан ssh с аналогичной командой.
                            Теперь отрабатывает корректно
                            Click image for larger version

Name:	image.png
Views:	1276
Size:	8.1 KB
ID:	487574

                            Возможно все же есть какие то проблемы с Zabbix Agent2 и Centos7 (у меня эта связка в единственном экземпляре)
                            Другие ОС (Ubuntu Windows) корректно выполняют свои автоматические действия, а если есть ошибка, то пишут ее

                            Comment

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

                              #15
                              Ещё мысль по вашей проблеме.
                              А было ли что-нибудь в логах Zabbix прокси? И включён ли в его конфиг-файле параметр EnableRemoteCommands (ссылка, по умолчанию он выключен)?

                              Comment

                              Working...