rancher-logging Helm Chart 选项

启用/禁用 Windows 节点 Logging

要启用或禁用 Windows 节点 Logging,你可以在 values.yaml 中将 global.cattle.windows.enabled 设置为 truefalse

默认情况下,如果使用 Cluster Dashboard UI 在 Windows 集群上安装了 Logging 应用程序,Windows 节点的 Logging 就会启用。

在这种情况下,将 global.cattle.windows.enabled 设置为 false 会禁用集群上的 Windows 节点 Logging。 禁用后,仍会从 Windows 集群中的 Linux 节点收集日志。

目前存在一个问题,在 Windows 集群中禁用 Windows Logging 后执行 helm upgrade 时不会删除 Windows nodeAgent。在这种情况下,如果已安装 Windows nodeAgents,用户可能需要手动卸载它们。

使用自定义 Docker 根目录

如果使用了自定义 Docker 根目录,你可以在 values.yaml 中设置 global.dockerRootDirectory

这将确保创建的 Logging CR 使用你指定的路径,而不是使用默认的 Docker data-root 位置。

请注意,这只影响 Linux 节点。

如果集群中有任何 Windows 节点,则更改将不适用于这些节点。

为自定义污点添加 NodeSelector 设置和容忍度

你可以添加 nodeSelector 设置,并通过编辑 Logging Helm Chart 值来添加其他容忍度。有关详细信息,请参阅此页面

启用 Logging 应用程序以使用 SELinux

要求:

Logging v2 已在 RHEL/CentOS 7 和 8 上使用 SELinux 进行了测试。

安全增强型 Linux (SELinux) 是对 Linux 的安全增强。被政府机构使用之后,SELinux 已成为行业标准,并在 CentOS 7 和 8 上默认启用。

要配合使用 Logging V2 与 SELinux,我们建议你根据此说明安装 rancher-selinux RPM。

然后,在安装 Logging 应用程序时,在 values.yaml 中将 global.seLinux.enabled 更改为 true,使 Chart 支持 SELinux。

其他日志来源

默认情况下,Rancher 会收集所有类型集群的 controlplane 组件节点组件的日志。

在某些情况下,Rancher 也能收集其他的日志。

下表总结了每种节点类型可以收集的其他日志来源:

日志来源 Linux 节点(包括在 Windows 集群中) Windows 节点

RKE

RKE2

K3s

AKS

EKS

GKE

要将托管 Kubernetes 的提供商作为额外的日志来源,在安装或升级 Logging Helm Chart 时,请启用 Enable enhanced cloud provider logging 选项。

启用后,Rancher 会收集提供商开放可用的所有其他节点和 controlplane 日志,不同提供商可能有所不同。

如果你已经使用了云提供商的日志解决方案,例如 AWS CloudWatch 或 Google Cloud Operations Suite(以前称为 Stackdriver),由于原生解决方案可以不受限制地访问所有日志,因此你无需启用此选项。

Systemd 配置

在 Rancher Logging 中,你必须为 K3s 和 RKE2 Kubernetes 发行版配置 SystemdLogPath

K3s 和 RKE2 Kubernetes 发行版将日志写入到 journald,它是 systemd 的子系统,用于日志记录。要收集这些日志,你需要定义 systemdLogPath。默认路径是 run/log/journal,但某些 Linux 发行版不默认使用该路径。例如,Ubuntu 默认使用 var/log/journal。要确定你的 systemdLogPath 配置,请参阅以下步骤。

Systemd 配置步骤:

  • 在其中一个节点上运行 cat /etc/systemd/journald.conf | grep -E ^\#?Storage | cut -d"=" -f2

  • 如果返回 persistent,则你的 systemdLogPath/var/log/journal

  • 如果返回 volatile,则你的 systemdLogPath/run/log/journal

  • 如果返回 auto,则检查 /var/log/journal 是否存在。

    • 如果 /var/log/journal 存在,则使用 /var/log/journal

    • 如果 /var/log/journal 不存在,则使用 /run/log/journal

注意事项:

如果返回的值不包括在上述描述中,Rancher Logging 将无法收集 controlplane 日志。要解决此问题,你需要在每个 controlplane 节点上执行以下操作。

  • 在 journald.conf 中设置 Storage=volatile

  • 重启主机。

  • systemdLogPath 设置为 /run/log/journal