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