Rancher v2.5 日志记录使用 banzai 云日志记录操作符 - 请参阅此处。
操作员在每个节点上部署并配置 Fluent Bit DaemonSet,以从节点文件系统收集容器和应用程序日志。Fluent Bit 查询 Kubernetes API 并使用有关 pod 的元数据丰富日志,并将日志和元数据传输到 Fluentd。Fluentd 接收、过滤日志并将其传输到多个输出
我对 Fluent Bit 不太了解,但文档说
Fluent Bit 是一个开源日志处理器和转发器,它允许您从不同来源收集任何数据,例如指标和日志,使用过滤器丰富它们并将它们发送到多个目的地。
听起来与 Fluentd(以及 LogStash 等其他日志转发器)非常相似。
那么将 Fluent bit 和 Fluentd 作为日志记录操作符的一部分的原因/好处是什么?
性能和资源利用率。FluentBit 更加轻量级,因此作为 DaemonSet 运行的成本更低。转发到 FluentD 也很有意义,因为 FluentD 有数百个插件,并且通常更灵活和可配置。FluentBit 文档本身说:
Fluentd 是一个很好的选择,因为它具有灵活性和插件可用性(超过 300 个扩展!),但如果数据收集发生在系统容量有限的嵌入式环境或物联网设备中,Fluent Bit 是适合使用的解决方案。
所以看起来这个操作员正在做的是使用 FluentBit 在尽可能轻量级的进程中转发日志,然后使用 FluentD 进行繁重的处理/聚合/运送到目的地,就像应用程序可能使用自己的日志转发器一样发送到 FluentD(例如通过来自 Kubernetes 外部某处的 HTTP 输入),然后让 FluentD 管理处理这些日志并将它们传送到目的地。