1

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

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

4

1 回答 1

0

我也被困在这个问题上很长一段时间。事实证明,默认情况下,Traplistener 只打开 127.0.0.1 上的端口。要使其侦听您指定的端口(或默认端口 162)上的所有接口,请指定 :Host 选项。'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
于 2013-05-22T10:30:00.320 回答