Ad Widget

Collapse

Генерация ОК по времени

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • danmen
    Junior Member
    • Jul 2021
    • 11

    #1

    Генерация ОК по времени

    Всем привет.

    Ищу помощи по следующей задаче, есть триггер который в день срабатывает много раз, режим генерации события ПРОБЛЕМА - множественный, необходимо что бы генерация ОК происходила по времени. Допустим, сработало 2 триггера в 11:00 и 12:00, а спустя 5 часов с момента срабатывания триггера он закрывался, т.е. первый триггер закроется в 16:00, второй в 17:00.
    Возможно ли такое реализовать?
  • johndoe2374
    Member
    • Aug 2021
    • 80

    #2
    Приветствую. А можете показать, как приблизительно триггер выглядит?

    Может не совсем то, но бился с похожей задачей - надо было мониторить попадание в журнал Windows события с определённым ID. Использовал подобный триггер:
    Code:
    nodata(/Check for error in Windows Eventlog/eventlog[System,,,,10541,,skip],1m)=0
    То есть, триггер срабатывает, если данному элементу данных поступают хоть какие-то данные (сам элемент фильтрует ID) и автоматически закрывается (генерация событий ОК - само выражение) через 1 минуту.

    Comment


    • danmen
      danmen commented
      Editing a comment
      Да триггер элементарный, просто дергаю logeventid. Ваше решение похоже на то что нужно, попробую, спасибо.
  • Kos
    Senior Member
    Zabbix Certified SpecialistZabbix Certified Professional
    • Aug 2015
    • 3404

    #3
    О, очередной счастливчик...
    К сожалению, тут есть проблема, причём достаточно застарелая, но разработчиками Zabbix признаваемая неохотно.
    Если вкратце, то стандартный способ закрыть триггер по тайм-ауту - это использовать триггерную функцию nodata(). Однако, эта функция несовместима с опцией "Multiple PROBLEM events generation".
    Эта проблема упоминалась на форуме неоднократно (навскидку - раз, два, три).

    К сказанному по первой ссылке:
    О, коллега, как говорится - welcome to the club! Заходите, регистрируйтесь, голосуйте (справа вверху - Votes); может быть, когда-нибудь к версии Zabbix 8.0 это и поправят...
    могу добавить лишь то, что можно ещё закрывать сгенерированную триггером проблему по таймеру, используя "костыль" в виде скрипта, дёргающего API: этот подход был описан тут.

    Comment


    • danmen
      danmen commented
      Editing a comment
      Спасибо за наводки, проголосовал) Решение с API то же интересное.
  • danmen
    Junior Member
    • Jul 2021
    • 11

    #4
    Originally posted by johndoe2374
    Приветствую. А можете показать, как приблизительно триггер выглядит?

    Может не совсем то, но бился с похожей задачей - надо было мониторить попадание в журнал Windows события с определённым ID. Использовал подобный триггер:
    Code:
    nodata(/Check for error in Windows Eventlog/eventlog[System,,,,10541,,skip],1m)=0
    То есть, триггер срабатывает, если данному элементу данных поступают хоть какие-то данные (сам элемент фильтрует ID) и автоматически закрывается (генерация событий ОК - само выражение) через 1 минуту.
    Это все условие вашего триггера? У меня ругается на синтаксис.

    Comment

    • danmen
      Junior Member
      • Jul 2021
      • 11

      #5
      Originally posted by Kos
      О, очередной счастливчик...
      К сожалению, тут есть проблема, причём достаточно застарелая, но разработчиками Zabbix признаваемая неохотно.
      Если вкратце, то стандартный способ закрыть триггер по тайм-ауту - это использовать триггерную функцию nodata(). Однако, эта функция несовместима с опцией "Multiple PROBLEM events generation".
      Эта проблема упоминалась на форуме неоднократно (навскидку - раз, два, три).

      К сказанному по первой ссылке:могу добавить лишь то, что можно ещё закрывать сгенерированную триггером проблему по таймеру, используя "костыль" в виде скрипта, дёргающего API: этот подход был описан тут.
      API как ни будь можно адаптировать под множественную проблему? API закрывает только последний триггер, а хотелось что бы все.

      Comment

      • johndoe2374
        Member
        • Aug 2021
        • 80

        #6
        Originally posted by danmen

        Это все условие вашего триггера? У меня ругается на синтаксис.
        Прошу прощения, ошибся: вместо "Check for error in Windows Eventlog" надо вписать имя хоста, на который вешается триггер. Просто создайте элемент данных, который собирает события и выберите его в конструкторе выражений триггера, он сам подставит в правильном синтаксисе.

        Comment

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

          #7
          Originally posted by danmen
          API как ни будь можно адаптировать под множественную проблему? API закрывает только последний триггер, а хотелось что бы все.
          При описанном подходе закрывается каждая порождённая триггером проблема. Неважно, множественная она или нет - на каждое событие "проблема" будет запускаться скрипт, который её (эту конкретную проблему) закроет (в описанном примере - через минуту).

          Comment

          • danmen
            Junior Member
            • Jul 2021
            • 11

            #8
            Originally posted by johndoe2374

            Прошу прощения, ошибся: вместо "Check for error in Windows Eventlog" надо вписать имя хоста, на который вешается триггер. Просто создайте элемент данных, который собирает события и выберите его в конструкторе выражений триггера, он сам подставит в правильном синтаксисе.
            Да это понятно) Просто у вас синтаксис триггера отказывается версии 5.4, а у меня 5.0

            Comment

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

              #9
              Originally posted by danmen
              Просто у вас синтаксис триггера отказывается версии 5.4, а у меня 5.0
              Ну так тут API ни при чём. Тем более, что у меня-то тоже используется Zabbix v5.0 (LTS), это коллега johndoe2374 ответил с примером синтаксиса для текущей (5.4) версии.
              Ну, для прежних версий синтаксис триггерного выражения будет примерно таким:
              Code:
              {Host:eventlog[System,,,,10541,,skip].nodata(1m)}=0
              Вместо "Host" подставить имя вашего хоста или шаблона, к которому привязан элемент данных.

              Comment

              Working...