Ad Widget

Collapse

Тригер на двух snmp traps

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • vigo
    Junior Member
    • Aug 2012
    • 7

    #1

    Тригер на двух snmp traps

    Приветствую, что-то не могу сообразить тригер.
    Есть 2 snmp trap'a. Один говорит, что устройство вырубилось, другой говорит, что устройство включилось.
    Хочу сделать единый тригер, который был бы в статусе ПРОБЛЕМА, когда ус-во вырубилось и когда, оно включилось в статусе ОК.
    Вот что примерно сейчас сделал, но тригер зависает в статусе ПРОБЛЕМА и все.
    Code:
    ({TRIGGER.VALUE}=0&({Canopy devices AP:snmptrap[".1.3.6.1.4.1.161.19.3.1.5.1.2"].regexp( )})#0)|({TRIGGER.VALUE}=1&({Canopy devices AP:snmptrap[".1.3.6.1.4.1.161.19.3.1.5.1.1"].regexp( )})#0)
  • zalex_ua
    Senior Member
    Zabbix Certified Trainer
    Zabbix Certified SpecialistZabbix Certified Professional
    • Oct 2009
    • 1286

    #2
    Оба раза использована одинаковая функция, это и есть ошибка, разберитесь.
    Code:
    .regexp( )})#0)
    .regexp( )})#0)

    Comment

    • Jimson
      Senior Member
      • Jan 2008
      • 1327

      #3
      так эта regexp для разных ключей используется (разный OID), в чем тут ошибка ?

      Comment

      • vigo
        Junior Member
        • Aug 2012
        • 7

        #4
        Ребята, кажись что-то сделал .
        Заменил выражение | на & и вроде помогло.
        Наблюдаю дальше...

        Comment

        • Jimson
          Senior Member
          • Jan 2008
          • 1327

          #5
          эм.... у вас вышло
          trigger.value=0 & blablabla & trigger.value=1 & blablabla
          это выражение будет всегда ложным

          вы вообще в курсе для чего используются подобные конструкции?
          допустим условие срабатывания тригера "температура поднялась выше 25 градусов", но если тригер сработал вы хотите что бы авария сигнализировалась до тех пор пока температура не опустится ниже 20, получается тригер

          (trigger.value=0 & temperature > 25) | (trigger.value=1 & temperature > 20)

          в snmp трапах не шарю, так что конкретно по вашему тригеру не могу ничего сказать, сорри

          Comment

          • vigo
            Junior Member
            • Aug 2012
            • 7

            #6
            Да хрень полная получается.
            Посути то разницы не должно быть, трап это или нет.
            У вас в примере кстати тоже поидее всегда условие будет равно 1,
            так как 25 больше 20 .

            (trigger.value=0 & temperature > 25) | (trigger.value=1 & temperature > 20)

            Comment

            • Jimson
              Senior Member
              • Jan 2008
              • 1327

              #7
              нет ты не прав, смотри

              температура 19: тригер ложный (ОК)
              температура 21: тригер ложный (ОК)
              температура 26: тригер истина (ПРОБЛЕМА)
              температура 21: тригер истина (ПРОБЛЕМА)
              температура 19: тригер ложный (ОК)

              в этом примере как раз срабатывает проверка тригера самого себя, в каком он состоянии, первый раз когда он проверяет 21 градус у него trigger.value был нулевой, соответсвенно первая часть условия будет ложной так как температура ниже 25, а вторая будет ложной потому trigger.value не равен 1

              второй раз при проверке тех же 21 градусов первая часть условия ложная потому что trigger.value = 1, а вот вторая часть условия будет истина, так как и тригер в 1 и температура выше 20, следовательно тригер остается в состоянии ПРОБЛЕМА

              при проверке же на 19 градусов в последний раз вторая часть условия тоже станет ложной, тригер все еще был в 1 (проблема), но температура уже не удовлетворяет услувию " > 20"

              Comment

              • vigo
                Junior Member
                • Aug 2012
                • 7

                #8
                А ведь верно .
                Жаль что, у меня не заводится...

                Comment

                Working...