Ad Widget

Collapse

Поочередное срабатывание триггеров

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • LongmenZhig
    Junior Member
    • Feb 2019
    • 16

    #1

    Поочередное срабатывание триггеров

    Здравствуйте.
    Есть несколько триггеров, с разными порогами срабатывания в зависимости от температуры. При достижении заданной температуры триггер срабатывает и находится в статусе проблемы до тех пор пока температура не снизится. С этим всё нормально. Но если температура повышается значительно за короткий промежуток времени, то срабатывают последующие триггеры и получается несколько проблем в дашборде. Вопрос в том как сделать чтобы при срабатывании последующего триггера проблема предыдущего переходила в статус ОК.
    Запутано написал.
    Вот эти триггеры для наглядности:
    1) {SMART_OHM_NEW:TEMP.CPU.avg(5m)}>65
    2) {SMART_OHM_NEW:TEMP.CPU.avg(5m)}>70
    3) {SMART_OHM_NEW:TEMP.CPU.avg(5m)}>75
    4) {SMART_OHM_NEW:TEMP.CPU.avg(5m)}>80

    Пробовал писать выражения таким образом, но всё равно появляются по два и больше события с проблемой:
    1){SMART_OHM_NEW:TEMP.CPU.avg(5m)}>=65 and {SMART_OHM_NEW:TEMP.CPU.avg(5m)}<=70
    2){SMART_OHM_NEW:TEMP.CPU.avg(5m)}>=70 and {SMART_OHM_NEW:TEMP.CPU.avg(5m)}<=75
    3){SMART_OHM_NEW:TEMP.CPU.avg(5m)}>=75 and {SMART_OHM_NEW:TEMP.CPU.avg(5m)}<=80
    4){SMART_OHM_NEW:TEMP.CPU.avg(5m)}>=80

    Подскажите, пожалуйста, как правильно сделать и возможна ли такая схема срабатывания триггеров.
  • Sognatore
    Junior Member
    • Mar 2018
    • 23

    #2
    Во втором варианте срабатывает по 2 триггера из-за условия ">=" и "<=", получается, что если температура 70, то сработает и под цифрой 1 и под цифрой 2.

    Comment

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

      #3
      Мне кажется, что именно для подобной задачи сделана такая вещь как зависимые триггеры. Для каждого триггера с меньшим пороговым значением указываете, что он зависит от триггера со следующим (более высоким) пороговым значением. По идее, должны видеть только один из сработавших триггеров (даже если остальные ещё и не закрыты).

      Comment

      • LongmenZhig
        Junior Member
        • Feb 2019
        • 16

        #4
        Originally posted by Sognatore
        Во втором варианте срабатывает по 2 триггера из-за условия ">=" и "<=", получается, что если температура 70, то сработает и под цифрой 1 и под цифрой 2.
        Вы правы, просмотрел, спасибо за подсказку. Вот такой вариант абсолютно рабочий:
        1){SMART_OHM_NEW:TEMP.CPU.avg(5m)}>65 and {SMART_OHM_NEW:TEMP.CPU.avg(5m)}<=70
        2){SMART_OHM_NEW:TEMP.CPU.avg(5m)}>70 and {SMART_OHM_NEW:TEMP.CPU.avg(5m)}<=75
        3){SMART_OHM_NEW:TEMP.CPU.avg(5m)}>75 and {SMART_OHM_NEW:TEMP.CPU.avg(5m)}<=80
        4){SMART_OHM_NEW:TEMP.CPU.avg(5m)}>80

        Comment

        • LongmenZhig
          Junior Member
          • Feb 2019
          • 16

          #5
          Originally posted by Kos
          Мне кажется, что именно для подобной задачи сделана такая вещь как зависимые триггеры. Для каждого триггера с меньшим пороговым значением указываете, что он зависит от триггера со следующим (более высоким) пороговым значением. По идее, должны видеть только один из сработавших триггеров (даже если остальные ещё и не закрыты).
          Вариант с зависимостями тоже корректно работает. Читал про них, но думал что они немного для других случаев. Спасибо.

          Comment

          • AvaTTaR
            Member
            • Dec 2018
            • 96

            #6
            лучше строить на зависимостях, это помогает избежать ненужных оповещений -
            то есть на вашем примере: метрика стала выше 65, сработал 1-ый триггер, сформировал событие, отправил оповещение, температура поднялась выше 70 и первое событие закрывается, триггер ОК и формируется новое событие, оповещения, опустился назад до 66- опять отправил оповещение, которое по факту не имеет смысла.
            А если использовать зависимости то после поднятия до 70 предыдущее событие остаётся открытым и ждёт разрешения проблем по триггерам от которых зависит.

            Comment

            • LongmenZhig
              Junior Member
              • Feb 2019
              • 16

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

              Comment

              • AvaTTaR
                Member
                • Dec 2018
                • 96

                #8
                Originally posted by LongmenZhig
                Согласен, остановился на варианте с зависимостями.
                Но возникла другая особенность. Если на хосте срабатывает тригер о повышении температуры и при этом хост быстро выключают (либо данные перестают приходить), то триггер висит взведённым до момента поступления новых данных. Как бы от этого избавиться, как сделать что бы событие отображалось только когда хост активен (в сети)?
                2 варианта-
                Создать метрику пингующую хост и в выражение триггера добавить and созданная_метрика.last()=1
                либо через фунцию nodata(1m)=0 (тут подробнее - https://www.zabbix.com/documentation...gers/functions)
                Я бы рекомендовал первый вариант, во втором случае вы немного экономите на базе благодаря отсутствию лишнего элемента данных, но у меня с nodata уже были проблемы- банально во время бэкапов база недоступна и заббикс держит значения в кэше, ожидая возможности записать в БД, а функция работает сразу с БД игнорируя кэш заббикса, что приводит к ложным срабатываниям.

                Comment

                Working...