ELK-elasticsearch故障排查篇

前言

在生产上使用了ELK+filebeat,filebeat负责收集日志,Logtash负责过滤日志并输出到Elasticsearch,Elasticsearch根据Logstash的输出做索引,Kibana负责调用Elasticsearch的API接口展示数据。

架构

ELK-elasticsearch故障排查篇_第1张图片

ELK是部署在单独的一台服务器上,负责收集日志的客户端总共是16台。

故障

登录Kibana查看信息的时候出现以下信息,说明Elasticsearch已经挂了。

ELK-elasticsearch故障排查篇_第2张图片

查看日志如下:


ELK-elasticsearch故障排查篇_第3张图片

Logstash日志如下:

ELK-elasticsearch故障排查篇_第4张图片

排查

通过以上错误可以判断,Queued Tasks超过1000,并且在重新启动的时候提示无法创建Thread。

首先在/etc/security/limits.d/90-nproc.conf增加以下内容:

*          soft    nproc     20480

然后在/elasticsearch-5.6.7/config目录下的elasticsearch.yml文件中,添加以下内容:

thread_pool:
  bulk:
    queue_size: 3000

重新启动Elasticsearch,运行正常。

结论

通过修改当前用户的最大线程数及queue size后,Elasticsearch运行正常,如果有更多的Filebeat客户端收集日志的话,那么中间最好在加一个缓冲层,比如Kafka,然后通过Logstash输出到Elasticsearch,起到削峰的作用。

你可能感兴趣的:(日志)