日志采集常见组件优劣势

flume

优势: 单source可支持多sink输出,能输出hdfs或者访问http接口,插件可扩展性较高(比如读个redis什么的)。失败策略保证消息的无丢失发送

劣势:不稳定,内存占用较大,长时间使用产生较多内存碎片。应用场景大多于离线文件搬运,偏大数据生态。

  

fluent-bit

优势:k8s生态组件,可自恢复,内存占用极少。守护进程,业务无侵入。 母组件fluentd可以做日志代理中心。

劣势:默认配置优化?读取端是单线程(所以cpu占用较高?)。插件只支持C、go语言,有专门的kafka插件,维护难度较高。

  

filebeat

elastic生态组件,golang组件, 为解决 Logstash "太重" 的问题

优势:资源占用极少,性能非常强。对文件控制很灵活,保证不重复读取。内置多种结构化方案(如json),output支持大部分主流组件(支持redis)。支持容器化。

劣势:默认配置需要优化(常见问题:注册表会很大)close_inactivescan_frequency两个参数很重要。无法保证不重复发送。

 

logagent:

优势:使用简单。deamon进程。对外提供http拉取服务。记录文件消费位置。接入es很方便。

劣势:不支持大内容(20M)的返回。java编写的agent,gc会对宿主机有卡顿表现。

 

matomo:

优势:简单搜索和可视化集一身,

劣势:业务侵入,需要埋点。收集能力有局限性。

 

Logstash: 重,慢。

 

Logan:

美团开源移动端日志收集组件

资料:https://github.com/Meituan-Dianping/Logan

 

相关资料:

filebeat: https://blog.csdn.net/qq_30868737/article/details/103389574

fluent-bit: https://blog.csdn.net/luanpeng825485697/article/details/83312662

filebeat:  https://www.jianshu.com/p/7c5b1b409e8c

各个对比: https://www.iteye.com/blog/luoshi0801-2252452

 

posted @ 2020-03-23 22:33  巴德大舅子  阅读(1045)  评论(0编辑  收藏  举报