2012-12-01 178 views
1

我正在嘗試使用Ruby SNMP從各種設備捕獲SNMP陷阱。爲了測試它們,我試圖使用'snmptrap'命令從筆記本電腦發送它們。我可以看到陷阱正在發送並在我的服務器(服務器是管理器)到達數據包捕獲時,以及在運行時出現在'snmptrapd'實用程序中。我正在使用以下示例代碼,完全按照實際情況在文檔的演示中設置TrapListener。爲什麼我看不到SNMP陷阱?

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 

我送一個v2c的陷阱,從來都沒有出現在屏幕上......

這裏是我用來發送測試SMTP陷阱的命令,在甚至是非常有用:

snmptrap -v 2c -c public hostname_goes_here SNMP-NOTIFICATION-MIB::snmpNotifyType SNMPv2-MIB::sysLocation 

任何建議表示讚賞!謝謝!

回答

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