2010-08-11 77 views
1

如何设置陷阱严重性?SNMP4j陷阱严重性

代码如下

TransportMapping transport = new DefaultUdpTransportMapping(); 
    Snmp snmp = new Snmp(transport); 

    CommunityTarget localtarget = new CommunityTarget(); 
    localtarget.setCommunity(new OctetString("public")); 
    localtarget.setAddress(new UdpAddress(managerIpAdd + "/162")); 
    localtarget.setVersion(SnmpConstants.version2c); 
    localtarget.setRetries(3); 
    localtarget.setTimeout(2000); 

    PDU pdu = new PDU(); 

    // need to specify the system up time 
    pdu.add(new VariableBinding(SnmpConstants.sysUpTime, new OctetString(new Date().toString()))); 
    pdu.add(new VariableBinding(SnmpConstants.snmpTrapOID, targetOID)); 
    pdu.add(new VariableBinding(SnmpConstants.snmpTrapAddress, new IpAddress(ApplicationUtil.getMachineIpAddress()))); 

    // variable binding for Enterprise Specific objects, Severity (should be defined in MIB file) 
    pdu.add(new VariableBinding(targetOID, new OctetString(message)));   

    pdu.setType(PDU.TRAP); 

    snmp.send(pdu, localtarget); 

    snmp.close(); 

感谢,

回答

3

有指定陷阱严重性的标准方法。大多数发送“警报”陷阱的代理将定义一个专有MIB,其中包含一个严重性的varbind。

+0

感谢您的回复。那么你说什么是每个SNMP管理器都有自己的MIB来指定陷阱的严重性? – Jin 2010-08-12 07:45:29

+1

我在谈论经纪人,而不是经理。该代理可以拥有专有的MIB,也可以不支持严重性的想法。 经理可以选择接受代理分配的严重性,分配它自己的或完全忽略它。它没有如何完成的标准。 – hallidave 2010-08-12 17:21:35

+0

除了上面讨论的陷阱之外,代理通常会提供一种获取当前活动警报(包括严重性字段)的方法。但正如@hallidave所提到的,通常这是不合适的。 – k1eran 2014-09-16 12:51:52