Ad Widget

Collapse

Не работает выражение восстановления проблемы

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • kharkov_max
    Member
    • Mar 2016
    • 83

    #1

    Не работает выражение восстановления проблемы

    Добрый день.

    Подскажите пожалуйста, имеется, zabbix5-server-5.0.4.

    Решил подправить стандартный шаблон пинга "Template ICMP Ping", под свои условия.
    1. Интервал обновления 30 сек
    2. Выражение проблемы {Template ICMP Ping:icmpping.max(#3)}=0
    3. Выражение восстановления {Template ICMP Ping:icmpping.max(#5)}=1

    Т.е. хочу получать проблему пинга через 3 попытки, в данном примере от 60 до 90 сек
    А выйти из проблемы через 5 попыток, в данном примере от 120 до 150 сек.

    В реальности п2. отрабатывает как положено.
    А п3 нет, проблема решается в периоде от 0 до 30 сек по сути время решения равно интервалу обновления.

    Может я что то делаю не так?
    Или недопонимаю механизм выражения восстановления?
  • Kos
    Senior Member
    Zabbix Certified SpecialistZabbix Certified Professional
    • Aug 2015
    • 3404

    #2
    Если используется выражение восстановления, то для закрытия проблемы нужно, чтобы:
    • выражение проблемы давало "ЛОЖЬ"
    - И (одновременно с этим) -
    • выражение восстановления давало "ИСТИНА"
    Выражение восстановления в Вашем случае написано так, что оно даёт "ИСТИНА", как только среди последних пяти значений хотя бы одно (например, самое последнее) будет равно единице.
    Если же Вы хотите убедиться, что все пять последних значений равны единице, то в этом выражении функцию max() надо заменить на min().

    Comment

    • kharkov_max
      Member
      • Mar 2016
      • 83

      #3
      Спасибо за разъяснение, разобрался, заработало....

      Comment

      • kharkov_max
        Member
        • Mar 2016
        • 83

        #4
        Не хочу создавать новую тему, задам вопрос тут.

        Предположим что у меня 1000 узлов, я их все проверяю пингом с периодичностью 30сек.
        По факту в БД пишет или 0 или 1

        Как пример по данному шаблону.
        Для "оптимизации" размера БД для item ping хочу использовать возможность item предобработка - отбрасывать не изменившиеся.
        При применении этой настройки триггер проблемы ping не срабатывает.
        Можно конечно использовать предобработку 'отбрасывать не изменившиеся с периодическим контролем', но это немного не то, не хочу вообще данные писать в БД если значение не меняется ...
        Я так понимаю что беда в max(#3), или min(#5) т.е. триггер не видит последних 3х значений за период...

        Какова в данной ситуации логика zabbix?
        И можно ли как то вменяемо связать предобработку 'отбрасывать не изменившиеся' и тригер в моем примере?

        Comment

        • Semiadmin
          Senior Member
          • Oct 2014
          • 1625

          #5
          Применяя троттлинг к айтему, необходимо сразу понять, что будет с существующими триггерами и скорректировать их. Общий подход - триггеры должны быть подобны тем, что применяются для траппов с непредсказуемым интервалом получения значений.
          Например, вместо max(5m)=0 можно написать last()=0 and nodata(5m)

          Comment

          • kharkov_max
            Member
            • Mar 2016
            • 83

            #6
            Спасибо за подсказку...

            Получилось сделать так:
            Проблема - {Template ICMP Ping:icmpping.last()}=0 and {Template ICMP Ping:icmpping.nodata({$MACRO1})}=1
            Восстановление - {Template ICMP Ping:icmpping.last()}=1 and {Template ICMP Ping:icmpping.nodata({$MAKRO2})}=1
            При условии что предобработка - отбрасывать не изменившиеся на item включена - все работает как хотелось.

            А вот как с графиками быть, пустые.
            Я так понимаю что zabbix не научили еще дорисовывать при такой настройке ...

            Comment

            Working...