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 をロードする必要がありますか?
これを行う方法はありますか?この問題のベストプラクティスは何ですか?
前もって感謝します!