Ad Widget

Collapse

Мониторинг ошибок на сетевой карте (Zabbix 2.4.7)

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Pchelkin
    Junior Member
    • May 2016
    • 18

    #1

    Мониторинг ошибок на сетевой карте (Zabbix 2.4.7)

    Здравствуйте.
    Прошу помощи, заранее спасибо всем откликнувшимся.

    Мы мониторим ошибки на сетевых интерфейсах.
    Выражение триггера следующее:

    {VDI networks process:net.if.in[eth4,dropped].abschange()}<>0,

    где:

    VDI networks process - это шаблон,
    abschange() - разница между последним и предыдущим значениями

    Ошибки (Dropped Packets) накапливаются и хранятся.

    Задача:
    Прислать уведомление с Заббикса на почту в формате:
    _______________________________
    Accident Time: 2016.05.09 17:35:07
    Status: PROBLEM
    Name: PCAP Writer #1 (eth4) IN Dropped
    Type: dropped incoming packets

    Packets: 300
    Current value: 4000
    Previous value: 3700

    _______________________________
    где :

    Packets - НОВЫЕ Dropped Packets
    Current value - кол-во ВСЕХ Dropped Packets
    Previous value - ПРЕДЫДУЩЕЕ значение (по сути разница значений выше)

    Текущие настройки действий:
    __________________________
    Time: {EVENT.DATE} {EVENT.TIME}
    Status: {TRIGGER.STATUS}
    Name: {TRIGGER.NAME}
    Type: dropped incoming packets

    Packets: ?
    Current value: {ITEM.VALUE1}
    Previous value: ?
    __________________________

    Уведомления приходят, но :
    {ITEM.VALUE1} = {ITEM.LASTVALUE} (т.е. значение одинаковы, показывают ОБЩЕЕ кол-во ошибок)

    1. Что подставить в Packets, чтобы появилось текущее значение ошибок?
    2. Как изменить Previous value, чтобы отображалось значение предыдущее?
    3. Есть идеи как эмулировать ошибки?

    PS Чуть не забыл:

    В условиях я указал:
    Триггер = VDI networks process: PCAP Writer #1 (eth4) IN Dropped

    Thx a lot, Sergey.
  • Pchelkin
    Junior Member
    • May 2016
    • 18

    #2
    No help, close it pls.

    Comment

    • aib
      Senior Member
      • Jan 2014
      • 1615

      #3
      К сожалению, готового решения у меня нет.
      Как я решал свою задачу, когда мне понадобилось показать в оповещении не только "последнее" значение, но и дополнительные.

      В оповещение попадают только те значения, которые использованы в формуле триггера для срабатывания оповещения.
      Следовательно, мне пришлось изобрести формулу, которая включала все необходимые мне значения, но они никак не влияли на срабатывание триггера.
      Получился вот такой прототип триггера для сетевого интерфейса:
      Code:
      Name: Speed of port [{#SNMPVALUE}]({ITEM.LASTVALUE7}) < 1 GB ({ITEM.LASTVALUE1}) and/or many errors/discards ({ITEM.LASTVALUE2} + {ITEM.LASTVALUE3} + {ITEM.LASTVALUE4} + {ITEM.LASTVALUE5}) > 0
      Expression: ({switch1:ifSpeed[{#SNMPVALUE}].last()}<1000000000 and 
      ({switch1:ifInErrors[{#SNMPVALUE}].last()} + 
      {switch1:ifOutErrors[{#SNMPVALUE}].last()} + 
      {switch1:ifInDiscards[{#SNMPVALUE}].last()} + 
      {switch1:ifOutDiscards[{#SNMPVALUE}].last()} > 0)) and 
      ({switch1:ifOperStatus[{#SNMPVALUE}].last()} = 1) and
       ({switch1:ifAlias[{#SNMPVALUE}].str(tHis_Does_NoT_Exist)} = 0)
      Если попытаться разобраться, то значения ITEM.LASTVALUE[1-7] в имени триггера подставляются из соответствующих вычислений в выражении триггера.
      Например, {ITEM.LASTVALUE7} = {switch1:ifAlias[{#SNMPVALUE}].str(tHis_Does_NoT_Exist)}
      Как вы видите, это выражение никогда не сработает, но его значение можно использовать в имени триггера, и в оповещении (как вы и собираетесь сделать)

      В вашем случае, я бы подумал о триггере типа:
      Code:
      Name: More Dropped Packets!!!
      Expression: 
      ({VDI networks process:net.if.in[eth4,dropped].abschange()}<>0) and
       ({VDI networks process:net.if.in[eth4,dropped].last()}>0)  and 
      ({VDI networks process:net.if.in[eth4,dropped].last(#2)}>0)
      В таком случае, в оповещении можно будет использовать значения
      Packets: {ITEM.VALUE1}
      Current value: {ITEM.VALUE2}
      Previous value: {ITEM.VALUE3}
      где соответствующие значения будут подобраны из формулы триггера.
      (Описание работы функции last(#2) смотри в https://www.zabbix.com/documentation...ion_parameters)

      Надеюсь, несколько экспериментов с разными функциями помогут разобраться.

      Извините, что не сразу ответил.
      Sincerely yours,
      Aleksey

      Comment

      • Pchelkin
        Junior Member
        • May 2016
        • 18

        #4
        У меня было так:
        Триггер:
        {nano-cme-capa:cr[eth2].diff()}>0 and {nano-cme-capa:cr[eth2].last()}>0

        в email :
        Packets Diff\Grow: {ITEM.VALUE1}
        Current value: {ITEM.VALUE2}

        Пришло два одинаковых значения:

        Packets Diff\Grow: 3158707
        Current value: 3158707

        Я так понимаю diff это функция. Last value у айтема, а не у функции. Поэтому, значение последнее у одного и того же айтема будет одно и то же

        Comment

        • aib
          Senior Member
          • Jan 2014
          • 1615

          #5
          Посмотрев на список допустимых функций https://www.zabbix.com/documentation...gers/functions - осмелюсь рекомендовать попробовать .change() : "Величина разницы между последним и предыдущим значениями. "
          Потому что .diff() немного не то : "Проверка, различаются ли последнее и предыдущее значения. "
          Да, а вы пробовали кроме .last() добавить в выражение .last(#1) и вывести это значение в оповещение?
          Интересно же
          Sincerely yours,
          Aleksey

          Comment

          • Pchelkin
            Junior Member
            • May 2016
            • 18

            #6
            Current value:    3028177
            Test:          3028177 3028177 3028177 3028177 3028177 3028177 3028177

            {nano-cme-capa:cr[eth3].change()}>0 and {nano-cme-capa:cr[eth3].last()}>0 and {nano-cme-capa:cr[eth3].last(#1)}>0 and {nano-cme-capa:cr[eth3].last(#2)}>0

            Comment

            • Pchelkin
              Junior Member
              • May 2016
              • 18

              #7
              Test: {ITEM.VALUE} {ITEM.VALUE1} {ITEM.VALUE2} {ITEM.VALUE3} {ITEM.VALUE4} {ITEM.LASTVALUE} {ITEM.LASTVALUE1}

              Comment

              • Pchelkin
                Junior Member
                • May 2016
                • 18

                #8
                Я думаю нужно создать айтем в котором будет хранится предыдущее значение. А тогда его выводить - добавить в триггер, и уже выводить значение этого айтема как {ITEM.VALUE1}.
                А в этом примере применяется функция к Item-у, значение его одно и тоже.

                Comment

                • aib
                  Senior Member
                  • Jan 2014
                  • 1615

                  #9
                  Да, вы правы
                  Ж%па какая-то
                  Никакого соответствия документации.
                  У меня тоже выводит несколько одинаковых значений
                  Sincerely yours,
                  Aleksey

                  Comment

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

                    #10
                    Originally posted by aib
                    Ж%па какая-то
                    Никакого соответствия документации.
                    Простите за резкость, но по первому пункту я с Вами соглашусь. А по второму - категорически нет.
                    Где, ну где же, блин, вы нашли в документации ту дикость, которую пытаетесь реализовать, да ещё сетуете, что не получается?
                    Вот уж, действительно, см. пункт 1.

                    Изначально в теме речь шла про версию 2.4, других версий не упоминалось. Она уже больше не поддерживается, но ладно: документация по ней всё ещё доступна. Пытаетесь использовать макросы {ITEM.VALUE<N>}, ожидая, что они раскроются в... во что? Вот что вы ожидали, исходя из документации?
                    Читаем:
                    Раскрывается в:
                    [...]
                    2) значение из истории (когда произошло событие) N-го элемента данных из выражения триггера, если используется для отображения событий и оповещений.
                    Что мы видим в ваших попытках?
                    Code:
                    {nano-cme-capa:cr[eth3].change()}>0 and {nano-cme-capa:cr[eth3].last()}>0 and {nano-cme-capa:cr[eth3].last(#1)}>0 and {nano-cme-capa:cr[eth3].last(#2)}>0
                    Используется четыре раза один и тот же элемент данных, правда, с разными триггерными функциями. Но элемент данных (item) используется один и тот же. Поэтому без разницы, какой макрос вы выбираете - {ITEM.VALUE1} или {ITEM.VALUE4}, он будет раскрываться одинаково - в значение из истории (на момент события) этого элемента данных, в вашем случае - nano-cme-capa:cr[eth3]. В полном соответствии с документацией.

                    По видимости, то, что нужно вам, - это второй снизу элемент таблицы из документации по ссылке. Там, к сожалению, не указано, с какой версии Zabbix-а такой формат поддерживается; но раз он упомянут в документации для v2.4, то для более новых версий тоже должен поддерживаться. Как минимум, для версии 3.0 он тоже упомянут:
                    Code:
                    {узел_сети:ключ.функция(параметр)}
                    (где функция - это одна из стандартных триггерных функций). Например, это может быть функция last() (последнее значение), а может - last(#2) или prev() (предыдущее значение). Это не то, что вам было нужно?

                    Comment

                    • Pchelkin
                      Junior Member
                      • May 2016
                      • 18

                      #11
                      Спасибо, я все таки попробую Ваш вариант позже.
                      Проблему решил другим путем.
                      Я знал, что Item один и тот же, как Вы мне подсказали.
                      Поэтому создал новый эл. данных с типом "Вычисляемое" с формулой :

                      Code:
                      change("exanic[eth4,13]")
                      Потом добавил его в триггер:

                      Code:
                      {nano-cme-capa:change_value_exanic[eth4,13].last()}>0 and 
                      {nano-cme-capa:exanic[eth4,13].change()}>0 and 
                      {nano-cme-capa:exanic[eth4,13].last()}>0
                      И выводил в письме с помощью:

                      Code:
                      Details:        {TRIGGER.NAME}
                      New:           +{ITEM.VALUE1}
                      Current:        {ITEM.VALUE2}
                      Last edited by Pchelkin; 06-01-2017, 11:49.

                      Comment

                      • Pchelkin
                        Junior Member
                        • May 2016
                        • 18

                        #12
                        Теперь уведомление в HipChat выглядит вот так:
                        Attached Files

                        Comment

                        Working...