开发者社区 问答 正文

日志采集Agent对比是多少?


日志采集场景下客户端测评


DT时代,数以亿万计的服务器、移动终端、网络设备每天产生海量的日志。中心化的日志处理方案有效地解决了在完整生命周期内对日志的消费需求,而日志从设备采集上云是始于足下的第一步。


三款日志采集工具


  • Logstash开源界鼎鼎大名ELK stack中的”L”,社区活跃,生态圈提供大量插件支持
  • Logstash基于JRuby实现,可以跨平台运行在JVM上
  • 模块化设计,有很强的扩展性和互操作性。

Fluentd
  • 开源社区中流行的日志采集工具,td-agent是其商业化版本,由Treasure Data公司维护,是本文选用的评测版本。
  • Fluentd基于CRuby实现,并对性能表现关键的一些组件用C语言重新实现,整体性能不错。
  • Fluentd设计简洁,pipeline内数据传递可靠性高
  • 相较于Logstash,其插件支持相对少一些。
Logtail
  • 阿里云日志服务的生产者,经过3年多阿里集团大数据场景考验
  • 采用C++语言实现,对稳定性、资源控制、管理等下过很大的功夫,性能良好
  • 相比于Logstash、Fluentd的社区支持,Logtail功能较为单一,专注日志采集功能。


功能对比

功能项LogstashFluentdLogtail
日志读取轮询轮询事件触发
文件轮转支持支持支持
Failover处理 (本地checkpoint)支持支持支持
通用日志解析支持grok(基于正则表达式)解析支持正则表达式解析支持正则表达式解析
特定日志类型支持delimiter、key-value、json等主流格式支持delimiter、key-value、json等主流格式支持delimiter、key-value、json等主流格式
数据发送压缩插件支持插件支持LZ4
数据过滤支持支持支持
数据buffer发送插件支持插件支持支持
发送异常处理插件支持插件支持支持
运行环境JRuby实现,依赖JVM环境CRuby、C实现,依赖Ruby环境C++实现,无特殊要求
线程支持支持多线程多线程受GIL限制支持多线程
热升级不支持不支持支持
中心化配置管理不支持不支持支持
运行状态自检不支持不支持支持cpu/内存阈值保护


日志文件采集场景 - 性能对比


日志样例:以Nginx的access log为样例,如下一条日志365字节,结构化成14个字段:

在接下来的测试中,将模拟不同的压力将该日志重复写入文件,每条日志的time字段取当前系统时间,其它13个字段相同。
相比于实际场景,模拟场景在日志解析上并无差异,有一点区别是:较高的数据压缩率会减少网络写出流量。

Logstash


logstash-2.0.0版本,通过grok解析日志并写出到kafka(内置插件,开启gzip压缩)。
日志解析配置:


测试结果:
写入TPS写入流量 (KB/s)CPU使用率 (%)内存使用 (MB)
500178.2222.4427
1000356.4546.6431
50001782.23221.1440
100003564.45483.7450


Fluentd


td-agent-2.2.1版本,通过正则表达式解析日志并写入kafka(第三方插件fluent-plugin-kafka,开启gzip压缩)。
日志解析配置:


测试结果:
写入TPS写入流量 (KB/s)CPU使用率 (%)内存使用 (MB)
500178.2213.561
1000356.4523.461
50001782.2394.3103

注:受GIL限制,Fluentd单进程最多使用1个cpu核心,可以使用插件multiprocess以多进程的形式支持更大的日志吞吐。

Logtail


logtail 0.9.4版本,设置正则表达式进行日志结构化,数据LZ4压缩后以HTTP协议写到阿里云日志服务,设置batch_size为4000条。
日志解析配置:


测试结果:
写入TPS写入流量 (KB/s)CPU使用率 (%)内存使用 (MB)
500178.221.713
1000356.45315
50001782.2315.323
100003564.4531.625


单核处理能力对比




总结


可以看到三款日志工具各有特点:
  • Logstash支持所有主流日志类型,插件支持最丰富,可以灵活DIY,但性能较差,JVM容易导致内存使用量高。
  • Fluentd支持所有主流日志类型,插件支持较多,性能表现较好。
  • Logtail占用机器CPU/内存资源最少,性能吞吐量较好,针对常用日志场景支持全面,但缺少插件等机制,灵活性和可扩展性不如以上两个客户端。

展开
收起
轩墨 2017-10-24 10:06:33 1967 分享 版权
0 条回答
写回答
取消 提交回答