Ad Widget

Collapse

Обработка Snmp-трапов.

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • gdgsoft
    Senior Member
    • Apr 2009
    • 202

    #1

    Обработка Snmp-трапов.

    Помогите настроить обработку SNMP трапов в забиксе.
    Что сейчас есть:
    - хост SNMP_Default
    - темплейт Template_Trapper
    - в темплейте есть один Item с названием snmptraps
    Сделано по описанию: http://www.zabbix.org/forum/showthread.php?t=8924
    Трапы приходят и их видно в забиксе в Monitoring -> Last data, но как и что с ними дальше делать не могу допетрить. Натолкните на истинный путь
    А еще лучше дайте хороший пример
    Уже месяца 4 пытаюсь разобраться, когда есть время, как от стенки горох
    Нужно принимать состояние упсов и контролировать аварии типа: статсус упса, температура, разряд батареи, оставшееся время работы и т.д.
    Помогите кто чем может.
    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)
  • dotneft
    Senior Member
    • Nov 2008
    • 699

    #2
    хых...а что ты с ними хочешь дальше делать?

    Comment

    • gdgsoft
      Senior Member
      • Apr 2009
      • 202

      #3
      Хотелось бы их как то парсить и в зависимости от OID-ов, которые внутри, выводить информацию что то вроде: UPS1 работает от батарей, Высокий разряд батарей UPS1 и т.д.
      Но что то мне подсказывает, что это сделать нельзя. Меня интересует представление аварий как на обычных системах мониторинга. Не знаю как объснить, если кто видел, то на примере: Radiocommander (Siemens), OMC-R (Alcatel), Netcool (не считаю за систему мониторинга )
      Хорошее сравнение T-MIP от HP или софт от TTI Communication. Имеется ввиду отображение алармов: аларм появился, пришел трап и высвитался информация на экране. Аларм отклирился, пришел трап, в забиксе аларм тоже ушел.
      Подобное возможно в Забиксе?
      Last edited by gdgsoft; 24-04-2009, 08:25.
      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

      • Hober
        Senior Member
        • Dec 2008
        • 109

        #4
        Originally posted by gdgsoft
        Хотелось бы их как то парсить и в зависимости от OID-ов, которые внутри, выводить информацию что то вроде: UPS1 работает от батарей, Высокий разряд батарей UPS1 и т.д.
        Но что то мне подсказывает, что это сделать нельзя. Меня интересует представление аварий как на обычных системах мониторинга. Не знаю как объснить, если кто видел, то на примере: Radiocommander (Siemens), OMC-R (Alcatel), Netcool (не считаю за систему мониторинга )
        Хорошее сравнение T-MIP от HP или софт от TTI Communication. Имеется ввиду отображение алармов: аларм появился, пришел трап и высвитался информация на экране. Аларм отклирился, пришел трап, в забиксе аларм тоже ушел.
        Подобное возможно в Забиксе?
        Не совсем понятно.
        У меня UPS опрашиваются по SNMP:
        Например режим работы UPS:
        1.3.6.1.2.1.33.1.4.1.0
        Получаю значение:
        Либо 3, либо 4 либо 5
        Делаю тригер "если значение стало 4 - сработать"


        Делаю условие: если сработал тригер - высылается аларм, с текстом, что UPS переключился в режим работы от батареии
        и т.д.

        Тоже самое с временем работы от батареии.
        Получаю минуты. Делаю тригер - сработать если время меньше 15 минут, далее отослать аларм
        Zabbix Servers - 1
        Zabbix Proxy - 145
        Monitored Servers: ~ 1400

        Comment

        • gdgsoft
          Senior Member
          • Apr 2009
          • 202

          #5
          Originally posted by Hober
          Не совсем понятно.
          У меня UPS опрашиваются по SNMP:
          Например режим работы UPS:
          1.3.6.1.2.1.33.1.4.1.0
          Получаю значение:
          Либо 3, либо 4 либо 5
          Делаю тригер "если значение стало 4 - сработать"


          Делаю условие: если сработал тригер - высылается аларм, с текстом, что UPS переключился в режим работы от батареии
          и т.д.

          Тоже самое с временем работы от батареии.
          Получаю минуты. Делаю тригер - сработать если время меньше 15 минут, далее отослать аларм
          Спасибо, но в данном случае система, где стоит Забикс, выступает в активной роли, она сама опрашивает UPS и т.д.
          Если использовать систему в пассивной роли, по отношению к оборудованию и тем самым ловить трапы, то это позволит разгурузить как сеть(езернет), так и сам сервер, на котором стоит Забикс (у меня на нем еще куча всего).
          Дело в том, что у меня есть энное количество UPS и другого оборудования, которое стоит в разных городах, каналы к которому не всегда хорошие
          Да и правильнее, на мой взгляд, ловить трапы от оборудования, чем с какой то периодичностью пулять запросы с сервера по всей сети.

          Вот и вопрос: оборудование трапы шлет, они попадают в Забикс (как я писал выше), их можно увидеть в Monitoring -> Last data, но как их от туда достать и обработать OID-ы, которые там присутствуют и сделать уже по результатам обработки вывод информации как это делаете Вы?
          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

          • gdgsoft
            Senior Member
            • Apr 2009
            • 202

            #6
            Вот типовая информация, которая появляется у меня в Забиксе после обработки трапа от одного UPS:

            snmptraphandler for Zabbix (Tue Mar 31 00:02:14 2009)
            [Tue Mar 31 00:02:14 2009] zabbix_host= SNMP_Default
            [Tue Mar 31 00:02:14 2009] OID: .1.3.6.1.2.1.1.3.0
            [Tue Mar 31 00:02:14 2009] OID: .1.3.6.1.6.3.1.1.4.1.0
            [Tue Mar 31 00:02:14 2009] OID: .1.3.6.1.2.1.33.1.6.2.1.1.73
            [Tue Mar 31 00:02:14 2009] OID: .1.3.6.1.2.1.33.1.6.2.1.2.73
            [Tue Mar 31 00:02:14 2009] OID: .1.3.6.1.6.3.18.1.3.0
            [Tue Mar 31 00:02:14 2009] OID: .1.3.6.1.6.3.18.1.4.0
            [Tue Mar 31 00:02:14 2009] str= .1.3.6.1.2.1.1.3.0: 28:6:17:07.15
            .1.3.6.1.6.3.1.1.4.1.0: .1.3.6.1.2.1.33.2.0.3
            .1.3.6.1.2.1.33.1.6.2.1.1.73: 73
            .1.3.6.1.2.1.33.1.6.2.1.2.73: .1.3.6.1.2.1.33.1.6.3.6
            .1.3.6.1.6.3.18.1.3.0: 10.10.10.10
            .1.3.6.1.6.3.18.1.4.0: \"public\"


            Эту часть дописывает скрипт в лог:

            [Tue Mar 31 00:02:14 2009] command= /usr/local/sbin/zabbix_sender --zabbix-server localhost --port 10051
            [Tue Mar 31 00:02:14 2009] ERROR: Failed to send item (10.10.10.10, 10.10.10.10) .1.3.6.1.2.1.1.3.0: 28:6:17:07.15
            .1.3.6.1.6.3.1.1.4.1.0: .1.3.6.1.2.1.33.2.0.3
            .1.3.6.1.2.1.33.1.6.2.1.1.73: 73
            .1.3.6.1.2.1.33.1.6.2.1.2.73: .1.3.6.1.2.1.33.1.6.3.6
            .1.3.6.1.6.3.18.1.3.0: 10.10.10.10
            .1.3.6.1.6.3.18.1.4.0: \"public\"
            using command /usr/local/sbin/zabbix_sender --zabbix-server localhost --port 10051 --host SNMP_Default --key snmptraps --value "(10.10.10.10, 10.10.10.10) .1.3.6.1.2.1.1.3.0: 28:6:17:07.15
            .1.3.6.1.6.3.1.1.4.1.0: .1.3.6.1.2.1.33.2.0.3
            .1.3.6.1.2.1.33.1.6.2.1.1.73: 73
            .1.3.6.1.2.1.33.1.6.2.1.2.73: .1.3.6.1.2.1.33.1.6.3.6
            .1.3.6.1.6.3.18.1.3.0: 10.10.10.10
            .1.3.6.1.6.3.18.1.4.0: \"public\"
            "
            [Tue Mar 31 00:02:14 2009] Exiting ...

            Вроде так. Сейчас нет живых трапов в Заббиксе, т.к. полностью переставлялся. Но первая часть, это вроде то, что появляется в Заббиксе, когда смотришь в меню Monitoring->Last data.
            Вопрос в том, как обработать первую часть Заббиксом и показать алармы, что произошло то-то и то-то. Если конечно это возможно в принципе.
            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

            • Nikolaicheg
              Senior Member
              • Feb 2009
              • 111

              #7
              насколько я знаю, можно создать триггер, котороый будет срабатывать при наличии определенного текста в item'е. согласно этому можно генерировать разные алерты. Гдето на англоязычном форуме видел описание создания триггеров, обрабатывающих текстовые значения.

              Comment

              • dotneft
                Senior Member
                • Nov 2008
                • 699

                #8
                можно использовать триггер регулярных выражений (regexp, iregexp) или str

                Comment

                • Nikolaicheg
                  Senior Member
                  • Feb 2009
                  • 111

                  #9
                  я и говорил об этих триггерах

                  Comment

                  • gdgsoft
                    Senior Member
                    • Apr 2009
                    • 202

                    #10
                    Спасибо за советы. Впринципе, через str() OIDы находятся. Пока поэксперементировал с одним, а не с группой. Пока не знаю как
                    Вопрос возник в другом. В скрипте snmptrap.pl (snmptrap.sh) в соответствии с примером, в качестве имени хоста указан SNMP_Default (в нем указан IP:0.0.0.0), соответственно все трапы принимает именно он. При этом в мониторинге показывается срабатывание данного триггера и генерация события.
                    Я создаю свой хост UPS_ZabbixServer и указываю в нем IP самого сервера, ну что бы сэмитировать посылку трапа с упса. Даю команду:
                    snmptrap -c operator -v 2c 10.10.10.10 "" .1.3.6.1.2.1.33.2.0.1
                    При этом, если смотреть в Monitoring->Triggers, то вижу что триггер срабатывает, но при этом имеет статус Unknown и, как следствие в событиях у меня ничего не появляется.
                    Как только переименовал хост UPS_ZabbixServer в SNMP_Default, но при этом IP оставил 10.10.10.10, я получил нормальное срабатывание триггера и появление события. Т.е., так как в скрипте snmptrap.pl в качестве хоста прописано SNMP_Default, то все события идут на него и только в таком случае может происходить нормальная обработка трапов.
                    Вопрос: как можно организовать разделение по хостам, что бы не все трапы обрабатывал SNMP_Default, и соответственно при генерации события высвечивалось имя хоста с которого пришел трап, а не SNMP_Default для всех хостов.
                    В инете встречал решение данной проблемы. В ней проводилась модификация скрипта и по моему самой БД.
                    Можно реализовать подобную вещь средствами самого Заббикса?

                    Или для реализации подомной вещи лучше просто разбирать лог, который пишет скрипт и от туда выбирать и айпишник хоста, оиды и их значения и т.д.?
                    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

                    • Nikolaicheg
                      Senior Member
                      • Feb 2009
                      • 111

                      #11
                      я вручную модифицировал скрипт snmptrap.pl, чтобы он лез в базу, искал по IP имя хоста, а потом отсылал трап через zabbix_sender серверу по имени хоста. Создал шаблон, в шаблоне 1 итем - zabbix trap. привязал шаблон к необходимым хостам. Теперь у каждого хоста есть заббикс траппер итем, в нем и отображаются трапы. И уже после этого можно делать триггеры на конкретный хост.

                      Comment

                      • gdgsoft
                        Senior Member
                        • Apr 2009
                        • 202

                        #12
                        Не составит труда поделиться скриптиком?
                        В принципе, я так понимаю здесь:
                        In my opinion Zabbix is a really good NMS, but it’s lacking on SNMP traps handling. Traps can be received using Net-SNMP suite and snmptrap.sh, a script released within the misc directory of …

                        есть эти модификации для шела. Я использую перловский скрипт с этого форума (другая ветка).
                        Но т.к. я уже лет 10 ничего не писал, а с перлом, равно как и с php вообще не разбирался, боюсь для меня сейчас сделать это самому будет сложно
                        Да и мозг приобрел вид закостенелого отростка
                        Возможно, кому то в будущем тоже поможет.
                        Спасибо.
                        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

                        • Nikolaicheg
                          Senior Member
                          • Feb 2009
                          • 111

                          #13
                          я тут уже выкладывал скриптец на форуме

                          Comment

                          • gdgsoft
                            Senior Member
                            • Apr 2009
                            • 202

                            #14
                            Решил вернуться к вопросу обработки трапов. А то немного отвлекся

                            Вопрос вот в чем.
                            Ниже приведены две группы трапов:
                            1) Посылка об аварии
                            .1.3.6.1.2.1.1.3.0: 9:18:26:38.39
                            .1.3.6.1.6.3.1.1.4.1.0: .1.3.6.1.2.1.33.2.0.3
                            .1.3.6.1.2.1.33.1.6.2.1.1.59: 59
                            .1.3.6.1.2.1.33.1.6.2.1.2.59: .1.3.6.1.2.1.33.1.6.3.10
                            .1.3.6.1.6.3.1.1.4.3.0: .1.3.6.1.2.1.33.2
                            2) Посылка о еще очистке
                            .1.3.6.1.2.1.1.3.0: 9:18:26:45.92
                            .1.3.6.1.6.3.1.1.4.1.0: .1.3.6.1.2.1.33.2.0.4
                            .1.3.6.1.2.1.33.1.6.2.1.1.59: 59
                            .1.3.6.1.2.1.33.1.6.2.1.2.59: .1.3.6.1.2.1.33.1.6.3.10
                            .1.3.6.1.6.3.1.1.4.3.0: .1.3.6.1.2.1.33.2

                            Соответственно в OID-е .1.3.6.1.6.3.1.1.4.1.0 приходит 1.3.6.1.2.1.33.2.0.3 или 1.3.6.1.2.1.33.2.0.4

                            Я немного переделал скрипт таким образом, что трап(все оиды в блоке) приходили не целиком, а каждый отдельно, что бы всю эту кучу можно было разруливать на основе Итемов. Может я и не прав Сейчас, ко мне приходят все строки отдельно и я могу, как мне кажется обходится более простыми тригерами и т.д.

                            Но! Возникло ряд проблем, по крайней мере для меня.
                            Дело в том, что когда приходят Оиды из первой группы, то триггера взводятся нормально (почти нормально), а вот гасятся они криво. Когда приходит Оид 1.3.6.1.6.3.1.1.4.1.0 со значением 1.3.6.1.2.1.33.2.0.4, то соответственно он и сбрасывается, а вот триггера для оидов:
                            .1.3.6.1.2.1.33.1.6.2.1.1.59: 59
                            .1.3.6.1.2.1.33.1.6.2.1.2.59: .1.3.6.1.2.1.33.1.6.3.10
                            и т.д.
                            остаются взведенными.
                            Подскажите, как все это счастье полность гасить?

                            Так же есть проблема с Оидами вот в этом месте:
                            .1.3.6.1.2.1.33.1.6.2.1.1.59: 59
                            .1.3.6.1.2.1.33.1.6.2.1.2.59: .1.3.6.1.2.1.33.1.6.3.10

                            Дело в том, что 59, в данном примере, это индекс.
                            У меня же в темплейтах описаны "нормальные" Оиды:
                            .1.3.6.1.2.1.33.1.6.2.1.1
                            .1.3.6.1.2.1.33.1.6.2.1.2
                            и т.д.
                            Соответственно, триггеры с данными Оидами теряются. Читал про обработку динамических индексов на стр.182. Создал такой вот Итем:
                            .1.3.6.1.2.1.33.1.6.3["index",".1.3.6.1.2.1.33.1.6.2.1.2",".1.3.6.1.2.1. 33.1.6.3"]
                            но ничего не вышло

                            Подскажите кто чем может
                            1) как гасить все триггера в случае прихода одного конкретного
                            2) как создать итем и работать с ним в случае если он с динамическим индексом.

                            А еще лучше, помогите сделать ЭТО!
                            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

                            • evgeny elkin
                              Member
                              • Jul 2007
                              • 52

                              #15
                              Отображение трапа в Latest Data и History

                              Добрый день! Настроил обработку трапов с помощью скрипта на перле -
                              http://www.zabbix.com/forum/showpost...7&postcount=27, все работает, но есть проблема..

                              Проблема вот в чем: в Заббиксе (Latest Data) отображается только 3 или 4 первых строки трапа, например:
                              Code:
                              (192.168.4.10, 192.168.4.10) DISMAN-EVENT-MIB::sysUpTimeInstance: 0:0:00:00.00
                              SNMPv2-MIB::snmpTrapOID.0: SNMPv2-SMI::enterprises.1123.4.300.0.1
                              SNMPv2-SMI::enterprises.1123.4.300.1.1.1: 127.0.0.1
                              SNMPv2-SMI::enterprises.1123.4.300.1.1.2: \\\\Out-of-Band
                              и всё..
                              Хотя в snmptrapper.log полный трап
                              Code:
                              [Wed Sep 23 16:42:07 2009] str= DISMAN-EVENT-MIB::sysUpTimeInstance: 0:0:00:00.00
                              SNMPv2-MIB::snmpTrapOID.0: SNMPv2-SMI::enterprises.1123.4.300.0.1
                              SNMPv2-SMI::enterprises.1123.4.300.1.1.1: 127.0.0.1
                              SNMPv2-SMI::enterprises.1123.4.300.1.1.2: \\\\\\\\"Out-of-Band       \\\\\\\\"
                              SNMPv2-SMI::enterprises.1123.4.300.1.1.3: \\\\\\\"atkds3200                     \\\\\\\"
                              SNMPv2-SMI::enterprises.1123.4.300.1.1.4: \\\\\\"280b                \\\\\\"
                              SNMPv2-SMI::enterprises.1123.4.300.1.1.5: \\\\\"Sep 23, 2009 4:39:16 PM                 \\\\\"
                              SNMPv2-SMI::enterprises.1123.4.300.1.1.6: \\\\"Controller enclosure component failed                                 \\\\"
                              SNMPv2-SMI::enterprises.1123.4.300.1.1.7: \\\"Power-fan canister                                          \\\"
                              SNMPv2-SMI::enterprises.1123.4.300.1.1.8: \\"Enclosure 85, Slot 1                    \\"
                              SNMP-COMMUNITY-MIB::snmpTrapCommunity.0: \"public\"
                              В чем может быть проблема, кто-нибудь сталкивался с подобным? Заранее спасибо!

                              Comment

                              Working...