2009-08-25 236 views
1

我已經繼承了MIB和示例文檔,並且需要重新實現生成陷阱的代碼。 (對於各種原因的原代碼丟失,永遠地走了,但CM不是我的問題)SNMP陷阱中的子OID是什麼?

的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中的文檔後更新的,所以如果這看起來錯誤的專家則應該OID是什麼的alertDispatchTime?

謝謝。

回答

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規範的部分做了一些假設。

+0

這個回答我的問題 - 文件是不正確的。這個例子中的id很明顯是錯誤的。 – 2009-09-01 20:40:32

1

如果你有一個工作系統,也許它會很好,如果你可以生成一個陷阱,查看其內容。