Ad Widget

Collapse

snmp No Such Instance

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • AlexSt
    Member
    • Aug 2012
    • 43

    #1

    snmp No Such Instance

    здравствуйте
    подскажите как импортировать мибы в заббикс чтобы он знал что к чему
    zabbix 2.0.6
    вывод snmpwalk:
    zabbix:~# snmpwalk -V
    NET-SNMP version: 5.7.1
    zabbix:~# snmptranslate 1.3.6.1.2.1.4.20.1.1
    IP-MIB::ipAdEntAddr
    zabbix:~# snmpwalk -v 2c -c public 192.168.156.1 ipAdEntAddr
    IP-MIB::ipAdEntAddr.192.168.156.1 = IpAddress: 192.168.156.1

    11320:20130605:131012.018 item [192.168.156.1:ipAdEntAddr] became not supported: No Such Instance currently exists at this OID

    Пробовал указывать OID 1.3.6.1.2.1.4.20.1.1 пишет ту же ошибку
    Как побороть эту проблему?
  • Jimson
    Senior Member
    • Jan 2008
    • 1327

    #2
    Если вы подсунули новый миб с этим ipAdEntAddr, то надо zabbix перезапустить. Мибы вычитываются на уровне библиотеки net-snmp.
    А вообще лучше не заморачиваться с мибами, это вам не dns, геморроя с ними гораздо больше чем пользы.

    Comment

    • AlexSt
      Member
      • Aug 2012
      • 43

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

      Comment

      • Jimson
        Senior Member
        • Jan 2008
        • 1327

        #4
        Так вы что указали в OID в конфигурации итема? Посмотрите внимательно на то что вам выдает snmpwalk.
        Hint: snmp Get() и GetNext() это совсем разные запросы и работают они совершенно различно, snmpwalk это цикличный GetNext(), а забикс делает snmp проверки, естественно, через Get(), commanline аналог snmpget.

        Comment

        • AlexSt
          Member
          • Aug 2012
          • 43

          #5
          хм действительно, а как быть тогда, подскажите в какую сторону копать?

          # snmpgetnext -v2c -c public 192.168.156.1 ipAdEntAddr
          IP-MIB::ipAdEntAddr.192.168.156.1 = IpAddress: 192.168.156.1
          # snmpget -v2c -c public 192.168.156.1 ipAdEntAddr
          IP-MIB::ipAdEntAddr = No Such Instance currently exists at this OID

          Comment

          • Jimson
            Senior Member
            • Jan 2008
            • 1327

            #6
            А вы не говорили что хотите сделать. Был вопрос про "почему no such instance", как я понимаю ответ получен и причина вам ясна.

            Comment

            • AlexSt
              Member
              • Aug 2012
              • 43

              #7
              Ну да , причина ясна, но как реализовать чтобы работало я пока не понял.
              У меня задача сделать автозаполняемыми инвентарные данные узлов.
              Ну по сути автоматическая инвентаризация.
              Т.е я снимаю разные данные с узлов MAC IP MASK sysLocation sysName sysContact, половину данных такие как MAC устройства модель, у меня получилось снимать, а вот с IP адресом неполучается, так же как и с маской.
              Оборудования много, это управляемые коммутаторы, от простых длинков, до циски, работники могут их менять и тп мне нужно следить, что и куда ушло. и тп
              Last edited by AlexSt; 06-06-2013, 02:25.

              Comment

              • Jimson
                Senior Member
                • Jan 2008
                • 1327

                #8
                Ну ищите нужные OID и собирайте. Просто тот OID, который вы использовали в первом посте для этих целей не очень подходит, его можно сравнить с вопросом "Какое имя у Васи?". Был в zabbix еще запрос через индекс: 1.2.3.4.5.[index, 6.7.8.9.0, "Ethernet0/1"] как то так. Не уверен что он в данный момент в рабочем состоянии, я не проверял, почти все опрашивают SNMP или через статически заданные OID, сгенерированные скриптами, или пользуются LLD. Но в вашем случае и он не поможет, так как во первых у вас индекс из нескольких чисел, а zabbix в данный момент такие не поддерживает, а во вторых не ясно если у вас том вообще индексный OID.

                Comment

                • AlexSt
                  Member
                  • Aug 2012
                  • 43

                  #9
                  Спасибо за помощь буду разбиратся

                  Comment

                  • AlexSt
                    Member
                    • Aug 2012
                    • 43

                    #10
                    Решил проблему используя внешнии проверки
                    написал скриптец
                    PHP Code:
                    #!/bin/bash
                    a="ipAdEntAddr"
                    b="ipAdEntNetMask"
                    if [ "$2" == "$a]
                            
                    then
                                    snmpwalk 
                    -v2c -public $$egrep --m 1 '([0-9]+\.){3}[0-9]+'
                    fi
                    if [ "$2" == "$b]
                            
                    then
                                    snmpwalk 
                    -v2c -public $$egrep --m 1 '[255]+([0-9]+\.){3}[0-9]+'
                    fi 

                    и элементы данных с ключами
                    snmpwalk.sh["{HOST.CONN}","ipAdEntAddr"]
                    snmpwalk.sh["{HOST.CONN}","ipAdEntNetMask"]

                    Вроде работает )

                    Comment

                    • AlexSt
                      Member
                      • Aug 2012
                      • 43

                      #11
                      Можно дополнить скрипт дополнительными параметрами

                      Comment

                      • Jimson
                        Senior Member
                        • Jan 2008
                        • 1327

                        #12
                        У вас, скорее всего, допустима ситуация с несколькими адресами, и что вернет скрипт в этом случае?

                        Comment

                        • AlexSt
                          Member
                          • Aug 2012
                          • 43

                          #13
                          Немного переделал скрипт
                          PHP Code:
                          #!/bin/bash
                          a="ipAdEntAddr"
                          b="ipAdEntNetMask"
                          if [ "$2" == "$a]
                                  
                          then
                                          snmpwalk 
                          -v2c -public $$sed 's|.*=||' sed 's|.*:||'
                          fi
                          if [ "$2" == "$b]
                                  
                          then
                                          snmpwalk 
                          -v2c -public $$|  sed 's|.*=||' sed 's|.*:||'
                          fi 
                          Ну в принципи с некоторого оборудования возвращает по 2 значения, но это не беда, значения текстовые автозаполняют инвентарные данные узлов, больше информации , меня вполне это утроит
                          А распарсить можно кому как удобно

                          например возвращает такие значения
                          127.0.0.1
                          192.168.132.15
                          что тут непонятного)

                          Если это коммутатор то возвращает 1 значение, если роутер, то вернет 2- более значений с указанием wan и lan интерфейсов
                          Last edited by AlexSt; 10-06-2013, 07:13.

                          Comment

                          Working...