Logstash TCP输入崩溃

时间:2016-07-15 16:34:29

标签: sockets elasticsearch tcp logstash

我们有一个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插件搞清楚什么?

感谢。

0 个答案:

没有答案