我们正在使用ElasticSearch,Logstash,Kibana来分析nginx日志。 现在我们有大约10台带有logstash-forwarder的nginx服务器,1台logstash服务器(8个核心,8G),2个ElasticSearch节点(每个都有4个核心和8G)都带有SSD硬盘驱动器。
我们的问题是ElasticSearch集群的索引性能不够好。 nginx日志生成的速度比索引快。我们并不认为logstash服务器和Elastic集群正在尽力而为。因为性能不够。
使用CPU的Logstash服务器(8个核心)。平均负载约为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。
答案 0 :(得分:0)
我会尝试从logstash中删除过滤器,只需添加指标即可查看群集可以扩展的程度。
从单个ES节点开始,并从此处编辑ES的设置:http://edgeofsanity.net/article/2012/12/26/elasticsearch-for-logging.html
答案 1 :(得分:0)
添加更多Logstash 1.5实例可以提高性能。 Logneash不是弹性搜索的瓶颈。但Logstash的表现还不够好。
最后我使用kafka作为事件缓存,并使用我自己的代码将日志事件推送到ES。 ES服务器的机器可以完全使用。