我们有一个logstash(v2.3)设置,其中1个队列服务器运行RabbitMQ,10个elasticsearch节点和一个用于kibana的web节点。一切都“有效”,我们有大量的服务器在队列服务器上发送日志。大多数日志都会进入,但我们注意到许多日志从未出现过。
查看logstash.log文件,我们将看到以下开头显示:
{:timestamp=>"2016-07-15T16:21:34.638000+0000", :message=>"A plugin had an unrecoverable error. Will restart this plugin.\n Plugin: <LogStash::Inputs::Tcp type=>\"syslog\", port=>5544, codec=><LogStash::Codecs::JSONLines charset=>\"UTF-8\", delimiter=>\"\\n\">, add_field=>{\"deleteme\"=>\"\"}, host=>\"0.0.0.0\", data_timeout=>-1, mode=>\"server\", ssl_enable=>false, ssl_verify=>true, ssl_key_passphrase=><password>>\n Error: closed stream", :level=>:error}
大约每隔一秒左右重复一次。我们最初认为可能满足最大连接限制,但netstat仅显示约4000个连接,我们的限制应该超过65,000。
为什么这个TCP插件会崩溃这么多?
我在网上看到的所有内容都暗示这是一个较旧版本的问题,这个版本已经用新版本的Logstash解决了,我们早就安装了这个版本。令人困惑的是它部分工作,我们得到了大量的日志,但似乎也失踪了很多。
队列服务器上的相关conf文件:
queue.mydomain.com:
input {
tcp {
type => "syslog"
port => "5544"
}
udp {
type => "syslog"
port => "5543"
}
}
output {
rabbitmq {
key => "thekey"
exchange => "theexchange"
exchange_type => "direct"
user => "username"
password => "password"
host => "127.0.0.1"
port => 5672
durable => true
persistent => true
}
}
我们最近在上面的conf中添加了UDP来测试它,但是日志也没有可靠地使用它。
以防Elasticsearch群集相关:
我们有一个 10个节点的Elasticsearch集群,设置为从队列服务器提取,这可以按预期工作,并且与Logueash的队列服务器版本相同。他们使用conf:
从rabbitMQ服务器中取出input {
rabbitmq {
durable => "true"
host => "***.**.**.**"
key => "thekey"
exchange => "theexchange"
queue => "thequeue"
user => "username"
password => "password"
}
}
任何人都有任何想法让我们尝试用tcp-input插件搞清楚什么?
感谢。