Ad Widget

Collapse

Настройка snmptrap на zabbix

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • aydar
    Senior Member
    • Dec 2014
    • 176

    #1

    Настройка snmptrap на zabbix

    всем привет, решил тут на днях настроить snmptraps в центосе

    Пробовал и в snmptt и скрипт zabbix_trap_receiver.pl, 3 день и трапы не пишутся в файл, где я мог косякнуть?

    Code:
    snmptrap -v 1 -c public 127.0.0.1 '.1.3.6.1.6.3.1.1.5.3' '0.0.0.0' 6 33 '55' .1.3.6.1.6.3.1.1.5.3 s "teststring000"
    snmdtrapd.conf

    Code:
     donotlogtraps no
     authCommunity execute public
     authCommunity execute XRUK
     perl do "/usr/bin/zabbix_trap_receiver.pl";
    zabbix_trap_receiver.pl

    Code:
    $SNMPTrapperFile = 'var/log/snmptt/zabbix_traps.tmp';
    $DateTimeFormat = '%H:%M:%S %Y/%m/%d';
    демоны запущены
  • id2669099
    Member
    • Mar 2016
    • 68

    #2
    Я бы попробовал сначала запустить snmptrapd в режиме отладки. Так понять можно ловит ли он их в принципе или доходят ли трапы вообще.

    Code:
    snmptrapd -f -L o

    Comment

    • aydar
      Senior Member
      • Dec 2014
      • 176

      #3
      С приемом трапов разобрался, подскажите, как лучше сделать.

      Приходит порядка 10 трапов (почти одновременно) о не сохранении конфига, вида:

      Code:
        15:47:47 2016/07/04 ZBXTRAP 192.168.10.12
      PDU INFO:
        notificationtype               TRAP
        version                        0
        receivedfrom                   UDP: [192.168.10.12]:34000->[192.168.10.130]
        errorstatus                    0
        messageid                      0
        community                      public
        transactionid                  9
        errorindex                     0
        requestid                      0
      VARBINDS:
        DISMAN-EVENT-MIB::sysUpTimeInstance type=67 value=Timeticks: (55) 0:00:00.55
        SNMPv2-MIB::snmpTrapOID.0      type=6  value=OID: IF-MIB::linkDown.0.33
        IF-MIB::linkDown               type=4  value=STRING: "Config not saved at 192.168.160.xxx"
        SNMP-COMMUNITY-MIB::snmpTrapCommunity.0 type=4  value=STRING: "public"
        SNMPv2-MIB::snmpTrapEnterprise.0 type=6  value=OID: IF-MIB::linkDown
      15:47:47 2016/07/04 ZBXTRAP 192.168.10.12
      PDU INFO:
        notificationtype               TRAP
        version                        0
        receivedfrom                   UDP: [192.168.10.12]:39441->[192.168.10.130]
        errorstatus                    0
        messageid                      0
        community                      public
        transactionid                  10
        errorindex                     0
        requestid                      0
      VARBINDS:
        DISMAN-EVENT-MIB::sysUpTimeInstance type=67 value=Timeticks: (55) 0:00:00.55
        SNMPv2-MIB::snmpTrapOID.0      type=6  value=OID: IF-MIB::linkDown.0.33
        IF-MIB::linkDown               type=4  value=STRING: "Config not saved at 10.13.150.xxx"
        SNMP-COMMUNITY-MIB::snmpTrapCommunity.0 type=4  value=STRING: "public"
        SNMPv2-MIB::snmpTrapEnterprise.0 type=6  value=OID: IF-MIB::linkDown
      15:47:47 2016/07/04 ZBXTRAP 192.168.10.12
      PDU INFO:
        notificationtype               TRAPOBj@
        version                        0
        receivedfrom                   UDP: [192.168.10.12]:54060->[192.168.10.130]
        errorstatus                    0
        messageid                      0
        community                      public
        transactionid                  11
        errorindex                     0
        requestid                      0
      VARBINDS:
        DISMAN-EVENT-MIB::sysUpTimeInstance type=67 value=Timeticks: (55) 0:00:00.55
        SNMPv2-MIB::snmpTrapOID.0      type=6  value=OID: IF-MIB::linkDown.0.33
        IF-MIB::linkDown               type=4  value=STRING: "Config not saved at 192.168.135.xxx"
        SNMP-COMMUNITY-MIB::snmpTrapCommunity.0 type=4  value=STRING: "public"
        SNMPv2-MIB::snmpTrapEnterprise.0 type=6  value=OID: IF-MIB::linkDown
      меня интересует строчка Config not saved at 192.168.160.ххх, если она есть, то алерт.

      я так понимаю под каждый трап мне нужно создавать отдельный элемент данных?
      как мне сбрасывать триггер? если трапа о том, что все ок не будет
      Last edited by aydar; 04-07-2016, 15:43.

      Comment

      • id2669099
        Member
        • Mar 2016
        • 68

        #4
        Originally posted by aydar
        меня интересует строчка config not saved at 192.168.160.ххх, если она есть, то алерт.

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

        Comment

        • aydar
          Senior Member
          • Dec 2014
          • 176

          #5
          Originally posted by id2669099
          да под каждый трап свой элемент, можешь использовать регулярные выражения
          сбрасывать как вариант по таймауту можно
          это мне руками нужно будет создать порядка 20-50 элементов данных?
          в последние данные целиком трап искомый падает, это нормально?

          11:09:10 2016/07/05 pdu info:
          Notificationtype trap
          version 0
          receivedfrom udp: [192.168.10.*]:60025->[192.168.10.13*]
          errorstatus 0
          messageid 0
          community public
          transactionid 53
          errorindex 0
          requestid 0
          varbinds:
          Disman-event-mib::sysuptimeinstance type=67 value=timeticks: (55) 0:00:00.55
          snmpv2-mib::snmptrapoid.0 type=6 value=oid: If-mib::linkdown.0.33
          if-mib::linkdown type=4 value=string: "config not saved at 10.13.70.2*"
          snmp-community-mib::snmptrapcommunity.0 type=4 value=string: "public"
          snmpv2-mib::snmptrapenterprise.0 type=6 value=oid: If-mib::linkdown
          Last edited by aydar; 05-07-2016, 10:13.

          Comment

          • aneye
            Junior Member
            • May 2016
            • 13

            #6
            А подскажите пожалуйста, как вы разобрались с трапами? Сейчас вот тоже настраиваю, но пока не взлетает - по консоли snmptrapd -f -L o трапы приходят, но файл в /tmp не появляется.

            Comment

            • aydar
              Senior Member
              • Dec 2014
              • 176

              #7
              Originally posted by aneye
              А подскажите пожалуйста, как вы разобрались с трапами? Сейчас вот тоже настраиваю, но пока не взлетает - по консоли snmptrapd -f -L o трапы приходят, но файл в /tmp не появляется.
              во первых файл с трапами я вынес в
              /var/log/snmptt

              а так все по мануалу, использую скрипт обработки .pl

              Comment

              • aneye
                Junior Member
                • May 2016
                • 13

                #8
                Попробовал вынести файл в другое место - не работает. Файл не создается. А в консоли snmptrapd я такое вижу:

                Can't locate NetSNMP/TrapReceiver.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.14.2 /usr/local/share/perl/5.14.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.14 /usr/share/perl/5.14 /usr/local/lib/site_perl .) at /usr/share/snmp/snmp_perl_trapd.pl line 13.
                BEGIN failed--compilation aborted at /usr/share/snmp/snmp_perl_trapd.pl line 13.
                embedded perl support failed to initialize
                NET-SNMP version 5.4.3 AgentX subagent connected
                NET-SNMP version 5.4.3
                2016-07-06 10:10:37 10.63.2.97(via UDP: [10.63.2.97]:57285->[10.63.2.100]) TRAP, SNMP v1, community public
                iso.3.6.1.4.1.9.9.43.2 Enterprise Specific Trap (1) Uptime: 1:44:43.69
                iso.3.6.1.4.1.9.9.43.1.1.6.1.3.22 = INTEGER: 1 iso.3.6.1.4.1.9.9.43.1.1.6.1.4.22 = INTEGER: 2 iso.3.6.1.4.1.9.9.43.1.1.6.1.5.22 = INTEGER: 3

                Подскажите, что делать с первым сообщением, где он что-то не может обнаружить? Возможно, проблема в этом?

                Comment

                • aneye
                  Junior Member
                  • May 2016
                  • 13

                  #9
                  Вроде разобрался. К сожалению, ни в одном из мануалов нет полного набора необходимых пакетов. В моем случае отсутствовал snmptt, после установки которого все взлетело без особых проблем.

                  Comment

                  • n0b0dy
                    Junior Member
                    • May 2016
                    • 19

                    #10
                    Originally posted by aneye
                    Попробовал вынести файл в другое место - не работает. Файл не создается. А в консоли snmptrapd я такое вижу:

                    Can't locate NetSNMP/TrapReceiver.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.14.2 /usr/local/share/perl/5.14.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.14 /usr/share/perl/5.14 /usr/local/lib/site_perl .) at /usr/share/snmp/snmp_perl_trapd.pl line 13.
                    BEGIN failed--compilation aborted at /usr/share/snmp/snmp_perl_trapd.pl line 13.
                    embedded perl support failed to initialize
                    NET-SNMP version 5.4.3 AgentX subagent connected
                    NET-SNMP version 5.4.3
                    2016-07-06 10:10:37 10.63.2.97(via UDP: [10.63.2.97]:57285->[10.63.2.100]) TRAP, SNMP v1, community public
                    iso.3.6.1.4.1.9.9.43.2 Enterprise Specific Trap (1) Uptime: 1:44:43.69
                    iso.3.6.1.4.1.9.9.43.1.1.6.1.3.22 = INTEGER: 1 iso.3.6.1.4.1.9.9.43.1.1.6.1.4.22 = INTEGER: 2 iso.3.6.1.4.1.9.9.43.1.1.6.1.5.22 = INTEGER: 3

                    Подскажите, что делать с первым сообщением, где он что-то не может обнаружить? Возможно, проблема в этом?
                    Вам говорят, что у Вас нет модуля NetSNMP/TrapReceiver.pm перлового. Установите либо из реп (если там есть), либо из cpan.

                    Comment

                    • id2669099
                      Member
                      • Mar 2016
                      • 68

                      #11
                      Originally posted by aydar
                      во первых файл с трапами я вынес в
                      /var/log/snmptt

                      а так все по мануалу, использую скрипт обработки .pl
                      в скрипте так указан путь?

                      $SNMPTrapperFile = '/var/log/snmptt';

                      Comment

                      • aydar
                        Senior Member
                        • Dec 2014
                        • 176

                        #12
                        Originally posted by id2669099
                        в скрипте так указан путь?

                        $SNMPTrapperFile = '/var/log/snmptt';
                        Originally posted by id2669099
                        в скрипте так указан путь?

                        $SNMPTrapperFile = '/var/log/snmptt';
                        $SNMPTrapperFile = 'var/log/snmptt/zabbix_traps.tmp';


                        Ребят, я все по свей проблеме.
                        есть порядка 100 комутаторов, нужно проверять сохранения конфигурации.

                        Был написан скрипт, который запускается по крону (раз в час) на машине и отсылает трапы о несохраненных конфигах в один элемент данных с ключом snmptrap["Config not saved at *"]
                        в среднем приходит 20 трапов:

                        Code:
                        16:00:12 2016/07/07 PDU INFO:
                          notificationtype               TRAP
                          version                        0
                          receivedfrom                   UDP: [192.168.10.хх]:35905->[192.168.10.1хх]
                          errorstatus                    0
                          messageid                      0
                          community                      public
                          transactionid                  230
                          errorindex                     0
                          requestid                      0
                        VARBINDS:
                          DISMAN-EVENT-MIB::sysUpTimeInstance type=67 value=Timeticks: (55) 0:00:00.55
                          SNMPv2-MIB::snmpTrapOID.0      type=6  value=OID: IF-MIB::linkDown.0.33
                          IF-MIB::linkDown               type=4  value=STRING: "Config not saved at 10.13.70.ххх (TUL-01-SW2)"
                          SNMP-COMMUNITY-MIB::snmpTrapCommunity.0 type=4  value=STRING: "public"
                          SNMPv2-MIB::snmpTrapEnterprise.0 type=6  value=OID: IF-MIB::linkDown
                        Мне нужно по каждому трапу сделать триггер, как это сделать? Пока мысль только, что через один элемент данных не пойдет у меня ничего, и все надо будет делать через прямые запросы в бд, руками делать 100 элементов данных и триггеров....
                        какое сделат ьусловие в триггерах ,если все хранится в 1 элементе данных?
                        Last edited by aydar; 07-07-2016, 15:58.

                        Comment

                        • aib
                          Senior Member
                          • Jan 2014
                          • 1615

                          #13
                          А вы точно хотите добавить "дополнительный" слой Трапов?
                          Если у вас есть свой скрипт, написанный и модфицируемый самостоятельно, что вам мешает просто (!) посылать данные в Zabbix, используя zabbix_send?

                          - создаете хост (если еще не создан)
                          - создаете Элемент данных с типом Zabbix Trapper и названием типа "Config saving Status"
                          - если конфигурация сохранена успешно - присылаете что-то типа
                          Code:
                          zabbix_sender -z Zabbix_Server_IP -s Switch_IP -k config_saving_status -o "Config saved successfully"
                          - если конфигурация НЕ сохранена - присылаете что-то типа
                          Code:
                          zabbix_sender -z Zabbix_Server_IP -s Switch_IP -k config_saving_status -o "Config not saved"
                          - на базе этого Элемента данных можете создать триггеры на :
                          - наличие слова "successfully" ИЛИ
                          - необновление данных за последние час/сутки/неделю

                          Кстати - этот Элемент данных и привязанные к нему Триггеры можно создать как Шаблон. И после отладки просто прикрепить ко всей группе свитчей.

                          Понятно, что в самописном скрипте можно сообрать и послать на сервер гораздо больше информации, чем можно послать в Трапе:
                          - объем сохраненного конфига
                          - имя пользователя, создавшего последние изменения
                          - разность текущего и предыдущего конфигов
                          - дата и время последнего изменения/сохранения

                          Всё в ваших руках.
                          Ну это если у вас действительно есть возможность дорабатывать скрипт и вы не поставлены в "позу пьющего оленя" требованием "Использовать ТОЛЬКО этот скрипт и НИКОГДА не отступать от его возможностей"

                          Удачи!
                          Sincerely yours,
                          Aleksey

                          Comment

                          • aydar
                            Senior Member
                            • Dec 2014
                            • 176

                            #14
                            Originally posted by aib
                            А вы точно хотите добавить "дополнительный" слой Трапов?
                            Если у вас есть свой скрипт, написанный и модфицируемый самостоятельно, что вам мешает просто (!) посылать данные в zabbix, используя zabbix_send?

                            - создаете хост (если еще не создан)
                            - создаете Элемент данных с типом zabbix trapper и названием типа "config saving status"
                            - если конфигурация сохранена успешно - присылаете что-то типа
                            Code:
                            zabbix_sender -z zabbix_server_ip -s switch_ip -k config_saving_status -o "config saved successfully"
                            - если конфигурация НЕ сохранена - присылаете что-то типа
                            Code:
                            zabbix_sender -z zabbix_server_ip -s switch_ip -k config_saving_status -o "config not saved"
                            - на базе этого Элемента данных можете создать триггеры на :
                            - наличие слова "successfully" ИЛИ
                            - необновление данных за последние час/сутки/неделю

                            Кстати - этот Элемент данных и привязанные к нему Триггеры можно создать как Шаблон. И после отладки просто прикрепить ко всей группе свитчей.

                            Понятно, что в самописном скрипте можно сообрать и послать на сервер гораздо больше информации, чем можно послать в Трапе:
                            - объем сохраненного конфига
                            - имя пользователя, создавшего последние изменения
                            - разность текущего и предыдущего конфигов
                            - дата и время последнего изменения/сохранения

                            Всё в ваших руках.
                            Ну это если у вас действительно есть возможность дорабатывать скрипт и вы не поставлены в "позу пьющего оленя" требованием "Использовать ТОЛЬКО этот скрипт и НИКОГДА не отступать от его возможностей"

                            Удачи!
                            Хост создал, элемент данных есть, туда приходят трапы о не сохранении
                            Конфига от кучи устройств, если все хорошо, то ничего не приходит.
                            Как мне отделить каждое устройство и по нему сделать триггер

                            Comment

                            • aib
                              Senior Member
                              • Jan 2014
                              • 1615

                              #15
                              Originally posted by aydar
                              Хост создал, элемент данных есть, туда приходят трапы о не сохранении
                              Конфига от кучи устройств, если все хорошо, то ничего не приходит.
                              Как мне отделить каждое устройство и по нему сделать триггер
                              Понимаете, я ту кучу букв написал для того, чтобы донести свою идею:
                              для каждого уже созданного устройства создать Элемент(ы) данных, содержащих информацию о сохранении конфигурации.

                              Не сваливать всё в одну огромную гору "Пофиг, пусть другие разбираются"
                              А сразу посылать информацию о конфигурации устройства в тот Хост, который описывает это устройство.

                              Прошу прощения, если слова мои кажутся мутными и непонятными.
                              Sincerely yours,
                              Aleksey

                              Comment

                              Working...