文章目录Fluentd日志收集这件事它想统一标准能干什么为什么值得关注1. CNCF 毕业项目2. 插件生态丰富3. 架构轻量实际使用场景适合谁用Fluentd日志收集这件事它想统一标准做运维或者搞数据的人都知道日志管理是个老大难问题。应用日志、系统日志、网络日志格式五花八门存的地方也不一样。想做个统一分析先得把散落各处的日志收集起来。Fluentd 就是干这个的。它是一个开源的日志收集器目标很明确统一日志层。把各种来源的日志收集起来统一格式然后转发到你指定的地方存起来。能干什么Fluentd 的核心能力就两点收集和转发。收集端它支持从文件、Socket、HTTP 等多种方式接收日志。不管你日志是 JSON 格式、纯文本还是自定义格式它都能处理。转发端它能把日志写到文件、数据库MySQL、MongoDB、搜索引擎Elasticsearch、云存储S3等各种地方。你用什么存储它就往哪写。用法也简单。装好之后写个配置文件指定日志来源和去向启动就行。Ruby 写的gem install 直接装。$ gem install fluentd $ fluentd -s conf $ fluentd -c conf/fluent.conf $ echo {json:message} | fluent-cat debug.test为什么值得关注1. CNCF 毕业项目Fluentd 是云原生计算基金会CNCF的毕业项目和 Kubernetes 同级别。这意味着它经过了严格的社区审核质量有保障。在云原生领域它的地位很稳。2. 插件生态丰富官方插件超过 500 个覆盖了主流的日志来源和存储目标。你想接什么系统基本都有现成的插件可用。不用自己写代码去对接。3. 架构轻量单个 Fluentd 实例资源占用很小适合在每台服务器上部署。收集完本地日志再统一转发架构清晰。大规模场景下也能横向扩展。实际使用场景最常见的场景是 Kubernetes 日志收集。在每个节点跑一个 Fluentd收集容器日志然后统一发到 Elasticsearch。配合 Kibana 做可视化就是一套完整的日志分析方案。另一个场景是多云环境下的日志统一。你可能同时用了 AWS、阿里云日志分散在各处。Fluentd 能把它们收集到一个地方方便统一查询。适合谁用如果你在做运维、SRE 或者数据工程日志收集是绕不开的环节。Fluentd 是这个领域的主流选择之一文档完善社区活跃。如果你在用 KubernetesFluentd 几乎是标配。很多 K8s 发行版自带 Fluentd 作为日志组件。当然也有局限。Fluentd 是 Ruby 写的性能上比 Go 写的同类工具如 Fluent Bit差一些。但对大多数场景来说够用了。真有性能瓶颈可以考虑 Fluent Bit 作为轻量替代。这是个实实在在解决运维痛点的工具不花哨但管用。能瓶颈可以考虑 Fluent Bit 作为轻量替代。这是个实实在在解决运维痛点的工具不花哨但管用。