Ad Widget

Collapse

Триггер из SNMP-трапа

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • madStas
    Junior Member
    • Feb 2019
    • 7

    #1

    Триггер из SNMP-трапа

    Добрый день!
    Помогите пожалуйста с таким вопросом:
    Есть Cisco WLC контроллер, который управляет порядка 30 точек доступа Wi-Fi. Необходимо мониторить состояние самих точек доступа, а именно - "Точка доступа ассоциировалась" и "Точка доступа диссациировалась". Путем обычного опроса контроллер такую информацию не отдает, но отдает ее в SNMP-трапе. Прием трапа я настроил по двум OID-ам:
    .1.3.6.1.4.1.9.9.513.0.4 Normal "General event" 10.10.129.19 - ZBXTRAP 10.10.129.19 STAP116 watchdog 0 <----------- точка доступа присоеденилась
    .1.3.6.1.4.1.14179.2.6.3.8 Normal "General event" 10.10.129.19 - ZBXTRAP 10.10.129.19 64:d9:89:6c:7d:90 STAP116 $3 <------------------------- точка доступа удалилась


    Собственно два вопроса:
    Помогите пожалуйста создать триггер с такой проблемой:
    "Точка доступа STAP116 присоединилась" (все точки доступа содержат в себе маску типа ****AP### либо ****AP## )
    Я создал новый шаблон с приложением "состояние точки доступа" и два триггера к нему:
    WLC AP Down snmptrap[.1.3.6.1.4.1.14179.2.6.3.8]
    WLC AP Up snmptrap[.1.3.6.1.4.1.9.9.513.0.4]
    Проверил по последним данным - события раскладываются корректно
    А вот с самим триггером беда
    Делаю вот так:
    - Первый триггер
    Name: AP {ITEM.VALUE.(regsub^.*\b((SG|ST)AP(\d+)).*$)} Down <------- тут я пытаюсь сделать сообщение вида AP STAP116 Down но почему-то не срабатывает ((
    Expression:{Template SNMP trap WLC:snmptrap[.1.3.6.1.4.1.14179.2.6.3.8].regexp(AP)}=1 <<<<< тут я слежу за строчкой и ищу в ней AP (Может как-то можно маску задать??)
    Событие появляется но в логе оно так и пишется - AP {ITEM.VALUE.(regsub^.*\b((SG|ST)AP(\d+)).*$)} Up

    И если можно скажите пожалуйста как эту проблему убрать скажем через через 5 мин?

    - Второй триггер
    Name: AP {ITEM.VALUE.(regsub^.*\b((SG|ST)AP(\d+)).*$)} Down
    Expression: {Template SNMP trap WLC:snmptrap[.1.3.6.1.4.1.14179.2.6.3.8].regexp(AP)}=1
    Тут надо не отключать проблему пока не появится событие из первого триггера - "Точка доступа поднялась"
    Я сделал так: {Template SNMP trap WLC:snmptrap[.1.3.6.1.4.1.9.9.513.0.4].regexp(AP)}=1
    Но этот триггер тоже не отрабатывает корректно

    Подскажите плз, что я делаю не так?
    Заранее благодарю всех кто откликнется!
    Last edited by madStas; 13-02-2019, 22:26.
  • Evgeniy
    Senior Member
    • May 2012
    • 157

    #2
    1) {Template SNMP trap WLC:snmptrap[.1.3.6.1.4.1.14179.2.6.3.8].str("STAP116 $3")}=1
    выражение восстановления: {Template SNMP trap WLC:snmptrap[.1.3.6.1.4.1.9.9.513.0.4].str("STAP116 watchdog 0")}=1
    И так для каждой точки....
    2) Убрать по таймауту можно использовав в выражении восстановления функцию nodata.

    Но я бы сделал совсем по-другому...
    1) использовал бы один элемент данных snmptrap.fallback
    2) Привел текст трапов к удобному виду с помощью SNMPTT (watchdog 0 - connected, $3 - disconnected и т.д., в т.ч. и для других трапов).
    3) C помощью предпроцессинга обрезал лишнее.
    4) Для триггеров использовал бы корреляцию событий.

    Comment

    • madStas
      Junior Member
      • Feb 2019
      • 7

      #3
      Спасибо огромное за ответ!
      А можно по подробнее по поводу
      2) Привел текст трапов к удобному виду с помощью SNMPTT (watchdog 0 - connected, $3 - disconnected и т.д., в т.ч. и для других трапов).
      что имеется в виду?
      Сейчас в snmptt.conf у меня так:

      FORMAT ZBXTRAP $aA $A $H $1 $2 $3
      EVENT coldStart .1.3.6.1.6.3.1.1.5.1.0.33 "Status Events" Normal

      Мне кажется от номеров ОИД-ов надо плясать, тк там под одним оидом может разный текст приходить.
      А вообще буду крайне благодарен за подробную инструкцию, ибо в том виде в котором оно сейчас частично работает - сугубо мое представление) Я с заббиксом практически не сталкивался, опыта пока маловато.
      Last edited by madStas; 14-02-2019, 15:08.

      Comment

      • Evgeniy
        Senior Member
        • May 2012
        • 157

        #4
        Originally posted by madStas
        что имеется в виду?
        На сайте SNMPTT довольно хорошо все расписано, с примерами... Тут только идти методом проб и ошибок.
        Я обычно пытаюсь найти миб, конвертирую его snmpttconvertmib и редактирую его по необходимости.

        Originally posted by madStas
        Мне кажется от номеров ОИД-ов надо плясать, тк там под одним оидом может разный текст приходить.
        В том и суть, мне, например, удобнее видеть все сообщения в одном месте, наподобие лога, а триггеры настраивать только на определенные события.

        Comment

        • madStas
          Junior Member
          • Feb 2019
          • 7

          #5
          Ну чтож, пошел 5-й день моей борьбы )))
          Из того что получилось сделать:
          - Перевел экспорт трапов с snmptrapdd на перл скрипт

          Начал получать такие события:
          Точка доступа упала:
          20:12:50 2019/02/17 PDU INFO: errorstatus 0 receivedfrom UDP: [WLC IP]:32770->[ZABBIX SERVER IP]:162 messageid 0 version 1 errorindex 0 transactionid 534 notificationtype TRAP community public requestid 11443 VARBINDS: DISMAN-EVENT-MIB::sysUpTimeInstance type=67 value=Timeticks: (26413504) 3 days, 1:22:15.04 SNMPv2-MIB::snmpTrapOID.0 type=6 value=OID: CISCO-LWAPP-AP-MIB::ciscoLwappApIfDownNotify CISCO-LWAPP-AP-MIB::cLApSysMacAddress.0 type=4 value=Hex-STRING: 64 D9 89 6C 7D 90 CISCO-LWAPP-AP-MIB::cLApDot11IfSlotId.0 type=2 value=INTEGER: 0 CISCO-LWAPP-AP-MIB::cLApAdminStatus.0 type=2 value=INTEGER: 1 CISCO-LWAPP-AP-MIB::cLApDot11IfAdminStatus.0 type=2 value=INTEGER: 1 CISCO-LWAPP-AP-MIB::cLApIfUpDownFailureType.0 type=2 value=INTEGER: 2 CISCO-LWAPP-AP-MIB::cLApIfUpDownCause.0 type=4 value=STRING: "Radio interface reset." CISCO-LWAPP-AP-MIB::cLApIfUpDownFailureCode.0 type=4 value=STRING: "RADIO_RC_IDB_RESET" CISCO-LWAPP-AP-MIB::cLApName.0 type=4 value=STRING: "STAP116"
          Точка доступа поднялась:
          20:12:50 2019/02/17 PDU INFO: transactionid 535 notificationtype TRAP requestid 11444 community public version 1 errorindex 0 receivedfrom UDP: [WLC IP]:32770->[ZABBIX SERVER IP]:162 messageid 0 errorstatus 0 VARBINDS: DISMAN-EVENT-MIB::sysUpTimeInstance type=67 value=Timeticks: (26413504) 3 days, 1:22:15.04 SNMPv2-MIB::snmpTrapOID.0 type=6 value=OID: CISCO-LWAPP-AP-MIB::ciscoLwappApIfUpNotify CISCO-LWAPP-AP-MIB::cLApSysMacAddress.0 type=4 value=Hex-STRING: 64 D9 89 6C 7D 90 CISCO-LWAPP-AP-MIB::cLApDot11IfSlotId.0 type=2 value=INTEGER: 0 CISCO-LWAPP-AP-MIB::cLApPortNumber.0 type=2 value=INTEGER: 2 CISCO-LWAPP-AP-MIB::cLApIfUpDownFailureType.0 type=2 value=INTEGER: 2 CISCO-LWAPP-AP-MIB::cLApIfUpDownCause.0 type=4 value=STRING: "Radio interface reset." CISCO-LWAPP-AP-MIB::cLApIfUpDownFailureCode.0 type=4 value=STRING: "RADIO_RC_IDB_RESET" CISCO-LWAPP-AP-MIB::cLApName.0 type=4 value=STRING: "STAP116"

          Сделал в темплейте WLC сделал два новых айтема:
          AP Up
          snmptrap[ciscoLwappApIfUpNotify]

          Ap Down
          snmptrap[ciscoLwappApIfDownNotify]

          События в Last Data по айтемам раскладываются корректно. И вот дальше у меня ступор. Мне надо отловить в событии название точки доступа.
          Пытаюсь сделать триггер, но он не работает:
          {Template Cisco WLC Discovery:snmptrap[ciscoLwappApIfUpNotify].iregexp(""(S(T|G)AP[0-9]{2,3}"")}=1)
          Пытался передать по событию ciscoLwappApIfUpNotify - триггер срабатывает, но когда создаю название вида AP {ITEM.VALUE} on {HOST.NAME} is up - ITEM.VALUE передается полностью весь трап. Попытки регекспом его порезать до только названия точки доступа тоже не увенчались успехом (((
          Подскажите, может кто-то с таким сталкивался? Как корректно трап в триггер распарсить?
          Last edited by madStas; 17-02-2019, 23:06.

          Comment


          • Evgeniy
            Evgeniy commented
            Editing a comment
            Как-то так...
            AP {{ITEM.VALUE}.regsub(".*"(.+)"$", "\1")} on {HOST.NAME} is up

          • Evgeniy
            Evgeniy commented
            Editing a comment
            Экранировать походу забыл...
            AP {{ITEM.VALUE}.regsub(".*"(.+)"$", "\1")} on {HOST.NAME} is up
        • madStas
          Junior Member
          • Feb 2019
          • 7

          #6
          Попробовал, триггер по прежнему выдает все содержимое трапа :
          AP {06:47:20 2019/02/18 PDU INFO: receivedfrom UDP: [..]:32770->[]:162 messageid 0 errorstatus 0 requestid 11466 community sm@rtNet transactionid 557 notificationtype TRAP version 1 errorindex 0 VARBINDS: DISMAN-EVENT-MIB::sysUpTimeInstance type=67 value=Timeticks: (30220504) 3 days, 11:56:45.04 SNMPv2-MIB::snmpTrapOID.0 type=6 value=OID: CISCO-LWAPP-AP-MIB::ciscoLwappApIfDownNotify CISCO-LWAPP-AP-MIB::cLApSysMacAddress.0 type=4 value=Hex-STRING: 64 D9 89 6C 7D 90 CISCO-LWAPP-AP-MIB::cLApDot11IfSlotId.0 type=2 value=INTEGER: 1 CISCO-LWAPP-AP-MIB::cLApAdminStatus.0 type=2 value=INTEGER: 1 CISCO-LWAPP-AP-MIB::cLApDot11IfAdminStatus.0 type=2 value=INTEGER: 1 CISCO-LWAPP-AP-MIB::cLApIfUpDownFailureType.0 type=2 value=INTEGER: 2 CISCO-LWAPP-AP-MIB::cLApIfUpDownCause.0 type=4 value=STRING: "Heartbeat Timeout" CISCO-LWAPP-AP-MIB::cLApIfUpDownFailureCode.0 type=4 value=STRING: "AP_IF_TRAP_ECHO_TIMEOUT" CISCO-LWAPP-AP-MIB::cLApName.0 type=4 value=STRING: "STAP116".regsub(".*"(.+)"$", "\1")} on STWLC02 is down
          Last edited by madStas; 18-02-2019, 09:03.

          Comment

          • Evgeniy
            Senior Member
            • May 2012
            • 157

            #7
            почему-то в комментарии двойные кавычки внутри выражения не экранируются
            Code:
            AP {{ITEM.VALUE}.regsub(".*\"(.+)\"$", "\1")} on {HOST.NAME} is up

            Comment

            • madStas
              Junior Member
              • Feb 2019
              • 7

              #8
              А вот в таком виде - все заработало!!!!!!!!!!
              AP {{ITEM.VALUE}.regsub("(S(T|G)AP[0-9]{2,3})", "\1")} on {HOST.NAME} is down

              Спасибо!!!!
              Last edited by madStas; 18-02-2019, 09:03.

              Comment

              Working...