EFK日志收集丢失率测试报告

目前我们EFK日志系统接入了近10种日志类型,每天的日志量约1T,峰值时达到33W/s的写入,为了更好的服务,我对日志收集的完整度做了一次测试,现发出来,供大家参考!

测试场景:
两种日志:
一种用户访问日志(nginx access log)
一种接口调用日志(nginx access log)

测试方法:
每种日志每个场景做三次测试取平均值

测试逻辑 :

EFK_write_test
添加有策略有:
rewrite_tag_filter
grep
ua_parser
replace
record_modifier
geoip
以下是测试结果对比图

EFK_write_result
从测试结果来看:
fluentd 在无策略写文件时,无丢失,在添加一定策略后出现不同程度丢失,数据完整率保持在99.95%以上,原因有二:
1、和日志内容有关,不同的日志会出现不同的结果
2、和策略有关,有些策略本身的匹配度导致一些日志没匹配至丢弃
以上两个问题,也可通过日志收集客户端fluent的log_format,和策略的匹配精准度来解决。

fluentd 在无策略写elasticsearch时除上面的两条原因外,还有一条是elasticsearch的mappings设置有关,比如某些字段不符合mappings设置的类型,elasticsearch就会报错,拒绝写入
最常见的有 “-“ 、”null” 、乱码等,可以通过调整mappings的方式来解决这个问题。

总体而言,目前我们的应用场景已满足,都能保持在99.9%以上,

文章目录
,