java - 在 SNMP 陷阱报头中发送 OID

标签 java header snmp snmp4j snmp-trap

我有一个使用 SNMP4J 发送 SNMP 陷阱的 Java 应用程序。问题是 OID 在陷阱正文中发送。我设置的所有数据都已成功发送,但在陷阱正文中。我希望 Oid 在陷阱报头中发送。

如何在 Trap header 中发送 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 的陷阱:

Mon Mar 18 04:13:18 2019 .1.3.6.1.4.1.935.0.49 Normal "SNMP EVENT" x.x.x.x - UPS_212_bypass_ac_normal SNMP TRAP: Bypass AC Normal



来自JAVA的陷阱:

Mon Mar 18 05:25:36 2019 .0.00 Critical "SNMP EVENT" x.x.x.x - my application snmp errors: System Description General error. Size=2"

最佳答案

我通过添加以下代码来做到这一点:

trap.setType(PDU.TRAP);
trap.add(new VariableBinding(oid));

现在从 Java 发送的 SNMP 陷阱如下所示:

Thu Mar 21 15:16:51 2019 .1.3.6.1.6.3.1.1.7.1.6 Critical "SNMP EVENT" x.x.x.x - my application snmp errors: System Description General error. Size=2"

关于java - 在 SNMP 陷阱报头中发送 OID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55263531/

相关文章:

java - 从我的 Java 应用程序中备份 MySql

java - 将第一个 CompletableFuture 的结果传递给链上的其他 CompletableFuture

html - 无法更改标题中的链接颜色代码

asp.net Editable GridView - 设置标题文本颜色

snmp - 编写我自己的 MIB - 有关如何这样做的任何引用资料?

c# - SharpSnmpLib SendTrap

Java 正则表达式、匹配和查找

python - 将标题添加到文件

linux - snmpset/get 返回超时 :no response for ipv6

java - 我如何让 XJC ant 任务使用多个绑定(bind)文件?