如何使用 Logstash 调整 Elasticsearch 性能

How to tuning Elasticsearch performance with Logstash

我们正在使用 ElasticSearch、Logstash、Kibana 来分析 nginx 日志。 现在我们有大约10台带有logstash-forwarder的nginx服务器,1台logstash服务器(8核,8G),2个ElasticSearch节点(每个都是4核8G),都带有SSD硬盘。

我们的问题是ElasticSearch集群的索引性能不够好。 nginx 日志生成的速度比索引快。而且我们认为 logstash 服务器和 Elastic 集群没有发挥最好的作用。因为演出未满

Logstash 服务器(8 核)大量使用 CPU。平均负载约为 3-6。 以下是 Elasticsearch 的顶级数据之一。

top - 14:26:08 up 1 day, 32 min,  2 users,  load average: 0.69, 0.75, 0.77
Tasks: 115 total,   1 running, 114 sleeping,   0 stopped,   0 zombie
Cpu(s): 14.2%us,  1.8%sy,  0.0%ni, 69.9%id, 14.0%wa,  0.0%hi,  0.0%si,  0.1%st

使用 BigDesk 插件监控 Elasticsearch 索引图。该值约为 2K/s。 %wa 并不总是像上层那样高。

以下是Elasticsearch的iostat数据之一。

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
       9.99    0.00    2.66   12.10    0.15   75.10

Device:           rrqm/s   wrqm/s     r/s     w/s    rMB/s    wMB/s avgrq-sz avgqu-sz   await  svctm  %util
vda               11.60     4.80   18.60    0.80     0.12     0.02    14.93     0.01    0.60   0.56   1.08
vdb               4.40 21633.80  190.80  158.40    11.02    71.63   484.73    42.52  105.02   1.19  41.42

我禁用了副本,禁用了_all字段。 网络很好

我们如何相应地调整性能。听说有人可以把性能提高到20K/s

我会尝试从 logstash 中删除过滤器并添加指标以查看您的集群可以扩展多少。

从单个 ES 节点开始并从此处编辑 ES 的设置:http://edgeofsanity.net/article/2012/12/26/elasticsearch-for-logging.html

指标插件:http://logstash.net/docs/1.4.0/filters/metrics

添加更多 Logstash 1.5 实例可以提高性能。瓶颈不是Elastic Search,是Logstash。但是Logstash的性能还不够好。

最后我用kafka做事件缓存,用自己的代码把日志事件推送到ES。 ES服务器的机器可以充分利用