为什么我看不到SNMP陷阱?

时间:2012-12-01 00:44:55

标签: ruby snmp

我正在尝试使用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

任何建议表示赞赏!谢谢!

1 个答案:

答案 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