【问题标题】:Logstash stops receiving after some time in ELK stack?Logstash 在 ELK 堆栈中经过一段时间后停止接收?
【发布时间】:2015-05-18 19:49:59
【问题描述】:

我已安装并运行 ELK 堆栈(Elasticsearch/Logstash/Kibana)。

我使用一台服务器作为 ELK 服务器来收集和存储来自其他服务器的所有日志。 logstash-forwarder 用于向 ELK 发送日志。问题是:

Logstash 正在接收大量日志(正如我与 tailf logstash.stdout 核对的那样),但是在我再次 tailf logstash.stdout 一段时间后,没有任何内容(没有接收日志),在重新启动 Logstash 守护程序后它开始再次接收。

【问题讨论】:

  • logstash 日志说什么?您是否尝试过不发送这么多日志以查看这是否真的是您的问题的原因?
  • @bradvido,感谢支持,logstash 日志是空的,所以我尝试减少发送日志,然后 logstash 守护进程停留更长时间,然后我在 logstash.log 中收到此错误 “错误:您的应用程序使用的内存超过了 500M 的安全上限。指定 -J-Xmx####m 以增加它(#### = 上限大小,以 MB 为单位)。指定 -w 以获取完整的 OutOfMemoryError 堆栈跟踪”
  • 关于可能帮助其他人回答我的问题的其他信息。当我输入这个命令curl 'localhost:9200/_cat/nodes?v'我得到这个输出host ip heap.percent ram.percent load node.role master name elasticsearch_node_master xxxxxxx 57 87 0.60 d * Death's Head II logstash_node xxxxxx 99 c - logstash-logs.-50227-226我认为这里显示错误是因为logstash节点使用了99的heap.help吗?

标签: elasticsearch logstash elastic-stack


【解决方案1】:

当你使用 Logstash 将数据过滤到文件中时,当 Logstash 获取 EOF(文件结束)时发生你所说的。

如果和我想的一样,可以咨询这个:How to return to terminal when logstash filter get eof?

在使用托运人的情况下,可能与文件相同。

但如果你能更好地描述你的问题/错误,你可以获得更多可能的解决方案。

【讨论】: