Ad Widget

Collapse

SNMP traps и триггеры

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • erro
    Junior Member
    • Aug 2011
    • 3

    #1

    SNMP traps и триггеры

    Доброго времени суток. Настроил в zabbix прием трапов и соответственно триггеры к ним, чтобы получать сигнализацию и оповещения. Все отлично работает - трапы приходят, события формируются. Теперь задача, как сбросить триггер назад в FALSE и соответственно очистить аварию в мониторинге ?
    Попутно: при подтверждении события (триггера) zabbix требует передать ему какой-нибудь текст. Можно ли как-нибудь выпилить эту проверку ?
  • zalex_ua
    Senior Member
    Zabbix Certified Trainer
    Zabbix Certified SpecialistZabbix Certified Professional
    • Oct 2009
    • 1286

    #2
    Originally posted by erro
    Теперь задача, как сбросить триггер назад в FALSE и соответственно очистить аварию в мониторинге ?
    Большинство пользователей используют функцию nodata() - поищите на форуме примеры. Хотя мне такое решение не нравится, оно не совсем правильное. Штатного красивого решения нету.

    Originally posted by erro
    Попутно: при подтверждении события (триггера) zabbix требует передать ему какой-нибудь текст. Можно ли как-нибудь выпилить эту проверку ?
    В настройках Администрирование -> Общие -> Веб-интерфейс -> отключите Подтверждение событий.

    Comment

    • erro
      Junior Member
      • Aug 2011
      • 3

      #3
      zalex_ua, спасибо. Действительно, все дело в настройке макроса для триггера.

      Я нашел приемлемых два решения:

      1. Для оборудования, которое формирует on/off трапы (link down/link up) можно использовать:
      Code:
      ({snmptraps:snmptraps.str(down)}=1) & ({snmptraps:snmptraps.str(up)}=0)
      2. Для всего остального можно очищать по таймеру:
      Code:
      ({snmptraps:snmptraps.str(down)}=1) & ({snmptraps:snmptraps.nodata(60)}=0)
      Не очень красиво во втором случае, что zabbix пересчитывает значение триггера каждые 30 секунд + округление до минут. Т.е. если трап пришел 12:00:48, будут сформированы events в 12:01:00, 12:01:30 и 12:02:00. Это значение можно где-нибудь увеличить ?

      Comment

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

        #4
        Originally posted by erro
        1. Для оборудования, которое формирует on/off трапы (link down/link up) можно использовать:
        Code:
        ({snmptraps:snmptraps.str(down)}=1) & ({snmptraps:snmptraps.str(up)}=0)
        Да, это отлично когда есть возможность получить два трапа. Но вы не учли случаи когда между ними приходят другие трапы.
        Ознакомьтесь с темами:



        Там в основном речь идет о журналах виндовс, но логика таже. Не пугайтесь тех больших триггеров, вдумайтесь в них.
        Вот более "легкий" пример по сути:
        Code:
        ({Syslog sender:syslog[].str(LBD loop occurred)}=1) | ({TRIGGER.VALUE}=1 & {Syslog sender:syslog[].str(LBD port recovered)}#1)
        Сразу ответ - сислоги здесь.


        Originally posted by erro
        2. Для всего остального можно очищать по таймеру:
        Code:
        ({snmptraps:snmptraps.str(down)}=1) & ({snmptraps:snmptraps.nodata(60)}=0)
        Не очень красиво во втором случае, что zabbix пересчитывает значение триггера каждые 30 секунд + округление до минут. Т.е. если трап пришел 12:00:48, будут сформированы events в 12:01:00, 12:01:30 и 12:02:00. Это значение можно где-нибудь увеличить ?
        Вы немного неправильно поняли. Да, триггер в котором присутствует функция nodata(60) пересчитывается каждых 30 секунд, но в данном случае он вернет 1 если данных не было за последних 60 секунд в момент вычисления функции.
        События не будут формироваться как вы думаете. Скажу даже больше - после первого пришедшего трапа ваш триггер на протяжении 60 секунд не будет реагировать (срабатывать) на другие трапы потому что не выполняется условие nodata(60). Представьте себе приход трапом в логически в уме повычисляйте триггер и вы поймете.

        Comment

        • erro
          Junior Member
          • Aug 2011
          • 3

          #5
          Большое спасибо за подробные ответы, я понял в каком направлении нужно копать.

          Comment

          • gdgsoft
            Senior Member
            • Apr 2009
            • 202

            #6
            Я немного иначе работаю с трапами.
            Все мапирование OID-ов или данных, по которым срабатывает триггер я делаю в скрипте-обработчике, который запускает snmptrapd.
            В результате у меня по трапам получаются простые, до безумия, триггеры

            {MyTemplate:ifOperStatus.1.last(0)}#1
            Или что то вроде этого. Не помню точно.
            Я стараюсь не слать в базу текстовые данные там, где это возможно по двум причинам:
            1. Как мне кажется, с числами БД будет работать быстрее(поиск) быстрее.
            2. Как говорится, используя числа, вы "аутоматычно" получаете график по элементам, что гораздо приятнее ковыряния в тексте

            Единица - это вроде состояние UP, все остальное - интервейс в дауне. В результате получается простой триггер, а использу valuemapped вы можете себе засветить в триггере все что угодно
            Zabbix 2.4.2
            PHP 5.4.5
            Oracle Linux 6.5
            VmWare ESXi 4

            MariaDB 10.0.15
            Oracle Linux 6.5
            Supermicro SYS-6027TRF(64Gb+RAID-10 600Gb SAS15k)

            Comment

            Working...