我继承了MIB和示例文档,需要重新实现生成陷阱的代码。 (由于各种原因,原始代码丢失并永远消失,但CM不是我的问题。)
MIB说:
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 }
我们的文档包含以下代码段:
/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]
我无法弄清楚的是用于警报发送时间的OID。我会理解它是[our-base-oid] .1.3.0,甚至是[our-base-oid] .2.4.0。[our-base-oid] .1.3。如果我们在{alertEvents 3}生成一个陷阱,那么各个对象的后缀是什么?
有可能在文档之后更新了MIB,因此如果专家看起来不对,那么对于alertDispatchTime,OID应该是什么?
感谢。
答案 0 :(得分:2)
如此处所定义,alertDispatchTime是一个标量对象(只有一个实例),因此其实例subidentifier始终为0(完整OID为[corpAlert] .1.3.0)。通知的OID是[corpAlert] .2.4.0。
假设“[our-base-oid]”是指corpAlert,显示的snmptrap命令看起来不正确,因为[our-base-oid] .2.4.0.4.1.0将是testFailureClearTrap.4.1.0 ,没有意义:陷阱没有实例子标识符。但是我在这里做了一些关于你没有包含的MIB规范部分的假设。
答案 1 :(得分:1)
如果你有一个工作系统,如果你能产生一个陷阱并看到它的内容,那也许会很好。