Назад | Перейти на главную страницу

Устранение неполадок SNMP MIB с помощью snmpwalk

У меня есть MIB-файл от поставщика для опроса конкретной (и в данном случае критически важной для бизнеса) части программного обеспечения.

Когда я делаю snmptable по запросу я получаю MAGIC-MIB::queryRtTable: No entries в качестве ответа, но когда я смотрю с wirehark, я вижу, что wirehark отправляет ответы.

Вот сервер, отправляющий ответ в wirehark:

Не имея представления о создании MIB, я разместил то, что, как я надеюсь, является соответствующей частью MIB ниже:

MAGIC-MIB DEFINITIONS ::= BEGIN

IMPORTS
        enterprises
                FROM RFC1155-SMI
        OBJECT-TYPE
                FROM RFC-1212  
        DisplayString
                FROM RFC1213-MIB;

magic         OBJECT IDENTIFIER ::= {enterprises 15687}
manage          OBJECT IDENTIFIER ::= {magic 2}
query           OBJECT IDENTIFIER ::= {magic 3}

queryRtTable OBJECT-TYPE
             SYNTAX  SEQUENCE OF QueryRtEntry
             ACCESS  not-accessible
             STATUS  mandatory
             DESCRIPTION
                     "The list of loaded enterprise servers"
             ::= { query 3 }

          queryRtEntry OBJECT-TYPE
              SYNTAX  QueryRtEntry
              ACCESS  not-accessible
              STATUS  mandatory
              DESCRIPTION
                      "The enterprise server entry"
              INDEX   { entServerEntryIndex }
              ::= { queryRtTable 1 }

          QueryRtEntry ::=
              SEQUENCE {
                              entServerEntryIndex
                      INTEGER,
                              entServerHost
                      DisplayString,
                              entServerPort
                      INTEGER,
                               openedApplication
                      DisplayString , 
                               entPriority
                      INTEGER,
                               runningThreads
                      INTEGER,
                               peakThreads
                      INTEGER,
                               runningContexts
                      INTEGER,
                               peakContexts
                      INTEGER,
                               requestsServed
                      INTEGER,
                               executionErrors
                      INTEGER
              }

          entServerEntryIndex OBJECT-TYPE
              SYNTAX  INTEGER (1..100000)
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "A unique identifier for an enterprise server"
              ::= { queryRtEntry 1 }

          entServerHost OBJECT-TYPE
              SYNTAX  DisplayString
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The enterprise's host name"
              ::= { queryRtEntry 2 }

           entServerPort OBJECT-TYPE
              SYNTAX  INTEGER 
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The enterprise server's port number"
              ::= { queryRtEntry 3 }

          openedApplication OBJECT-TYPE
              SYNTAX  DisplayString
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The application that is running on the enterprise server."
              ::= { queryRtEntry 4 }

           entPriority OBJECT-TYPE
              SYNTAX  INTEGER 
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The priority of the enterprise server"
              ::= { queryRtEntry 5 }

           runningThreads OBJECT-TYPE
              SYNTAX  INTEGER
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The enterprise server's running thread counter"
              ::= { queryRtEntry 6 } 

           peakThreads OBJECT-TYPE
              SYNTAX  INTEGER
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The enterprise server's peak thread counter"
              ::= { queryRtEntry 7 }

           runningContexts OBJECT-TYPE
              SYNTAX  INTEGER
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The enterprise server's running context counter"
              ::= { queryRtEntry 8 } 

           peakContexts OBJECT-TYPE
              SYNTAX  INTEGER
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The enterprise server's peak context counter"
              ::= { queryRtEntry 9 }

           requestsServed OBJECT-TYPE
              SYNTAX  INTEGER
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The number of requests served"
              ::= { queryRtEntry 10 }

           executionErrors OBJECT-TYPE
              SYNTAX  INTEGER
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The number of execution errors"
              ::= { queryRtEntry 11 }   

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

Оказывается, это ошибка в SNMP-агенте программного обеспечения, независимо от того, какой OID вы запрашиваете, он всегда возвращает один и тот же. Это означает, что если это тот OID, который вы хотите собрать, отлично, если вам нужны какие-либо другие данные, очень плохо.