安装 Fluent Bit 以转发日志

本主题介绍了如何将 Fluent Bit 部署到 Tanzu Kubernetes Grid 中的独立管理集群或工作负载集群。

Fluent Bit 是一种轻量级日志处理器和转发器。此 Tanzu Kubernetes Grid 版本中提供的 Fluent Bit 实施允许您从 vSphere 8、Amazon Web Services (AWS) 和 Azure 上运行的集群中收集日志。然后,您可以将其转发到日志存储提供程序,例如 Elastic SearchKafkaSplunk 或 HTTP 端点。

您可以在要从中收集日志的任何独立管理集群或工作负载集群上部署 Fluent Bit。首先,在要从中收集日志的集群上配置输出插件,具体取决于您使用的端点。然后,在集群上部署 Fluent Bit。

必备条件

为 Fluent Bit 部署准备集群

注意

您必须在要从中收集日志的每个集群上部署 Fluent Bit。

要准备集群,请执行以下操作:

  1. 获取要在其中部署 Fluent Bit 的集群的管理员凭据。例如:

    tanzu cluster kubeconfig get my-cluster --admin
    
  2. 将 kubectl 的上下文设置为集群。例如:

    kubectl config use-context my-cluster-admin@my-cluster
    

在集群上部署 Fluent Bit

请按照以下过程在集群上部署 Fluent Bit:

  1. 如果集群没有已安装 Fluent Bit 软件包的软件包存储库(如 tanzu-standard 存储库),请安装一个:

    注意

    如果要将基于计划的集群(旧版)作为目标,请跳过此步骤。对于基于计划的集群,在 tanzu-package-repo-global 命名空间中的每个集群能够自动启用 tanzu-standard 软件包存储库。

    tanzu package repository add PACKAGE-REPO-NAME --url PACKAGE-REPO-ENDPOINT --namespace tkg-system
    

    其中:

    • PACKAGE-REPO-NAME 是软件包存储库的名称,如 tanzu-standard 或使用 ADDITIONAL_IMAGE_REGISTRY 变量配置的专用映像注册表的名称。
    • PACKAGE-REPO-ENDPOINT 是软件包存储库的 URL。

      • 对于此版本,tanzu-standard URL 为 projects.registry.vmware.com/tkg/packages/standard/repo:v2.2.0。要从 Tanzu CLI 获取此值,请参见列出软件包存储库,或在 Tanzu Mission Control 中查看集群 (Cluster) 窗格中的附加模块 (Addons) > 存储库 (Repositories) 列表。
  2. 如果尚未执行此操作,请在集群中安装证书管理器。有关说明,请参见安装证书管理器以进行证书管理

  3. 确认 Fluent Bit 软件包在您的集群中可用:

    tanzu package available list -A
    
  4. 检索可用软件包的版本:

    tanzu package available list fluent-bit.tanzu.vmware.com -A
    
  5. 为 Fluent Bit 软件包准备配置文件:

    1. 检索软件包的默认配置:

      tanzu package available get fluent-bit.tanzu.vmware.com/PACKAGE-VERSION --default-values-file-output FILE-PATH
      

      其中,PACKAGE-VERSION 是要安装的 Fluent Bit 软件包的版本,FILE-PATH 是要将配置文件保存到的位置,例如,fluent-bit-data-values.yaml

    2. 根据要配置的日志管理后端,将一个或多个 [Output] 配置添加到 fluent-bit-data-values.yaml 文件中的 fluent_bit.config.outputs 键。

    3. 查看并根据需要修改其他配置参数。有关可在 fluent-bit-data-values.yaml 中设置的配置参数的完整列表链接,请参见下面的 Fluent Bit 软件包配置参数

  6. 准备 fluent-bit-data-values.yaml 文件后,移除文件中的所有备注:

    yq -i eval '... comments=""' fluent-bit-data-values.yaml
    
  7. 运行 tanzu package install 以部署软件包:

    tanzu package install fluent-bit \
    --package fluent-bit.tanzu.vmware.com \
    --version AVAILABLE-PACKAGE-VERSION \
    --values-file fluent-bit-data-values.yaml \
    --namespace TARGET-NAMESPACE
    

    其中:

    • TARGET-NAMESPACE 是要在其中安装 Fluent Bit 软件包的命名空间。例如,my-packages 命名空间。

      • 如果未指定 --namespace 标记,Tanzu CLI 将使用 default 命名空间。Fluent Bit Pod 和与 Fluent Bit 组件关联的任何其他资源都是在您于 fluent-bit-data-values.yaml 中提供的名称空间中创建的;请勿将 Fluent Bit 软件包安装到此命名空间中。
      • 指定的命名空间必须已存在,例如,通过运行 kubectl create namespace my-packages
    • AVAILABLE-PACKAGE-VERSION 是通过运行上面的 tanzu package available 检索到的版本。

    例如:

    tanzu package install fluent-bit --package fluent-bit.tanzu.vmware.com --namespace my-packages --version 1.8.15+vmware.1-tkg.1
    

Fluent Bit 软件包配置参数

下表列出了 Fluent Bit 软件包的配置参数,并介绍了其默认值。您可以在上面的 Deploy Fluent Bit on a Cluster 中创建的 fluent-bit-data-values.yml 文件中设置以下配置值。

参数 描述 类型 默认
namespace 将部署 Fluent Bit 的命名空间。 String tanzu-system-logging
fluent_bit.config.outputs 有关 Fluent Bit 输出的配置信息,请参见 Fluent Bit 文档 多行 YAML Standard output
fluent_bit.config.parsers 有关 Fluent Bit 分析程序的配置信息,请参见 Fluent Bit 文档 多行 YAML JSON parser
fluent_bit.config.plugins Fluent Bit 插件配置的内容。 String <nil>
fluent_bit.config.service 有关 Fluent Bit 服务的配置信息,请参见 Fluent Bit 文档 多行 YAML 默认 Fluent Bit 服务配置。
fluent_bit.config.streams Fluent Bit 流文件的内容。 String <nil>
fluent_bit.config.filters 有关 Fluent Bit 筛选器的配置信息,请参见 Fluent Bit 文档 多行 YAML 默认 Kubernetes 筛选器。
fluent_bit.config.inputs 有关 Fluent Bit 输入的配置信息,请参见 Fluent Bit 文档 String 使用 tail 插件载入 Kubernetes 容器日志,并从 Kubelet 载入 systemd 日志。
fluent_bit.daemonset.resources 有关 Fluent Bit 容器资源要求的配置信息,请参见 Fluent Bit 文档 多行 YAML <nil>
fluent_bit.daemonset.podAnnotations Fluent Bit 部署 Pod 注释。 列表 <nil>
fluent_bit.daemonset.podLabels Fluent Bit 部署 Pod 标签。 列表 <nil>

验证 Fluent Bit 部署

部署 Fluent Bit 后,可以验证部署是否成功:

  1. 确认已安装 fluent-bit 软件包。例如:

    tanzu package installed list -A
    

    fluent-bit 软件包和 fluent-bit 应用安装在运行 tanzu package install 命令时指定的命名空间中。

  2. 确认已在 AVAILABLE-PACKAGE-NAMESPACE 中成功协调 fluent-bit 应用:

    kubectl get apps -A
    

    如果状态不是 Reconcile succeeded,请查看 fluent-bit 应用的完整状态详细信息。查看完整状态可帮助您解决问题:

    kubectl get app fluent-bit --namespace AVAILABLE-PACKAGE-NAMESPACE -o yaml
    

    其中,AVAILABLE-PACKAGE-NAMESPACE 是安装软件包的命名空间。

  3. 通过列出集群中正在运行的所有 Pod,确认新服务正在运行。

    kubectl get pods -A
    

    tanzu-system-logging 命名空间中,您应该会看到在 Pod 中运行的 fluent-bit 服务:

    NAMESPACE               NAME                     READY   STATUS    RESTARTS   AGE
    [...]
    tanzu-system-logging    fluent-bit-zd2tn         1/1     Running   0          6m23s
    [...]
    

    Fluent Bit Pod 和与 Fluent Bit 组件关联的任何其他资源都是在您于 fluent-bit-data-values.yaml 文件中提供的名称空间中创建的。如果使用的是默认命名空间,则会在 tanzu-system-logging 命名空间中创建这些 Pod 和资源。

更新正在运行的 Fluent Bit 部署

要在部署后更改 Fluent Bit 软件包的配置,请更新已部署的 Fluent Bit 软件包:

  1. 更新 fluent-bit-data-values.yaml 文件中的 Fluent Bit 配置。

  2. 更新安装的软件包:

    tanzu package installed update fluent-bit \
    --version 1.8.15+vmware.1-tkg.1 \
    --values-file fluent-bit-data-values.yaml \
    --namespace my-packages
    

    预期输出:

    | Updating package 'fluent-bit'
    - Getting package install for 'fluent-bit'
    | Updating secret 'fluent-bit-my-packages-values'
    | Updating package install for 'fluent-bit'
    
     Updated package install 'fluent-bit' in namespace 'my-packages'
    

使用新值或者您添加的值协调 Fluent Bit 软件包。kapp-controller 应用更改可能需要长达五分钟的时间。

有关更新的信息,请参见更新软件包

删除 Fluent Bit 部署

要移除集群上的 Fluent Bit 软件包,请运行:

tanzu package installed delete fluent-bit --namespace my-packages

有关删除的信息,请参见删除软件包

check-circle-line exclamation-circle-line close-line
Scroll to top icon