日志架构

概述

本节总结了 Rancher 日志应用程序的架构。

更多关于 Banzai Cloud 日志运营商的工作细节,请参见Banzai Cloud 官方文档

Rancher v2.5 的日志优化

在 Rancher v2.5 中,日志有以下变化:

  • Banzai Cloud Logging operator现在是 Rancher 日志记录的动力,取代了以前的内部日志记录解决方案。
  • Fluent Bit用于汇总日志。Fluentd用于过滤消息并将其路由到输出。以前只使用 Fluentd。
  • 日志记录可以用 Kubernetes 清单配置,因为现在日志记录使用的是 Kubernetes 操作符与自定义资源定义。
  • 我们现在支持过滤日志。
  • 我们现在支持将日志写入多个输出。
  • 我们现在总是收集 Control Plane 和 etcd 日志。

Banzai Cloud 日志 Operator 的工作原理

日志操作员可以自动部署和配置 Kubernetes 日志管道。它在每个节点上部署和配置 Fluent Bit DaemonSet,从节点文件系统中收集容器和应用程序的日志。

Fluent Bit 查询 Kubernetes API,用关于 pod 的元数据丰富日志,并将日志和元数据传输给 Fluentd。Fluentd 接收、过滤并将日志传输到多个Outputs

以下的自定义资源用于定义日志如何被过滤和发送至其Outputs

  • 一个Flow是一个命名的自定义资源,它使用过滤器和选择器将日志信息发送到适当的Output
  • ClusterFlow用于路由集群级日志信息。
  • 一个 Output是一个命名的资源,定义了日志信息的发送位置。
  • 一个ClusterOutput定义了一个Output,可以从所有的FlowsClusterFlows获得。

每个Flow必须引用一个Output,每个ClusterFlow必须引用一个ClusterOutput

下图来自Banzai 文档,展示了新的日志架构。

How the Banzai Cloud Logging Operator Works with Fluentd