KubeSphere 目前支持添加的日志接收者包括 Elasticsearch、Kafka 和 Fluentd,本文档演示如何在 KubeSphere 部署容器化的 Fluentd 并将其添加为日志接收者,展示 Fluentd 接收到日志数据后,输出到容器的 stdout 标准输出,最后可以通过查看 Fluentd 容器的日志,验证添加日志接收者的流程是否成功。

前提条件

已创建了企业空间、项目,若还未创建请参考 多租户管理快速入门。这里我们为本演示创建示例项目 test-fluentd

第一步:创建配置 (ConfigMap)

1、使用集群管理员账号登录 KubeSphere,进入企业空间下的项目 test-fluentd 中,选择「配置中心」 → 「配置」,点击 「创建配置」。

添加 Fluentd 作为日志接收者 - 图1

2、在基本信息中名称填写为 fluentd-config,点击下一步进行配置设置,键值对填写以下配置,完成后点击 「创建」。

  1. # 键
  2. fluent.conf
  3. # 值
  4. <source>
  5. @type forward
  6. port 24224
  7. </source>
  8. <filter **>
  9. @type grep
  10. <exclude>
  11. key $.kubernetes.namespace_name
  12. pattern /^test-fluentd$/
  13. </exclude>
  14. </filter>
  15. <match **>
  16. @type stdout
  17. </match>

参数释义

  • source:Fluentd 在 24224 端口接受数据
  • filter:因为我们要把 Fluentd 接受到的日志输出至 stdout,为避免 Fluent Bit 与 FluentD 循环采集日志,这里过滤 Fluentd 所在项目 test-fluentd 下的日志
  • match:输出到标准输出

注意:本示例仅演示输出到标准输出。 Fluentd 支持多种第三方接收器转发,比如 S3, Mongodb, Cassandra, MySQL, syslog, Splunk 等。如需配置其他 Fluentd 支持的外部存储收集日志,请参考 FLuentd 官方文档

添加 Fluentd 作为日志接收者 - 图2

第二步:创建部署

1、选择 「工作负载」→ 「部署」,点击 「创建」。基本信息中名称可自定义,如 fluentd-logging

2、点击「下一步」进入容器组模板,在镜像中输入 fluent/fluentd:v1.4.2-2.0,点击「保存」然后点击「下一步」。

3、存储卷设置中,点击 「引用配置中心」,然后在配置中选择之前创建的 fluentd-config,挂载路径选择 只读,路径为 /fluentd/etc,然后点击保存。

添加 Fluentd 作为日志接收者 - 图3

4、点击「下一步」,标签保留默认值,点击「创建」。

添加 Fluentd 作为日志接收者 - 图4

第三步:创建服务

1、选择 「网络与服务」→「服务」,点击「创建」。在基本信息中名称可自定义,例如 fluentd-svc,点击「下一步」。

2、选择第一项 通过集群内部IP来访问服务 Virtual IP,点击指定工作负载,选择部署 fluentd-logging,端口名称 fluentd,默认 TCP 协议的端口和目标端口都设置为 24224,点击「下一步」然后点击「创建」。

添加 Fluentd 作为日志接收者 - 图5

3、可以看到 fluentd-svc 服务创建成功。

添加 Fluentd 作为日志接收者 - 图6

第四步:添加 Fluentd 作为日志接收者

1、点击「平台管理」 → 「平台设置」,选择「日志收集」,点击「添加日志接收者」。

添加 Fluentd 作为日志接收者 - 图7

2、在弹窗中选择 Fluentd,参考如下填写信息,点击确定保存信息。

  • 访问地址:格式参考 {$Fluentd 服务名}.{$Fluentd 所在的项目名}.svc,
  • 端口号:24224

3、可以看到日志状态显示收集中,说明添加成功。

添加 Fluentd 作为日志接收者 - 图8

说明:若需要对 Fluent Bit 转发 Fluentd 做个性化配置,可在日志接收者页面下进入 「Fluentd」 → 「更多操作」,点击 「编辑配置文件」 然后修改 parameters,可参看 Fluent Bit 官方文档 forward 插件支持的参数项。

添加 Fluentd 作为日志接收者 - 图9

第五步:验证日志输出

1、回到项目下的 「工作负载」 → 「部署」,进入 fluentd-logging,然后展开容器组点击进入容器日志。

添加 Fluentd 作为日志接收者 - 图10

2、在容器日志中,可以看到日志信息的实时数据在动态的输出,即说明 Fluentd 日志收集添加成功。

添加 Fluentd 作为日志接收者 - 图11