Quais são as crianças OIDs em uma armadilha SNMP?
Pergunta
Eu herdei uma documentação MIB e exemplo, e necessidade de re-implementar o código que gera armadilhas. (Por vários motivos o código original está perdido e ido embora para sempre, mas CM não é a minha pergunta.)
O MIB diz:
alertObjects OBJECT IDENTIFIER ::= { corpAlert 1 }
alertEvents OBJECT IDENTIFIER ::= { corpAlert 2 }
alertDispatchTime OBJECT-TYPE
SYNTAX OCTET STRING
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Time Event Dispatched"
::= { alertObjects 3 }
testFailure OBJECT IDENTIFIER ::= { alertEvents 4 }
testFailureClearTrap NOTIFICATION-TYPE
OBJECTS
{
alertDispatchTime,
[omitted]
}
STATUS current
DESCRIPTION
"Clear prior failure"
::= { testFailure 0 }
Nossa documentação tem o seguinte trecho:
/usr/bin/snmptrap \
-v 1 \
-c public 192.168.0.2:162 [our-base-oid] 127.0.0.1 6 4 '' \
[our-base-oid].2.4.0.4.1.0 s "May 21 2007 10:19PM" \
[etc]
O que eu não consigo entender é o OID usado para o tempo de alerta expedição. Eu entenderia se fosse [-nossa base de oid] .1.3.0, ou até mesmo o [nosso-base oid] .2.4.0. [-Nossa base de oid] .1.3. Se nós estavam gerando uma armadilha na {alertEvents 3}, o que seria o sufixo ser para os objetos individuais?
É possível que o MIB foi atualizado após a documentação, por isso, se isso parece errado com um especialista em seguida, o que deve o OID ser para o alertDispatchTime?
Graças.
Solução
Tal como definido aqui, é um objecto alertDispatchTime escalar (apenas um exemplo), pelo que a sua exemplo subidentifier é sempre 0 (OID é cheia [corpAlert] .1.3.0). OID da notificação é [corpAlert] .2.4.0.
Assumindo por "[-nossa base de oid]" quer dizer corpAlert, o comando snmptrap mostrado não parece ser correto porque o [nosso-base oid] .2.4.0.4.1.0 seria testFailureClearTrap.4.1.0 , o que não faz sentido: armadilhas não têm subidentifiers instância. Mas eu estou fazendo algumas suposições aqui sobre as partes do MIB especificação você não tenha incluído.
Outras dicas
Se você tem um sistema de trabalho, talvez ele vai bom se você pode gerar uma armadilha e ver seu conteúdo.