最佳答案:答:此题邀请xinghua来解答,他总结了实际项目中对elk系统的一些调优的经验,与你分享百亿级elk日志系统优化纪实。 导语:elk是搭建实时日志分析系统的通用解决方案,通过elk可以方便地收集、搜
答:此题邀请xinghua来解答,他总结了实际项目中对elk系统的一些调优的经验,与你分享百亿级elk日志系统优化纪实。
导语:elk是搭建实时日志分析系统的通用解决方案,通过elk可以方便地收集、搜索日志。但随着日志量的增加,根据实际应用场景的优化调整能够更充分的利用系统资源。本文主要记录我们项目中对elk系统的一些调优。随着王者人生相关业务的快速发展,我们每天日志量很快超过了20亿条,存储超过2TB,elk日志系统的压力逐渐增加,日志系统的调整优化已经迫在眉睫。
1、日志系统架构(负载均衡优化后多个连接)
效果
单机filebeat吞吐量变大
(es创建索引的速度变大)
(2)上报采集 源服务器ip
问题:不是所有日志都会打印本机IP,比如异常错误日志往往无法打印服务器IP。这部分日志收集之后无法区分来源,难以定位问题。
原因:filebeat目前不支持上报本机ip
方案:添加字段client_ip,重启脚本动态修改client_ip为本机IP
filebeat.yml 部分配置
效果
异常日志也能定位服务器IP
效果
以删掉message字段为例看效果
(每天日志统计)
2.3elasticsearch优化
(1)优化模板_template配置
问题:随着王者荣耀wifi特权上线,日志量激增,默认配置下磁盘达到瓶颈。
原因:默认配置满足不了项目需要
number_of_shards 是数据分片数,默认为5
当es集群节点超过分片数时,不能充分利用所有节点
number_of_replicas 是数据备份数,默认是1
方案:调整模板配置
number_of_shards改为72
number_of_replicas改为0
(每个节点分配了2个分片)
备份从 1 改成了 0,减少了一半的写入