今年新闻不断,多数早期进入 CNCF 的项目都相继宣布毕业。

CNCF(云原生计算基金会)在美国时间 2019 年 4 月 11 日宣布 fluentd 今天正式毕业了。

这是 CNCF 中毕业的第 6 个项目,之前已经毕业的项目为 KubernetesPrometheusEnvoyCoreDNScontainerd

fluentd 自 2011 年由 Treasure Data 公司的联合创始人 Sadayuki “Sada” Furuhashi 创建,作为构建统一记录层的开源数据收集器,统一记录层统一收集采集和消费,以便更好的使用和理解数据。在 2016 年 11 月,fluentd 也是第 6 个成为 CNCF 托管项目的。

fluentd 可以从多种数据源采集事件,并将它写入文件, RDBMS, NoSQL, IaaS, SaaS, Hadoop等等各类的目标地址。截至目前,fluentd 在 GitHub 上有 7629 个 star ,895 个 fork,以及 166 位贡献者,超过 4k+ commit 。

做日志相关的小伙伴基本都玩过 ELK ,我们都知道在大规模使用 Logstash 时的痛苦(还记得被 Logstash 配置文件支配的恐惧吗? 2333) 而 fluentd 的事件路由是通过 tag 来做,相比 Logstash 使用管道将所有数据路由到单个流里再通过配置将它发送到对应的目标而言这将大大简化配置的复杂度。(是的,这里是吐槽)

再一个,便是需要考虑部署和插件生态,首先来说部署:

  • fluentd 使用 C + Ruby 编写(Ruby 写起来蛮舒服的,早先写过一段时间),只要有 Ruby 的环境,可以很方便的进行部署。而大多数的 Linux 发行版是默认带着 Ruby 环境的,这也非常方便。
  • Logstash 使用 JRuby 编写(JRuby 就是使用 Java 实现的 Ruby 解释器),部署时需要有 JDK 和 JRuby 的环境。

这里只做陈述,不再展开。

回到插件生态上:

两者都有丰富的插件,并且编写插件也很简单。不过插件这种东西,按需使用,日常需要的基本都能找的到。唯一需要注意的就是选择插件时,需要仔细甄别。

“Fluentd has earned its place as the industry standard for log collection and shipping, and I am excited to see it as a graduated CNCF project,” said Gabe Monroy, Lead Program Manager for Containers, Microsoft Azure. “At Microsoft, we are proud to use Fluentd to power our cloud native logging subsystems and we look forward to working with the growing the open source community around Fluentd.”

引用一段话,fluentd 是否成为整个日志收集的行业标准,这个我不确定, 但在它托管至 CNCF 后,在云原生领域它确实发展迅速,多数公司都会采用 EFK 的方式进行云原生时代下的日志方案。

附一张 fluentd 的图,有空会写下 fluentd 的使用姿势 (flag++)

fluentd - https://moelove.info

再次恭喜 fluentd 毕业。


可以通过下面二维码订阅我的文章公众号【MoeLove】

TheMoeLove


张晋涛
1.7k 声望19.7k 粉丝