我正在尝试使用Ruby SNMP从各种设备捕获SNMP陷阱。为了测试它们,我试图使用'snmptrap'命令从我的笔记本电脑发送它们。我可以看到陷阱正在被发送并且在数据包捕获中到达我的服务器(服务器是管理器),以及在运行它时在'snmptrapd'实用程序中。我正在使用以下示例代码,在文档的演示中设置TrapListener。
require 'snmp'
require 'logger'
log = Logger.new(STDOUT)
m = SNMP::TrapListener.new do |manager|
manager.on_trap_default do |trap|
log.info trap.inspect
end
end
m.join
我正在发送一个SNMPv2c陷阱,屏幕上什么也没有出现......
这是我用来发送测试SMTP陷阱的命令,即使它很有用:
snmptrap -v 2c -c public hostname_goes_here SNMP-NOTIFICATION-MIB::snmpNotifyType SNMPv2-MIB::sysLocation
任何建议表示赞赏!谢谢!
答案 0 :(得分:0)
我也被困在这一段很长一段时间了。事实证明,默认情况下,Traplistener仅在127.0.0.1上打开端口。要使其侦听您指定的端口上的所有接口(或默认端口162),请指定:主机选项。 “0”使其在所有接口上侦听,或者您可以提供IP地址。
log = Logger.new(STDOUT)
m = SNMP::TrapListener.new(:Host => 0) do |manager|
manager.on_trap_default do |trap|
log.info trap.inspect
end
end
m.join