Ad Widget

Collapse

Триггер на изменение str значений

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • AbyssMoon
    Member
    • Nov 2012
    • 51

    #1

    Триггер на изменение str значений

    Добрый день.
    С zabbix дружу не так давно, подскажите пожалуйста как создать подобную логику триггра, вожусь с утра, что-то не могу найти решение...

    Если вас не затруднит, направьте в правильную сторону...

    Что у меня есть:
    SNMP Trapы шлют разные UPS на zabbix сервер.

    Вот так они выгладят:
    Code:
    2012.Dec.10 09:40:42	09:40:40 2012/12/10 .iso Normal "General event" 192.193.194.195 - general .iso:UPS: UPS.PowerConverter.Input[2].PresentStatus.Good1Automatic bypass is in normal range9135 5000bacula2012-12-10 09:40:40
    2012.Dec.10 09:40:27	09:40:24 2012/12/10 .iso Normal "General event" 192.193.194.195 - general .iso:UPS: UPS.PowerSummary.PresentStatus.ACPresent1The system is powered by the utility9135 5000bacula2012-12-10 09:40:24
    2012.Dec.10 09:39:47	09:39:42 2012/12/10 .iso Normal "General event" 192.193.194.195 - general .iso:UPS: Local.RunTimeToShutdown1310Shutdown in 21 min 50 s9135 5000bacula2012-12-10 09:39:42
    2012.Dec.10 09:38:47	09:38:42 2012/12/10 .iso Normal "General event" 192.193.194.195 - general .iso:UPS: Local.RunTimeToShutdown1350Shutdown in 22 min 30 s9135 5000bacula2012-12-10 09:38:41
    2012.Dec.10 09:37:46	09:37:41 2012/12/10 .iso Normal "General event" 192.193.194.195 - general .iso:UPS: Local.RunTimeToShutdown1410Shutdown in 23 min 30 s9135 5000bacula2012-12-10 09:37:41
    2012.Dec.10 09:36:46	09:36:41 2012/12/10 .iso Normal "General event" 192.193.194.195 - general .iso:UPS: Local.RunTimeToShutdown1490Shutdown in 24 min 50 s9135 5000bacula2012-12-10 09:36:40
    В данный момент у меня такой триггер:
    Code:
    {Template_UPS_SNMP_TRAPS:snmptrap[UPS:].strlen(0)}>0
    Т.е. если просто пришел какой-то трап (а трапы ups шлет только если есть какие-то проблемы), то бить тревогу...

    Что хочется:
    Если пришел какой-то трап -> бить тревогу, но до того момента, пока все не стало ОК, т.е. пока не пришел такой трап:
    2012.Dec.10 09:40:42 09:40:40 2012/12/10 .iso Normal "General event" 192.193.194.195 - general .iso:UPS: UPS.PowerConverter.Input[2].PresentStatus.Good1Automatic bypass is in normal range9135 5000bacula2012-12-10 09:40:40
    Подскажите в какую сторону направить взгляд?

    Благодарю за любую помощь!
  • dima_dm
    Senior Member
    • Dec 2009
    • 2697

    #2
    Выберете фразу, которая всегда встречается в уведомлении о восстановлении, но не встречается в уведомлениях об аварии. Пусть это "PresentStatus.Good1Automatic".
    Тогда триггер
    {Template_UPS_SNMP_TRAPS:snmptrap[UPS:].count(#1,"PresentStatus.Good1Automatic",”ne”)}=1
    Last edited by dima_dm; 13-12-2012, 13:40.

    Comment

    • AbyssMoon
      Member
      • Nov 2012
      • 51

      #3
      Вот спасибо добрый человек!
      Пойду теперь почитаю мануал, что бы понять как это работает и count в частности.

      Comment

      • zalex_ua
        Senior Member
        Zabbix Certified Trainer
        Zabbix Certified SpecialistZabbix Certified Professional
        • Oct 2009
        • 1286

        #4
        обсуджается евентлог, но это применительно и вам.


        Comment

        • zalex_ua
          Senior Member
          Zabbix Certified Trainer
          Zabbix Certified SpecialistZabbix Certified Professional
          • Oct 2009
          • 1286

          #5
          И еще http://www.zabbix.com/forum/showthre...entlog+trigger

          Comment

          • AbyssMoon
            Member
            • Nov 2012
            • 51

            #6
            Благодарю!
            Изучаю...

            Comment

            • dima_dm
              Senior Member
              • Dec 2009
              • 2697

              #7
              Originally posted by dima_dm
              Выберете фразу, которая всегда встречается в уведомлении о восстановлении, но не встречается в уведомлениях об аварии. Пусть это "PresentStatus.Good1Automatic".
              Тогда триггер
              {Template_UPS_SNMP_TRAPS:snmptrap[UPS:].count(#1,"PresentStatus.Good1Automatic",”ne”)}=1
              А я наврал.
              Функция count сравнивает строку полностью, т.е. нужно писать в поле шаблона строку целиком.
              Правильно так.
              {Template_UPS_SNMP_TRAPS:snmptrap[UPS:].str("PresentStatus.Good1Automatic")}=0
              или использовать функцию regexp
              Last edited by dima_dm; 14-12-2012, 07:44.

              Comment

              • AbyssMoon
                Member
                • Nov 2012
                • 51

                #8
                Благодарю за помощь.
                А можно вопрос по логике?
                На сколько я понял все работает так - str("PresentStatus.Good1Automatic")}=0

                Триггер срабатывает после получения нового трапа, str проверяет что там пришло нам и если это не "PresentStatus.Good1Automatic" -> начинает бить тревогу.
                А если пришло "PresentStatus.Good1Automatic" тревога отменяется.
                Я так понимаю на конце "=0" означает как раз отменить тревогу когда выполнится выражение?

                Спасибо за участие!

                Comment

                • dima_dm
                  Senior Member
                  • Dec 2009
                  • 2697

                  #9
                  Частично правильно, но с точностью до наоборот.
                  Это триггер.
                  {Item.str("PresentStatus.Good1Automatic")}=0
                  Условие триггера, если в полученной строке нет слова PresentStatus.Good1Automatic,функция str вернёт 0 и состояние триггера будет = Problem
                  Если есть, функция str вернёт 1 и триггер перейдёт в состояние OK.
                  Т.е. выражение это условие срабатывания триггера.
                  Важное дополнение для понимания: Условие триггера проверяется каждый раз, когда приходит новое значение для Item.
                  Last edited by dima_dm; 14-12-2012, 07:57. Reason: дополнение для понимания

                  Comment

                  • AbyssMoon
                    Member
                    • Nov 2012
                    • 51

                    #10
                    т.е. если поменять на конце 0 на 1 то работать будет наоборот, бить тревогу когда эта строка как раз есть, правильно понимаю?
                    т.е. str возвращает 0 или 1, и естественно тревога бьется только в том случае если выражение правильно, т.е. str вернуло 1 и у нас выражение str=1 оказывается верным -> бьется тревога?
                    Вот как все легко оказывается Мануал пытался читать до просветления, но не понял с ходу, а тут как человек все разложил, все ясно стало

                    Спасибо!
                    Last edited by AbyssMoon; 14-12-2012, 07:54.

                    Comment

                    • dima_dm
                      Senior Member
                      • Dec 2009
                      • 2697

                      #11
                      Поздравляю с просветлением :-)

                      Comment

                      Working...