2016-10-25 175 views
0

我在Windows上啓用了Snmptrap,並且收到了來自遠程設備的陷阱消息。以下描述結果。如何爲snmp4j解析mib陷阱消息

2016-10-25 10:19:02 <UNKNOWN> [UDP: [172.16.11.250]:62451->[0.0.0.0]:0]: 
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (287374) 0:47:53.74 SNMPv2-MIB::snmpTrapOID.0 = OID: IF-MIB::linkDown  IF-MIB::ifIndex.116 = INTEGER: 116 
IF-MIB::ifAdminStatus.116 = INTEGER: up(1)  IF-MIB::ifOperStatus.116 = INTEGER: down(2)  IF-MIB::ifName.116 = STRING: ge-1/0/1 

我也通過snmp4j得到陷阱信息。以下是我的代碼和結果。

Vector<VariableBinding> vbVect = event.getPDU().getVariableBindings();  
for (VariableBinding vb : vbVect) { 
    System.out.println(vb.getOid() + " = " + vb.getVariable()); 
} 

結果

1.3.6.1.2.1.1.3.0 = 1:27:14.38 
1.3.6.1.6.3.1.1.4.1.0 = 1.3.6.1.6.3.1.1.5.3 
1.3.6.1.2.1.2.2.1.1.116 = 116 
1.3.6.1.2.1.2.2.1.7.116 = 1 
1.3.6.1.2.1.2.2.1.8.116 = 2 
1.3.6.1.2.1.31.1.1.1.1.116 = ge-1/0/1 

我的問題是如何獲得的陷阱消息MIB解析後,就像在Windows上的輸出?
我的設備上有很多trap oid。我應該把它們放在一個文件上並且通過這個文件解析oid嗎?還是應該通過snmp4j加載mib?

有沒有什麼方法可以做到這一點?這個問題最好的做法是什麼?

提前致謝!

回答

0

要解決基於MIB模塊的定義,你將不得不使用庫,例如​​SMI4JMibble或一些別人認爲是能夠解析MIB文件(SMIv1的/ SMIv2的格式)的OID的。

您還可以使用商業產品,如NetDecision MIB Manager,它們允許您將多個MIB文件轉換爲XML格式的標準化文件。之後,您所要做的就是使用任何DOM解析器加載XML文件。無需解析複雜的ASN.1(SMI)結構並處理依賴關係。您也不必擔心格式錯誤的MIB文件和錯誤處理。 enter image description here

+0

謝謝,我會研究Mibble。 – Wendy

0

SNMP4J-SMI-PRO將直接與SNMP4J集成並提供MIB解析功能。對象名稱映射和值格式的OID可隨時用於現有的SNMP4J代碼。