【发布时间】:2016-05-05 17:20:42
【问题描述】:
我正在尝试让 snmptrap 输入与 logstash 一起使用。我最初以 root 身份启动 logstash,因为我想在更改端口之前确保它可以正常工作。我也在使用本地计算机进行 SNMP,因为我认为这个世界更容易开始。当我使用端口 161 时,我收到“SNMP Trap listener dead”错误。如果我更改为端口 162,我不会收到任何错误,但没有数据。如果我指向一个不存在的服务器,我还会在任何端口上收到 SNMP 陷阱侦听器死亡错误。我相信它应该是端口 161,但我可能错了。
如果我使用不同的输入,Logstash 可以工作。我最终希望输出到石墨上,这也适用于不同的输入。
我有什么配置错误吗?即使我以 root 身份运行并且所有内容都在同一台机器上,是否有一些权限问题可能会导致问题?
感谢您的帮助。
这是我的 .conf 文件:
input {
snmptrap {
host => "127.0.0.1"
community => "public"
port => "161"
type => "snmp_trap"
}
}
output {
stdout { codec => rubydebug }
}
这是本地snmpwalk的部分结果:
snmpwalk -mAll -v1 -cpublic 127.0.0.1:161
iso.3.6.1.2.1.1.2.0 = OID: iso.3.6.1.4.1.8072.3.2.10
iso.3.6.1.2.1.1.3.0 = Timeticks: (7218152) 20:03:01.52
这是 netstat:
root@lab-graphite:~# netstat -lpn | grep snmp
udp 0 0 127.0.0.1:161 0.0.0.0:* 43559/snmpd
udp 0 0 0.0.0.0:54155 0.0.0.0:* 43559/snmpd
unix 2 [ ACC ] STREAM LISTENING 2593117 43559/snmpd /var/agentx/master
这是完整的错误信息:
SNMP Trap listener died {:exception=>#<SocketError: bind: name or service not known>, :backtrace=>["org/jruby/ext/socket/RubyUDPSocket.java:160:in `bind'", "/opt/logstash/vendor/bundle/jruby/1.9/gems/snmp-1.2.0/lib/snmp/manager.rb:540:in `initialize'", "/opt/logstash/vendor/bundle/jruby/1.9/gems/snmp-1.2.0/lib/snmp/manager.rb:585:in `create_transport'", "/opt/logstash/vendor/bundle/jruby/1.9/gems/snmp-1.2.0/lib/snmp/manager.rb:618:in `initialize'", "/opt/logstash/vendor/bundle/jruby/1.9/gems/logstash-input-snmptrap-2.0.4/lib/logstash/inputs/snmptrap.rb:74:in `build_trap_listener'", "/opt/logstash/vendor/bundle/jruby/1.9/gems/logstash-input-snmptrap-2.0.4/lib/logstash/inputs/snmptrap.rb:78:in `snmptrap_listener'", "/opt/logstash/vendor/bundle/jruby/1.9/gems/logstash-input-snmptrap-2.0.4/lib/logstash/inputs/snmptrap.rb:53:in `run'", "/opt/logstash/vendor/bundle/jruby/1.9/gems/logstash-core-2.3.2-java/lib/logstash/pipeline.rb:342:in `inputworker'", "/opt/logstash/vendor/bundle/jruby/1.9/gems/logstash-core-2.3.2-java/lib/logstash/pipeline.rb:336:in `start_input'"], :level=>:warn}
【问题讨论】:
-
仅供参考。 SNMP 陷阱的默认端口是 162/UDP。它不会在您的远程机器上监听。您可能希望将配置中的主机绑定到其实际物理地址,而不是环回。
-
我用过名字、本地IP地址和回环都没有成功。我想我要在同一个网络上配置一个简单的远程 snmp 服务器。尝试读取本地 snmp 服务器可能会导致问题。