Elasticsearch 独立模式与 logstash 在五天后拒绝数据

Elasticsearch 独立模式与 logstash 在五天后拒绝数据

我使用 Logstash 和 Elasticsearch 来存储和分析我们的 squid 日志。在我们的 freeBSD ZFS 存储系统中,日志的大小以每天 40Gb 的速度增加。Elasticsearch 每五天就会出现故障,并且无法进一步写入日志。

我尝试过

index.number_of_shards: 1
index.number_of_replicas: 0

但好像没什么用。

附件是插头头的快照

elasticsearch 头插头状态

有人能解释一下我做错了什么吗?我应该修改哪个配置。

更新

日志

[2013-12-08 19:51:16,916] [警告] [index.engine.robin] [David Cannon] [logstash-2013.12.08] [0] 引擎失败 java.lang.OutOfMemoryError:Java 堆空间

[2013-12-09 17:03:07,500][DEBUG][action.admin.cluster.node.info] [David Cannon] 无法在节点 [sSoHeIz5TSG8fR3IRHj_Pg] 上执行 org.elasticsearch.transport.RemoteTransportException:无法反序列化类型为 [org.elasticsearch.action.admin.cluster.node.info.NodeInfo] 的响应 原因:org.elasticsearch.transport.TransportSerializationException:无法反序列化类型为 [org.elasticsearch.action.admin.cluster.node.info.NodeInfo] 的响应

答案1

我之前就见过这种情况,这与 JVM 分配给 Logstash 的堆空间量有关。

您可以尝试-XX:MaxHeapSize=256m在启动 JVM 时向其提供此标志来增加此值,但您可能应该尝试将 MaxHeapSize 设置为 512m 甚至更大的值。

Elasticsearch 有一些非常合理的默认设置,但也可以这样做进一步调整,设置它的堆的大小等等以便进行搜索。

ES 和 Logstash 可以扩展到数十亿个事件以及数 TB 的日志数据,小心 配置

相关内容