【发布时间】:2019-08-11 07:26:56
【问题描述】:
我有一个使用 SNMP4J 发送 SNMP 陷阱的 java 应用程序。问题是 OID 是在陷阱正文中发送的。我设置的所有数据都已成功发送,但在陷阱正文中。我希望在陷阱标头中发送 Oid。
如何在 Trap 标头中发送 Oid?
UdpAddress managerUdpAddress = new UdpAddress("address");
CommunityTarget ctarget = new CommunityTarget();
ctarget.setAddress(managerUdpAddress);
ctarget.setRetries(retryCount);
ctarget.setCommunity(new OctetString(community));
ctarget.setTimeout(timeout);
ctarget.setVersion(SnmpConstants.version2c);
PDU trap = new PDU();
OID oid = new OID(myOid);
trap.add(new VariableBinding(SnmpConstants.snmpTrapOID, oid));
trap.add(new VariableBinding(SnmpConstants.sysUpTime, new TimeTicks(5000)));
trap.add(new VariableBinding(SnmpConstants.sysDescr, new OctetString(
"System Description")));
trap.add(new VariableBinding(oid, new OctetString(message)));
DefaultUdpTransportMapping transport = new DefaultUdpTransportMapping();
Snmp snmp = new Snmp(transport);
snmp.notify(trap, ctarget);
当 UPS 发送 SNMP 陷阱时,OID 显示在 SNMP 陷阱标头中。以下是示例:
来自 UPS 的陷阱:
2019 年 3 月 18 日星期一 04:13:18 .
1.3.6.1.4.1.935.0.49正常“SNMP 事件” x.x.x.x - UPS_212_bypass_ac_normal SNMP TRAP:绕过 AC 正常
来自 JAVA 的陷阱:
2019 年 3 月 18 日星期一 05:25:36
.0.00严重“SNMP 事件”x.x.x.x - 我的应用程序 snmp 错误:系统描述一般错误。尺寸=2"
【问题讨论】:
-
你不能违反 SNMP 标准本身,所以你问的是不可能的。
-
@LexLi UPS 也发送 SNMP 陷阱,但在这种情况下,OID 填充在 SNMP 陷阱标头中。有什么区别? UPS如何在报头中发送OID?
标签: java header snmp snmp4j snmp-trap