Ad Widget

Collapse

Не отрабатывает экшн триггер по преднастроенному периоду срабатывания по времени

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • AnatoliyS
    Junior Member
    • Nov 2022
    • 5

    #1

    Не отрабатывает экшн триггер по преднастроенному периоду срабатывания по времени

    Здравствуйте,

    настроен экшн триггер на период срабатывания по времени и к нему прикреплен скрипт. Скрипт запускается иногда, но в большей части - нет. Если увеличить период времени срабатывания экшн триггера, то скрипт отрабатывает по нескольку раз за предустановленный период, что, собственно, и не нужно, нужно - чтобы скрипт запускался только один раз. Если уменьшить период времени срабатывания экшн триггера, то скрипт вообще не запускается.

    В связи с эти два вопроса:
    1) С чем связано такое поведение системы?
    2) Если ли другой альтернативный способ автоматического запуска скрипта, например, один раз в определенное время суток каждый день?

    ​​






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

    #2
    Очень интересно, но непонятно. В первую очередь, непонятно, что подразумевается под загадочным термином "экшн триггер".
    Подозреваю, что речь идёт не об action triggers, а наоборот - о trigger actions, т.е. действиях на триггеры. Ситуацию мог бы прояснить, например, скриншот настроек того, о чём идёт речь.
    Ну и нехорошей традицией является не указывать версию Zabbix (а в разных версиях и возможности, и настройки, и веб-интерфейс могут довольно сильно отличаться).
    Если ли другой альтернативный способ автоматического запуска скрипта, например, один раз в определенное время суток каждый день?
    Разумеется. Добавить запуск этого скрипта в планировщик операционной системы на той машине, где он должен запускаться (cron на UNIX/Linux, Scheduler на Windows). Только причём тут Zabbix?
    Но если так уж хочется сделать это именно средствами Zabbix, то тоже можно:
    • на том узле сети, где нужно запускать скрипт, создаёте триггер, который будет срабатывать по таймеру в заданное время (используя триггерную функцию time() и какой-либо ещё элемент данных с фиктивной проверкой, не влияющей на результат);
    • настраиваете скрипт (документация для версии 6.0);
    • создаёте действие на этот триггер, которое при его срабатывании будет запускать на соответствующем узле сети предварительно настроенный скрипт.

    Comment

    • Hamardaban
      Senior Member
      Zabbix Certified SpecialistZabbix Certified Professional
      • May 2019
      • 2713

      #3
      Originally posted by AnatoliyS
      Если ли другой альтернативный способ автоматического запуска скрипта, например, один раз в определенное время суток каждый день?
      Дополню написанное коллегой Kos: если прям нужно через zabbix - то можно сделать создав элемент данных с ключом system.run[] (но этого ключа может не быть в вашей версии если она старая) или используя UserParameter и настроить интервал обновления на выполнение по расписанию. Все подробности есть в документации.




      Comment

      • AnatoliyS
        Junior Member
        • Nov 2022
        • 5

        #4
        Странно, я все скрины вкладывал.

        Ну ладно, вкладываю повторно.

        Спасибо за информацию, буду пробовать.
        Attached Files

        Comment

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

          #5
          Originally posted by AnatoliyS
          Странно, я все скрины вкладывал.

          Ну ладно, вкладываю повторно.
          Посмотрел скрины, спасибо.
          Действительно, версия 6.0.20; речь идёт о действиях на триггеры.

          Главная ошибка заключается в следующем. Действия на триггеры, как следует из названия, предназначены для настройки реакции на срабатывание какого-либо триггера. Но в ваших условиях не указано, на какие именно триггеры это действие должно реагировать. Там есть только диапазон времени (период). Вот действие и отрабатывает на любой триггер, который сработает в указанный период (любые - по любому поводу и на любом хосте). Вот и получается: сработает хоть какой-то триггер в указанный период - запустится это действие (если попало несколько триггеров - так и несколько раз), ну а нет - так и нет.

          Соответственно, правильный подход мог бы быть, например, таким:
          • настроить мониторинг интересующего вас параметра (к примеру, процент использования кэша memcached);
          • настроить триггер по этому параметру (например, срабатывать, когда этот процент превышает какое-то пороговое значение);
          • уже к этому триггеру привязать ваше действие. При этом в действии можно отметить "Current host", тогда оно будет выполняться именно на том хосте, где сработал триггер. Тогда то же действие можно настроить на срабатывание триггеров на нескольких разных хостах.
          Возможны и другие варианты, о них уже написали выше (например, запускать действие тупо по таймеру); выбирать в любом случае вам.
          Last edited by Kos; 14-09-2023, 14:04.

          Comment

          • Semiadmin
            Senior Member
            • Oct 2014
            • 1625

            #6
            Оригинально. Вообще без триггера, на одном только условии "Time period​" в действии?
            Насколько я понимаю, это работает так: действие срабатывает, если в оный период зажегся любой триггер. Если не успел зажечься ни один - не срабатывает вообще, если успели несколько - срабатывает несколько раз.
            P.S. Как обычно - пока писал, коллега Kos уже ответил

            Comment

            • AnatoliyS
              Junior Member
              • Nov 2022
              • 5

              #7
              Спасибо.

              Попробую предложенные варианты по результатам отпишусь.

              Comment

              • AnatoliyS
                Junior Member
                • Nov 2022
                • 5

                #8
                Добрый день,

                в продолжение темы.

                Настроил:
                1) триггер по функции time() и элементу данных. Действие на триггерах, по настроенному и по предустановленному триггеру (превышение 90% использования memcach), срабатывает скрипт и рассылка.
                2) элемент данных, который считывает данные в определенный период времени (хороший вариант). Триггер на результат, возвращаемый элементом данных. И действие на триггере, при котором выполняется рассылка.
                3) вариант через UserParameter не настраивал, но тоже интересный вариант.
                Attached Files

                Comment

                Working...