Ad Widget

Collapse

Гистерезис

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • oalex
    Member
    • Jul 2009
    • 86

    #1

    Гистерезис

    Добрый день.
    что-то совсем запутался...
    в документации сказано
    ---------------
    Пример 1
    Температура в серверной комнате слишком высокая.
    ({TRIGGER.VALUE}=0&{server:temp.last(0)}>20)|
    ({TRIGGER.VALUE}=1&{server:temp.last(0)}>15)
    ---------
    Почему во второй части знак > ?
    Получается что приходит первое событие температура, допустим 21, триггер переключается в 1, далее придет сообщение что температура допустим 19 и условие второй части правило выполнится и.. триггер снова переключится уже в off или останется в on до тех пор пока не будет 14 градусов?
  • dima_dm
    Senior Member
    • Dec 2009
    • 2697

    #2
    останется в on до тех пор пока не будет 14 градусов. Для этого и нужен Гистерезис

    Comment

    • oalex
      Member
      • Jul 2009
      • 86

      #3
      т.е. получается что триггер on пока выполняется любое из событий. Понятно, тогда переформулирую пример
      есть snmptrap
      приходит события "вентилятор1 сдох", "вентилятор1 ожил", "вентилятор2 сдох", "вентилятор2 ожил"
      как написать триггер, который бы срабатывал на конкретный вентилятор.
      допустим если я напишу ("вентилятор1 сдох", | "вентилятор2 сдох"), то при приходе любого из них или сразу 2х триггер сработает. Но если потом придет "вентилятор1 ожил" триггер отключится не смотря на то, что 2й все равно не ожил?

      Comment

      • dima_dm
        Senior Member
        • Dec 2009
        • 2697

        #4
        А при чём тут Гистерезис?
        У вас триггер со сложным условием через ИЛИ, пока хотя бы один вентилятор сдох у триггера будет статус Problem.
        Last edited by dima_dm; 31-05-2011, 11:45.

        Comment

        • oalex
          Member
          • Jul 2009
          • 86

          #5
          видимо не причем
          Хотелось понять как вообще работает триггер, на примере гистерезиса это как раз и показательно.
          Тему переименовывать не буду (да и не смогу, наверное).
          Просто не могу придумать, как заставить держаться триггер до прихода конкретного значения, например если триггер назвать "вентилятор1 проблема", что бы он выключился по приходу события "вентилятор1 ожил", а на приход других не реагировал, т.е. оставался on. Думал рыть в сторону гистерезиса, похоже ошибочно.

          Comment

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

            #6
            Originally posted by oalex
            приходит события "вентилятор1 сдох", "вентилятор1 ожил", "вентилятор2 сдох", "вентилятор2 ожил"
            как написать триггер, который бы срабатывал на конкретный вентилятор.
            Пример в документации подходит (фишка гистерезиса в разных цифрах 15 и 20), только вместо функции last(0) нужно использовать regexp() или str(). Вы же получаете текстовые строки а не числа. Вдумайтесь и все должно получится.

            Comment

            • oalex
              Member
              • Jul 2009
              • 86

              #7
              Думал уже много времени. не могу придумать.
              В любом случае приходит событие отличное от триггера. Если событий всего 4 (сдох/ожил1 и 2) - можно написать триггер из строк со всеми этими событиями и комбинациями. Будет длинно, но терпимо, но если событий в реальности генерируется больше, а надо только эти 4 - никак не могу.
              Какой бы я ни описал триггер с str, всегда есть шанс, что прилетит строка "хз что там еще произошло" и статус переключится
              Не исключаю, что просто я туплю, и все гораздо проще.

              Comment

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

                #8
                Originally posted by oalex
                Будет длинно, но терпимо, но если событий в реальности генерируется больше, а надо только эти 4 - никак не могу.
                Какой бы я ни описал триггер с str, всегда есть шанс, что прилетит строка "хз что там еще произошло" и статус переключится
                Не исключаю, что просто я туплю, и все гораздо проще.
                Не переживайте, вы не тупите, триггеры на логи (а трапы по сути таковыми являются) это особая философия. Хотя с логами легче - можно фильтровать на стороне агента только то что нужно и тогда и триггер ваш построить можно. Честно говоря заббикс не очень заточен под работу с логами (именно в плане триггеров и их логики), но постепенно ситуация улучшается.
                Last edited by zalex_ua; 06-06-2011, 09:47. Reason: уточнения кто тупит :)

                Comment

                • inform11
                  Senior Member
                  • Aug 2010
                  • 176

                  #9
                  Мой рабочий триггер

                  Вот мой рабочий триггер на SNMP-трапы

                  (({snmptraps:snmptraps.regexp(10.0.0.253 linkDown Loopback1)}#0) & ({TRIGGER.VALUE}=0) | ({snmptraps:snmptraps.regexp(10.0.0.253 linkUp Loopback1)}#1) & ({TRIGGER.VALUE}=1))


                  я в свое время тожа с этой проблемкой боролся, но потом понял, что SNMP-Traps - это не надежная штука, она может долететь, а может недолететь. Соответственно система показывает кривую информацию.

                  Сейчас просто опрашиваю по SNMP статусы интерфейсов через определенный промежуток времени и имею всегда точное состояние системы.

                  Comment

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

                    #10
                    Originally posted by inform11
                    Вот мой рабочий триггер на snmp-трапы

                    (({snmptraps:snmptraps.regexp(10.0.0.253 linkdown loopback1)}#0) & ({trigger.value}=0) | ({snmptraps:snmptraps.regexp(10.0.0.253 linkup loopback1)}#1) & ({trigger.value}=1))
                    У вас тут проблемы со скобками, их не хватает для разделения выражения на две отдельные части.

                    Comment

                    • inform11
                      Senior Member
                      • Aug 2010
                      • 176

                      #11
                      Originally posted by zalex_ua
                      У вас тут проблемы со скобками, их не хватает для разделения выражения на две отдельные части.
                      согласен
                      тригер лежал в архиве, и мне показалось что много слишким скобок...

                      ((({snmptraps:snmptraps.regexp(10.0.0.253 linkDown Loopback1)}#0) & ({TRIGGER.VALUE}=0) | ({snmptraps:snmptraps.regexp(10.0.0.253 linkUp Loopback1)}#1) & ({TRIGGER.VALUE}=1)))

                      вот его полная версия

                      Comment

                      • Viewer
                        Senior Member
                        • Oct 2012
                        • 131

                        #12
                        А никто не вкурсе почему триггеры с гистерезисом не отображаются на графиках?

                        Comment

                        Working...