[转帖]Fluentd 的优缺点
https://zhuanlan.zhihu.com/p/129375187
以前在不少场合浅度使用过 Fluentd,将日志汇聚到一个地方。它给我的大体印象是
简单且能解决问题
直到最近遇到一个业务量稍大、逻辑较复杂的场景,Fluentd 的优点和缺点明显地展现了出来。
优点
它的日志采集方式非常丰富,有 tail、http、命令等等。方便地将日志采集起来。特别是 tail,考虑到了文件名包含日期的日志,日志的轮转等方面,让人觉得十分放心。
Fluentd 中 tag,label 两个概念使得可以实现灵活的处理逻辑。比如通过 rewrite_tag_filter 插件实现根据数据内容修改此数据的 tag,这条数据后续进入对应 tag 的处理逻辑,相当于路由功能;通过第三方插件 record_splitter 可用于拆分包含批量操作的日志;通过 copy 与 relabel 插件可将一条数据复制到两条流水线上。
作为一个日志传输工具,Fluentd 考虑到了传输过程中的很多问题,比如接收方跟不上时的可以设置缓存,接收方不可达时的可设置候选接收方(secondary),可设置多个接收方。
Fluentd 有丰富的插件,基本上想要的功能都有插件实现。因为插件都是 Ruby 脚本,编写的门槛很低,所以即使没有现成插件很多人也敢自己编写。
缺点
首先是性能。Fluentd 的宣传里有高性能这一项,可能相对于 logstash 的确好很多,但还是不太够。在实际使用中,解析 -> 转换 -> 入库 整个过程性能并不理想。比如实现上面提及的 rewrite_tag, split, copy 然后写入数据库,单进程每秒 2000 条日志,CPU 100%,内存占用 2-3GB。而且受限于 Ruby 的 GIL,它并不能真正多线程。多进程也受限于插件是否支持。
总之,Fluentd 的性能既因为 Ruby 消耗过多计算和内存资源,又因为 Ruby 难以受益与多核。对数据吞吐量大的业务来说它是很昂贵的。灵活和性能并不完全冲突,比如 Nginx 足够灵活,性能也足够强。
除了性能,Fluentd 的插件质量也不够好,第三方插件大多是使用者根据自己业务需要编写,只为实现特定需求,没有足够的泛化,也没有足够的测试和性能评估。不少常用的插件也以额外安装的方式添加,带来不必要的麻烦。
另外就是配置文件,一个 filter 里只能做一个转换,比如:
<filter a.tag>
@type parse
...
</filter>
<filter a.tag>
@type transform_record
...
</filter>
总觉得没有下面这样来的干脆
<filter a.tag>
<item>
@type parse
...
</item>
<item>
@type stransform_record
...
</item>
</filter>
最后
我觉得 Fluentd 在数据量不大的场景下还是很不错的,省心省事。
如果转换逻辑简单数据量很大,那可以考虑 Fluentd 的小伙伴 Fluent Bit,性能更高,占用资源少很多,但插件少一点。
如果转换逻辑较复杂,数据量很大,可以在采集端使用 Fluentd/Fluent Bit,数据汇聚处自己写程序。
[转帖]Fluentd 的优缺点的更多相关文章
- [转帖]LCD与LED的区别之背光原理与优缺点对比介绍
LCD与LED的区别之背光原理与优缺点对比介绍 http://m.elecfans.com/article/620376.html 时下液晶面板与液晶电视技术已经达到炉火纯青的境界,并已经成为大屏幕平 ...
- [转帖]KMS 是什么 以及 优缺点
产品激活 比如Windows激活 , office激活 等激活的原理是什么? KMS等激活工具安全吗? http://www.cnblogs.com/flowerslip/p/8370832.html ...
- 【转载】IE6 PNG透明终极解决方案(打造W3Cfuns-IE6PNG最强帖)
原文地址:http://www.w3cfuns.com/thread-297-1-1.html 本文版权归W3Cfuns.com所有,转载需在文章页面明显位置以链接的方式给出原文链接,否则W3Cfun ...
- [转帖]批处理-For详解
批处理-For详解 https://www.cnblogs.com/DswCnblog/p/5435300.html for 循环的写法 感觉非常好. 今天下午的时候简单测试了下. 多学习提高 非常重 ...
- DDD CQRS架构和传统架构的优缺点比较
明天就是大年三十了,今天在家有空,想集中整理一下CQRS架构的特点以及相比传统架构的优缺点分析.先提前祝大家猴年新春快乐.万事如意.身体健康! 最近几年,在DDD的领域,我们经常会看到CQRS架构的概 ...
- [NodeJS] 优缺点及适用场景讨论
概述: NodeJS宣称其目标是“旨在提供一种简单的构建可伸缩网络程序的方法”,那么它的出现是为了解决什么问题呢,它有什么优缺点以及它适用于什么场景呢? 本文就个人使用经验对这些问题进行探讨. 一. ...
- emmet,jade,haml, slim,less,sass,coffeescript等的实战优缺点
摘要: 文章背景,来自于群内周五晚上的一次头脑风暴式的思维碰撞交流活动. 随着前端技术的蓬勃发展, 各种新技术随着生产力的需要不断的涌入我们的视野, 那今天探讨的话题是这些新时代的前端兵器谱: 一. ...
- kubernetes部署Fluentd+Elasticsearch+kibana 日志收集系统
一.介绍 1. Fluentd 是一个开源收集事件和日志系统,用与各node节点日志数据的收集.处理等等.详细介绍移步-->官方地址:http://fluentd.org/ 2. Elastic ...
- sql server的优缺点
sql server的优点众多,让其在数据库领域独占鳌头,成为最受欢迎的数据库系统,其优缺点也自然是喜爱者们所关注的,首先了解一下它的历史: sql server是一个关系型数据库管理系统,最初是由M ...
- 单页Web应用优缺点
一.定义单页 Web 应用 (single-page application 简称为 SPA) 是一种特殊的 Web 应用.它将所有的活动局限于一个Web页面中,仅在该Web页面初始化时加载相应的HT ...
随机推荐
- 【scikit-learn基础】--『监督学习』之 均值聚类
聚类算法属于无监督学习,其中最常见的是均值聚类,scikit-learn中,有两种常用的均值聚类算法:一种是有名的K-means(也就是K-均值)聚类算法,这个算法几乎是学习聚类必会提到的算法:另一个 ...
- 25、Flutter中基本路由
Flutter 路由介绍 Flutter中的路由通俗的讲就是页面跳转.在Flutter中通过Navigator组件管理路由导航. 并提供了管理堆栈的方法.如:Navigator.push和Naviga ...
- 技术驱动,数据赋能,华为云GaussDB给世界一个更优选择
摘要:5月16日,"数智深耕 让美好发生 2023华为云城市峰会广州站"成功举行. 5月16日,"数智深耕 让美好发生 2023华为云城市峰会广州站"成功举行. ...
- 你的Parquet该升级了:IOException: totalValueCount == 0问题定位之旅
摘要:使用Spark SQL进行ETL任务,在读取某张表的时候报错:"IOException: totalValueCount == 0",但该表在写入时,并没有什么异常. 本文分 ...
- 1ms的时延,10Gbps速率…5G通信技术解读
摘要:5G通信的关键技术有哪些呢?5G对于移动互联网场景和物联网场景又带来了哪些新的技术和变革? 本文分享自华为云社区<5G通信关键技术解读>,作者:Super.雯 . 5G作为目前最新一 ...
- iOS App 上架流程图文教学
在上架 App 之前必须先准备好开发者帐号,但申请开发者帐号因法兰克早在之前已经申请好了,故就跳过此步骤,直接从产生凭证到上传 App 开始讲起.首先,要将自己辛苦写好的 App 送审的话,则要依序做 ...
- 火山引擎工具技术分享:用 AI 完成数据挖掘,零门槛完成 SQL 撰写
更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,并进入官方交流群 文 / DataWind 团队封声 在使用 BI 工具的时候,经常遇到的问题是:"不会 SQL 怎么生产加工 ...
- Mac 向日葵设置
- SE11/SE16N修改表数据
1.SE11修改方法 首先修改显示格式 选择SE16标准列表 双击这条数据 输入/H,回车,再回车 修改CODE为EDIT,F8 此时,数据已经可以修改了 2.SE16N修改方法 2.1断点修改 输入 ...
- C# .NET Socket SocketHelper 高性能 5000客户端 异步接收数据
网上有很多Socket框架,但是我想,C#既然有Socket类,难道不是给人用的吗? 写了一个SocketServerHelper和SocketClientHelper,分别只有5.6百行代码,比不上 ...