Ad Widget

Collapse

Оповещение с задержкой

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Amicable
    Junior Member
    • Oct 2015
    • 15

    #1

    Оповещение с задержкой

    Доброго времени суток. Есть ряд роутеров, которые монитоятся простой проверкой icmpping[,4]. Для этой проверки создал триггер:
    {Template SNMP Mikrotik:icmpping[,4].count(3m,0)}>5
    Как я понимаю, что если в течении 3 минут пропадут 5 пакетов, то присылать смс. Вероятно есть более правильное решение, так как в моем случае смс приходит сразу же. А когда провайдер начинает флапать, в ночи раздается трель смсок) Подскажите как правильней реализовать, отправку оповещения с задержкой?
  • Kos
    Senior Member
    Zabbix Certified SpecialistZabbix Certified Professional
    • Aug 2015
    • 3404

    #2
    Originally posted by Amicable
    Для этой проверки создал триггер:
    {Template SNMP Mikrotik:icmpping[,4].count(3m,0)}>5
    Как я понимаю, что если в течении 3 минут пропадут 5 пакетов, то присылать смс.
    1) не совсем так. Не "в течении 3 минут пропадут 5 пакетов", а "в течении 3 минут будет более пяти неуспешных проверок". В Вашем случае одна проверка - это 4 пинга подряд (вернётся ноль, если не придёт ни одного ответа).
    2) какой у Вас интервал между проверками?
    3) что видно в Latest Data для данного элемента данных?

    А когда провайдер начинает флапать, в ночи раздается трель смсок
    А что именно Вы хотите? Попробуйте поставить задачу поточнее.

    Comment

    • Amicable
      Junior Member
      • Oct 2015
      • 15

      #3
      Интервал раз в минуту.
      В latest data = 1.

      А что именно Вы хотите? Попробуйте поставить задачу поточнее.
      Микротики пингуются по локальным адресам. Если адрес не доступен 3 минуты, присылать оповещение.

      Comment

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

        #4
        Интервал раз в минуту.
        Если у Вас интервал опроса одна минута, то тогда я вообще не понимаю, как у Вас срабатывает триггер
        Code:
        {Template SNMP Mikrotik:icmpping[,4].count(3m,0)}>5
        Ведь для срабатывания такого триггера нужно, как минимум, 6 значений за последние три минуты; причём, равных нулю.
        В latest data = 1.
        А остальные данные? Если выбрать ряд значений за тот период, когда было срабатывание триггера, то что там есть?

        Микротики пингуются по локальным адресам. Если адрес не доступен 3 минуты, присылать оповещение.
        Да ,вроде, правильно пытаетесь делать. Только ощущение, что либо что-то недоговариваете, либо что-то не так описываете

        Можно ещё попробовать переформулировать условие триггера, заменив временной параметр на явное количество проб:
        Code:
        {Template SNMP Mikrotik:icmpping[,4].count(#5,0)}>3
        "если из последних пяти проб больше трёх были неуспешными - то тревога"

        Comment

        • rough-84
          Senior Member
          • Oct 2014
          • 198

          #5
          Я бы сделал
          {Template SNMP Mikrotik:icmpping[,4].min(#3)}>0
          Те же яйца, только в профиль, сработает когда 3 проверки подряд дадут "1"

          Comment

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

            #6
            icmpping при нормальных условиях возвращает единицу; ловить надо, когда НЕ пингуется. Т.е. тогда уж должно быть наоборот:
            Code:
            {Template SNMP Mikrotik:icmpping[,4].max(#3)}=0
            если последние три значения - одни нули.

            Но, по сравнению с count(), такой подход хуже работает в условиях "дребезга". Т.е. когда, например, сеть фактически "лежит" и из 10 пингов проходит один-два, такой триггер будет постоянно переключаться из одного положения в другое, давая множество оповещений. С count-ом можно настроить гибче.

            Comment

            • Amicable
              Junior Member
              • Oct 2015
              • 15

              #7
              Я бы сделал
              {Template SNMP Mikrotik:icmpping[,4].min(#3)}>0
              Те же яйца, только в профиль, сработает когда 3 проверки подряд дадут "1"
              1 это значит пинг есть и все хорошо. Тогда наоборот наверно меньше 1.

              Если у Вас интервал опроса одна минута, то тогда я вообще не понимаю, как у Вас срабатывает триггер
              слукавил случайно. интервал, раз в 30 секунд.

              В latest data, для этого элемента только 1, или 0, в момент падения.

              "если из последних пяти проб больше трёх были неуспешными - то тревога"
              {Template SNMP Mikrotik:icmpping[,4].count(#6,0)}>3 , тогда наверно так можно по пробовать. 6 попыток это три минуты.

              Comment

              • rough-84
                Senior Member
                • Oct 2014
                • 198

                #8
                Originally posted by Kos
                icmpping при нормальных условиях возвращает единицу; ловить надо, когда НЕ пингуется. Т.е. тогда уж должно быть наоборот:
                Code:
                {Template SNMP Mikrotik:icmpping[,4].max(#3)}=0
                если последние три значения - одни нули.

                Но, по сравнению с count(), такой подход хуже работает в условиях "дребезга". Т.е. когда, например, сеть фактически "лежит" и из 10 пингов проходит один-два, такой триггер будет постоянно переключаться из одного положения в другое, давая множество оповещений. С count-ом можно настроить гибче.

                Ну да, тогда просто изменить:

                ({TRIGGER.VALUE}=0 and {Template SNMP Mikrotik:icmpping[,4].max(#3)}=0) or
                ({TRIGGER.VALUE}=1 and {Template SNMP Mikrotik:icmpping[,4].min(#3)}>0)

                При таком варианте сработает когда подряд 3 нуля и выйдет из состояния проблема когда подряд 3 единицы, вроде правильно, давно уже гистериоз не использовал...
                Вариаций множество, мне ближе функции max, min.
                Last edited by rough-84; 19-11-2015, 12:21.

                Comment

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

                  #9
                  Originally posted by rough-84
                  Ну да, тогда просто изменить:

                  ({TRIGGER.VALUE}=0 and {Template SNMP Mikrotik:icmpping[,4].max(#3)}=0) or
                  ({TRIGGER.VALUE}=1 and {Template SNMP Mikrotik:icmpping[,4].max(#3)}>0)

                  Вариаций множество, мне ближе функции max, min.
                  Да, согласен - так тоже можно.
                  Только в конце второй строчки вместо max(#3)}>0 должно быть что-то другое, например, min(#3)}=0 (удерживать сработавший триггер, пока не получим три успешных пинга подряд).

                  Comment

                  • rough-84
                    Senior Member
                    • Oct 2014
                    • 198

                    #10
                    Originally posted by kos
                    Да, согласен - так тоже можно.
                    Только в конце второй строчки вместо max(#3)}>0 должно быть что-то другое, например, min(#3)}=0 (удерживать сработавший триггер, пока не получим три успешных пинга подряд).
                    Во, точно спасибо, напомнил логику гистериоза.

                    Comment

                    • Amicable
                      Junior Member
                      • Oct 2015
                      • 15

                      #11
                      ({TRIGGER.VALUE}=0&{Template SNMP Mikrotik:icmpping[,4].max(#3)}=0)|({TRIGGER.VALUE}=1&{Template SNMP Mikrotik:icmpping[,4].min(#3)}=0)

                      Если учесть, что проверка каждые 30 секунд, то триггер сработает спустя 90 секунд.
                      rough-84,Kos, cпасибо за помощь. По пробую так.

                      Comment

                      • aib
                        Senior Member
                        • Jan 2014
                        • 1615

                        #12
                        Одно маленькое замечание - если интервал проверки 30 секунд, то это еще не значит, что за 90 секунд у вас будет 4 проверки. Интервал проверки "плавает" около заданного (рекомендованного) времени.
                        Sincerely yours,
                        Aleksey

                        Comment

                        • Amicable
                          Junior Member
                          • Oct 2015
                          • 15

                          #13
                          Originally posted by aib
                          Одно маленькое замечание - если интервал проверки 30 секунд, то это еще не значит, что за 90 секунд у вас будет 4 проверки. Интервал проверки "плавает" около заданного (рекомендованного) времени.
                          Если я правильно понял, то для срабатывания тригера требуется 3 неудачные проверки подряд. В идеале 90 секунд, если плавает то чуть больше, что в общем то не страшно. Мне нужно было, что бы оповещения приходили не мгновенно, а с небольшой задержкой, при условии что канал в этот момент не поднялся.

                          Comment

                          Working...