1

我继承了 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 应该是什么?

谢谢。

4

2 回答 2

2

正如这里定义的,alertDispatchTime 是一个标量对象(只有一个实例),因此它的实例子标识符始终为 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 规范的部分进行了一些假设。

于 2009-08-26T02:06:24.220 回答
1

如果你有一个工作系统,如果你能生成一个陷阱并查看它的内容,也许会很好。

于 2009-08-25T20:44:26.487 回答