PDU pdu = new PDU();
pdu.setType(PDU.SET);
pdu.add(new VariableBinding(new OID("1.3.6.1.4.1.100.1.1"), new Counter64(System.currentTimeMillis())));
pdu.add(new VariableBinding(new OID("1.3.6.1.4.1.100.2.1"), new OctetString("some string")));
TransportMapping transport = null;
Snmp snmp = null;
try {
transport = new DefaultUdpTransportMapping();
transport.listen();
snmp = new Snmp(transport);
snmp.send(pdu, getCommunityTarget());
} catch (Exception e) {
// error occurred
}这就是我如何发送我的snmp陷阱,以引起警报。我在snmp代理中设置一个varible,并在MIB浏览器中浏览它。我想知道,如果我把pdu类型设置为PDU.TRAP,它可以在162号端口上工作,而不是161号端口,我不能看到它是MIB浏览器,而是在陷阱接收器。有什么关系?使用PDU.TRAP的目的是什么?我的经纪人怎么能抓到它?提出和澄清警报的最佳做法是什么?
发布于 2014-02-02 10:15:00
在实现SNMP实体时,通常最好是实现所谓的“陷阱定向轮询”概念,而不是简单的“陷阱发送方”。对于后者,SNMP4J可以开箱即用,对于第一个SNMP4J-Agent可以使用.这也是在Apache 2开放源码许可下获得的许可。
由于陷阱可能在网络上丢失,陷阱定向轮询方法有许多优点,尽管它需要更多(很少)的努力来实现代理部分。
关于原问题:
发布于 2013-11-07 12:16:47
不同之处在于角色: SET由管理人员针对代理执行,而TRAP则相反。基本的Snmp4j只支持SNMP管理器的实现。也可以实现代理的某些方面,但并不简单。不过,很难判断这两种方法中的哪一种是真正想要实现的。
https://stackoverflow.com/questions/19835368
复制相似问题