Ad Widget

Collapse

Не работает триггер при интервалах в секундах.

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • turtleold
    Member
    • May 2021
    • 50

    #1

    Не работает триггер при интервалах в секундах.

    Всем привет.

    Zabbix 5.4.9.
    Есть Item для сбора ивентов с Windows Event Security. Задаю ему интервал обновления, любое число от 0s до 59s, триггер при этом не срабатывает. Если поставишь в минутах, даже 1m. триггер срабатывает без проблем.

    Собственно вопрос, как исправить? Или это особенность версии Zabbix?

    Click image for larger version

Name:	item.png
Views:	227
Size:	28.3 KB
ID:	445488
    Click image for larger version  Name:	trigger.png Views:	0 Size:	36.8 KB ID:	445487
    Attached Files
  • Kos
    Senior Member
    Zabbix Certified SpecialistZabbix Certified Professional
    • Aug 2015
    • 3404

    #2
    Триггер потому так и называется, что имеет лишь два основных состояния (OK и PROBLEM).
    Событие "Проблема" генерируется при срабатывании триггера - т.е. переходе его из OK в PROBLEM. Чтобы он после этого сработал ещё раз, он сначала должен закрыться (перейти обратно из PROBLEM в OK), только после этого он сможет сработать снова (исключение - режим "PROBLEM event generation mode"="Multiple", но он у вас не включен, да к тому же несовместим с временнЫми функцими вроде nodata()).

    У вас сейчас триггер настроен так, что он:
    • будет срабатывать при получении любого нового значения от агента (поскольку первое условие триггера - что ID события равно 4724, но это же значение задано и в параметрах ключа элемента данных, так что записей с другими EventID агент никогда не пришлёт);
    • будет закрываться через минуту после получения последнего значения.
    В результате - в случае, если реально в Event Log такие записи идут относительно часто (чаще, чем раз в минуту), то при интервале опроса меньше минуты триггер, один раз сработав, просто остаётся в этом состоянии всегда. При интервале опроса минута и больше - данные будут присылаться не чаще, чем раз в минуту, и у сервера есть шанс успеть вернуть триггер в состояние OK до того, как придёт новая "пачка" записей от агента.

    Правильный подход - это:
    • в первую очередь, определиться для себя с критериями закрывания порождённых триггером проблем (вручную? автоматически по таймеру? по приходу какого-то другого значения?);
    • для элементов данных log[...] и eventlog[...] использовать сравнительно короткий интервал опроса (не больше 5 секунд, можно даже 1 секунду) - иначе при большой плотности записи в этот лог агент просто будет не успевать обрабатывать новые поступающие туда записи.
    Ну и ещё: чтобы не повторяться снова, можно ознакомиться с предыдущими подобными дискуссиями, навскидку: раз, два, три.

    Comment

    • turtleold
      Member
      • May 2021
      • 50

      #3
      Kos так проблема в том, что триггер вообще не срабатывает, не то, чтобы со второго раза, даже с первого, при возникновении события.
      • в первую очередь, определиться для себя с критериями закрывания порождённых триггером проблем (вручную? автоматически по таймеру? по приходу какого-то другого значения?);
      Как тогда настроить элемент данных, если нужно отслеживать каждое событие с ID 4724, если между новыми событиями, например, 5 секунд?

      Comment

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

        #4
        Originally posted by turtleold
        Как тогда настроить элемент данных, если нужно отслеживать каждое событие с ID 4724, если между новыми событиями, например, 5 секунд?
        • включить режим "PROBLEM event generation mode"="Multiple";
        • разобраться, как закрывать генерируемые события (если надо автоматически - то из более-менее удовлетворительно работающих я знаю только вариант с использующим API скриптом);
        • таки посмотреть предыдущие обсуждения по указанным ссылкам.

        Comment

        • turtleold
          Member
          • May 2021
          • 50

          #5
          Спасибо большое! Но способ закрытия событий с API с версии 5.4 не работает. Нет пункта "Remote Command".

          Описанные способы не помогли.

          Comment

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

            #6
            Originally posted by turtleold
            Но способ закрытия событий с API с версии 5.4 не работает. Нет пункта "Remote Command".
            Начиная с версии 5.4, чуть поменялась организация работы со скриптами. Нужно сначала оформить сам скрипт на глобальном уровне (через Administration -> Scripts), тогда после этого его можно будет использовать в Action-ах.

            Comment

            • turtleold
              Member
              • May 2021
              • 50

              #7
              Цитата из этого топика
              При описанном подходе закрывается каждая порождённая триггером проблема. Неважно, множественная она или нет - на каждое событие "проблема" будет запускаться скрипт, который её (эту конкретную проблему) закроет (в описанном примере - через минуту).
              Сделал скрипт. nodata я так понял мы оставляем, но триггер не запускается. Убираю nodata, триггер запускается, но не закрывается. Есть идеи почему?

              Comment

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

                #8
                Мои телепатические способности хоть и прокачаны изрядным опытом, но всё же ограничены.
                К сожалению, я не вижу, что именно Вы делаете, что при этом происходит, и могу только догадываться, что хотите получить - обо всём этом я могу судить только с Ваших слов.
                Понимаете, слова: "Сделал, не работает. Есть идеи почему?" - содержат слишком мало информации, чтобы ответить по делу. А отвечать в том же стиле: "Ну, наверное, что-то не так сделал", - не очень конструктивно, хотя и очень подмывает.

                Опишите, пожалуйста, подробнее: что именно делаете, каким образом тестируете, какого результата хотите добиться и что получаете на самом деле.
                Например: убираю из триггера условие с функцией nodata() и включаю там режим "PROBLEM event generation mode"="Multiple"; ожидаю при этом, что триггер будет генерировать новую проблему на каждое новое полученное значение (и не закрывать её). Закрывать проблему собираюсь либо вручную, либо автоматически с помощью скрипта, использующего API. Для этого настраиваю скрипт (не забыв прописать в переменные нужные креденшиалы пользователя Zabbix, имеющего права закрывать проблемы), затем настраиваю Action для запуска этого скрипта через минуту после создания проблемы. В результате: не работает то-то и то-то (скажем, скрипт запускается, что видно по логам Reports -> Action log, но проблема остаётся не закрытой).

                Comment

                • turtleold
                  Member
                  • May 2021
                  • 50

                  #9
                  Простите, виноват. Исправляюсь.

                  Мне нужно, чтобы данные по некоторым ID событиям с контроллеров AD отлавливались каждые 1-5 секунд. При этом, проблема должна закрываться самостоятельно. Элемент данных, как пример, и триггер обозначены в первом моем сообщении.

                  Я убираю nodata() у выражения тригггера, включаю ему режим "PROBLEM event generation mode"="Multiple". Далее, создаю скрипт API, создаю переменные, в которых указываю реальную пару логин-пароль пользователя, который имеет доступ на закрытие проблем.
                  Скрипт добавляю в Trigger Actions.
                  Далее, генерирую событие с определенным ID в журнале событий, триггер срабатывает, проблема не закрывается самостоятельно.

                  P/S На самом деле, пока писал, проделал все действия, которые вы описывали - теперь работает как надо. Спасибо вам большое.


                  Comment

                  • turtleold
                    Member
                    • May 2021
                    • 50

                    #10

                    Единственное. Остался вопрос. Как правильно в Actions настроить длительность триггера до закрытия?


                    Attached Files

                    Comment

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

                      #11
                      Originally posted by turtleold
                      Единственное. Остался вопрос. Как правильно в Actions настроить длительность триггера до закрытия?
                      Если в одном действии (Action-е) нужно последовательно выполнить несколько операций (например: первым шагом - отослать уведомление, а вторым шагом - через минуту закрыть проблему), то я бы делал так:
                      • в свойствах Action-а на вкладке "Operations" выставил бы параметр "Default operation step duration" в одну минуту;
                      • шагом №1 (который выполняется сразу после события) указал бы отправку уведомления;
                      • шагом №2 - выполнение скрипта, закрывающего проблему;
                      • параметр "Step duration" для обоих шагов оставил по умолчанию нулевым.
                      При необходимости можно подрегулировать "Default operation step duration" (не минута, а, скажем, две). Как альтернатива - можно для первого шага выставить кастомизированный Step duration (например, 30 секунд), тогда второй шаг начнётся не через минуту, а через эти 30 секунд.

                      На вашем скриншоте видно, что у вас обе операции выполняются одновременно (номер шага для обеих задан как "единица").

                      Comment

                      • turtleold
                        Member
                        • May 2021
                        • 50

                        #12
                        Я же правивильно всё сделал? Проблема теперь не закрывается...
                        Attached Files

                        Comment

                        • turtleold
                          Member
                          • May 2021
                          • 50

                          #13
                          При этом в проблемах, якобы скрипт ровно через минуту отработал, но в Action log нет записи за этой время, что скрипт отработал.
                          Attached Files

                          Comment

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

                            #14
                            У вас в настройках скрипта задано, чтобы он выполнялся "on current host", т.е. на том хосте, где возникла проблема.
                            Вероятно, его надо выполнять на сервере Zabbix - в настройках скрипта нужно переставить переключатель с "Zabbix agent" на "Zabbix server".

                            Comment

                            • turtleold
                              Member
                              • May 2021
                              • 50

                              #15
                              Скрипт изначально был настроен на zabbix сервер. На сегодня, в дашборде появляется информация о выполнении скрипта напротив проблемы, в Action log тоже, но проблема не закрывается.
                              "on current host" - нужно указывать может хосты контроллеров домена или всё же оставить как есть?
                              Attached Files

                              Comment

                              Working...