1. Fluent Bit 与 Fluentd 的差异是什么,Fluent Bit 在 Kubernetes 日志采集中如何部署?
请说明 Fluent Bit 与 Fluentd 的差异,以及 Fluent Bit 在 Kubernetes 日志采集中如何部署?
- Fluent Bit 与 Fluentd 的差异
- Fluent Bit 的架构与特性
- 在 K8s 中的部署方式
Fluentd 与 Fluent Bit 都是 CNCF 的日志采集器,但定位不同:Fluentd 功能全面、插件生态丰富(input/filter/output 插件多),但资源占用高、性能相对较低;Fluent Bit 是轻量级、高性能的采集器,用 C 编写、内存占用低(约数百 KB~数 MB)、吞吐高,擅长采集与转发,但插件与处理能力弱于 Fluentd。通常两者配合:Fluent Bit 作为轻量采集端(DaemonSet)在节点采集日志,可转发到 Fluentd 聚合做复杂处理,再输出到后端。在 K8s 中,Fluent Bit 通常以 DaemonSet 部署,每个节点一个实例,采集容器标准输出(/var/log/containers)与文件日志,通过 kubernetes filter 解析容器/命名空间/Pod 标签元数据,再经 output 输出到 Elasticsearch、Loki、Kafka 等。部署时配置 tail 插件监听日志文件、解析器(parser)按格式解析、filter 添加元数据、output 路由。
差异的本质是"轻量高性能 vs 功能全面":Fluent Bit 适合资源受限的采集端,Fluentd 适合功能强大的聚合处理。K8s 部署用 DaemonSet 就近采集,配合元数据注入是常态。