0

Windows で Snmptrap を有効にすると、リモート デバイスからトラップ メッセージを受け取りました。以下に結果を説明します。

 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

私の質問は、Windows での出力と同じように、mib 解析後にトラップ メッセージを取得するにはどうすればよいですか?
私のデバイスには多くのtrap oidがあります。それらをファイルに入れ、このファイルを介してoidを解析する必要がありますか? または、snmp4j を介して mib をロードする必要がありますか?

これを行う方法はありますか?この問題のベストプラクティスは何ですか?

前もって感謝します!

4

2 に答える 2

1

MIB モジュール定義に基づいて OID を解決するには、 SMI4JMibble 、または MIB ファイル (SMIv1/SMIv2 形式) を解析できるその他のライブラリを使用する必要があります。

複数の MIB ファイルを XML 形式の正規化ファイルに変換できるNetDecision MIB Managerなどの商用製品を使用することもできます。その後、DOM パーサーを使用して XML ファイルをロードするだけです。複雑な ASN.1 (SMI) 構造を解析して依存関係を処理する必要はありません。また、不正な MIB ファイルやエラー処理について心配する必要もありません。 ここに画像の説明を入力

于 2016-10-25T17:55:41.930 に答える
0

SNMP4J-SMI-PRO は SNMP4J と直接統合され、MIB 解析機能を提供します。OID からオブジェクト名へのマッピングと値のフォーマットは、既存の SNMP4J コードですぐに使用できます。

于 2016-11-16T19:49:48.387 に答える