本主题提供 Fluent Bit 软件包的参考信息。

关于 Fluent Bit

Fluent Bit (https://fluentbit.io/) 是一种快速的轻型日志处理器和转发器,可用于从不同来源收集应用程序数据和日志,并统一并将其发送到多个目标。

可以使用 Fluent Bit 作为 TKG 集群中日志的日志转发器。您需要部署一个用于存储和分析日志的日志记录管理服务器。支持的日志记录服务器包括 Syslog、HTTP、Elastic Search、Kafka 和 Splunk。

要在 TKG 集群中安装 Fluent Bit 软件包,请参阅以下主题:

Fluent Bit 组件

Fluent Bit 软件包将在集群上安装下表中列出的容器。此软件包将从软件包存储库中指定的公共注册表中提取容器。
容器 资源类型 副本 描述
Fluent Bit DaemonSet 6 日志收集器、集成器、转发器

Fluent Bit 数据值

以下 fluent-bit-data-values.yaml 示例可用于 Syslog 服务器。
---
namespace: fluentbit-logging
tkg:
  instance_name: "<TKG_INSTANCE_NAME>"
  cluster_name: "<CLUSTER_NAME>"
fluentbit:
  output_plugin: "syslog"
  syslog:
    host: "<SYSLOG_HOST>"
    port: "<SYSLOG_PORT>"
    mode: "<SYSLOG_MODE>"
    format: "<SYSLOG_FORMAT>"

以下 fluent-bit-data-values.yaml 示例可用于 HTTP 端点。

---
namespace: fluentbit-logging
tkg:
  instance_name: "<TKG_INSTANCE_NAME>"
  cluster_name: "<CLUSTER_NAME>"
fluentbit:
  output_plugin: "http"
  http:
    host: "<HTTP_HOST>"
    port: "<HTTP_PORT>"
    uri: "<URI>"
    header_key_value: "<HEADER_KEY_VALUE>"
    format: "json"
以下 fluent-bit-data-values.yaml 示例可用于 Elastic Search。
---
namespace: fluentbit-logging
tkg:
  instance_name: "<TKG_INSTANCE_NAME>"
  cluster_name: "<CLUSTER_NAME>"
fluentbit:
  output_plugin: "elasticsearch"
  elasticsearch:
    host: "<ELASTIC_SEARCH_HOST>"
    port: "<ELASTIC_SEARCH_PORT>"
以下 fluent-bit-data-values.yaml 示例可用于 Kafka。
---
namespace: fluentbit-logging
tkg:
  instance_name: "<TKG_INSTANCE_NAME>"
  cluster_name: "<CLUSTER_NAME>"
fluentbit:
  output_plugin: "kafka"
  kafka:
    broker_service_name: "<BROKER_SERVICE_NAME>"
    topic_name: "<TOPIC_NAME>"
以下 fluent-bit-data-values.yaml 示例可用于 Splunk。
---
namespace: fluentbit-logging
tkg:
  instance_name: "<TKG_INSTANCE_NAME>"
  cluster_name: "<CLUSTER_NAME>"
fluentbit:
  output_plugin: "splunk"
  splunk:
    host: "<SPLUNK_HOST>"
    port: "<SPLUNK_PORT>"
    token: "<SPLUNK_TOKEN>"

Fluent Bit 配置

配置值在 fluent-bit-data-values.yaml 中设置。下表列出并介绍了可用的参数。
表 1. Fluent Bit 软件包配置
参数 描述 类型 默认
logging.namespace 将部署 Fluent Bit 的命名空间 string tanzu-system-logging
logging.service_account_name Bit 服务帐户的名称 string fluent-bit
logging.cluster_role_name 为 fluent bit 授予获取、监视和列出权限的集群角色的名称 string fluent-bit-read
logging.image.name Bit 映像的名称 string fluent-bit
logging.image.tag Fluent Bit 映像标记。如果升级版本,可能需要更新此值。 string v1.6.9_vmware.1
logging.image.repository 包含 Fluent Bit 映像的存储库的位置。默认为公共 VMware 注册表。如果使用的是专用存储库(例如气隙环境),请更改此值。 string projects.registry.vmware.com/tkg
logging.image.pullPolicy Fluent bit 映像提取策略 string IfNotPresent
logging.update_strategy 更新 DaemonSet 时要使用的更新策略 string RollingUpdate
tkg.cluster_name Tanzu Kubernetes 集群的名称 string 空(必填参数)
tkg.instance_name TKG 实例的用户定义名称,由一个部署中的主管集群和所有 Tanzu Kubernetes 集群共享。您可以使用与 安装相关的任何名称。 string 空(必填参数)
注: 此字段为必填字段,但可以是任意值。它是显示在日志中的名称。
fluent_bit.log_level 用于 Fluent Bit 的日志级别 string 信息
fluent_bit.output_plugin 设置 Fluent Bit 应将所收集的信息刷新到的后端 string 空(必填参数)
fluent_bit.elasticsearch.host 目标 Elasticsearch 实例的 IP 地址或主机名 string 空(output_plugin 为弹性搜索时为必填参数)
fluent_bit.elasticsearch.port 目标 Elasticsearch 实例的 TCP 端口 integer 空(output_plugin 为弹性搜索时为必填参数)
fluent_bit.elasticsearch.buffer_size 指定用于从 Elasticsearch 服务读取响应的缓冲区大小。如果为 False,将设置为无限制 string False
fluent_bit.elasticsearch.tls 为 Elasticsearch 指定 TLS 的默认设置 string 关闭
fluent_bit.kafka.broker_service_name 单个 Kafka Broker 多列表,例如,192.168.1.3:9092 string 空(output_plugin 为 kafka 时为必填参数)
fluent_bit.kafka.topic_name Fluent Bit 将用于向 Kafka 发送消息的单个条目或由 (,) 分隔的主题列表 string 空(output_plugin 为 kafka 时为必填参数)
fluent_bit.splunk.host 目标 Splunk 服务器的 IP 地址或主机名 string 空(output_plugin 为 splunk 时为必填参数)
fluent_bit.splunk.port 目标 Splunk 服务器的 TCP 端口 integer 空(output_plugin 为 splunk 时为必填参数)
fluent_bit.splunk.token 为 HTTP 事件收集器接口指定身份验证令牌 string 空(output_plugin 为 splunk 时为必填参数)
fluent_bit.http.host 目标 HTTP 服务器的 IP 地址或主机名 string 空(output_plugin 为 http 时为必填参数)
fluent_bit.http.port 目标 HTTP 服务器的 TCP 端口 integer 空(output_plugin 为 http 时为必填参数)
fluent_bit.http.mode 指定目标 Web 服务器的 HTTP URI string 空(output_plugin 为 http 时为必填参数)
fluent_bit.http.header_key_value HTTP 标头键/值对。可以设置多个标头 string 空(output_plugin 为 http 时为必填参数)
fluent_bit.http.format 指定要在 HTTP 请求正文中使用的数据格式 string 空(output_plugin 为 http 时为必填参数)
fluent_bit.syslog.host 远程 Syslog 服务器的域或 IP 地址 string 空(output_plugin 为 syslog 时为必填参数)
fluent_bit.syslog.port 远程 Syslog 服务器的 TCP 或 UDP 端口 integer 空(output_plugin 为 syslog 时为必填参数)
fluent_bit.syslog.mode 从 TCP、UDP 和 TLS 指定传输类型 string 空(output_plugin 为 syslog 时为必填参数)
fluent_bit.syslog.format 指定要在 HTTP 请求正文中使用的数据格式 string 空(output_plugin 为 syslog 时为必填参数)
host_path.volume_1 从主机节点的文件系统到 pod 的目录路径(对于卷 1) string /var/log
host_path.volume_2 从主机节点的文件系统到 pod 的目录路径(对于卷 2) string /var/lib/docker/containers
host_path.volume_3 从主机节点的文件系统到 pod 的目录路径(对于卷 3) string /run/log
systemd.path Systemd 日志目录的路径 string /var/log/journal