掌握 Fluent Bit:服务部分配置的开发者指南(第 5 部分)

这是一个面向想要学习云原生计算基金会(CNCF)项目 Fluent Bit 的通用入门指南系列。每个文章针对一个主题,提供关于主题是什么、为什么感兴趣、从何处开始以及如何动手学习与 Fluent Bit 项目相关主题的见解。

本文主题是为开发者使用 Fluent Bit 的技巧和窍门。之前文章介绍了在 Kubernetes 集群上使用 Fluent Bit 管道控制日志,本文将实地介绍帮助开发者测试 Fluent Bit 管道的内容,包括服务、输入和输出部分的配置,示例在 macOS 上进行。

开始之处:应探索本系列之前的文章,在开发者本地机器上安装并开始使用Fluent Bit,可以使用容器或源代码,文末链接可指向免费实践工作坊。可通过测试两种使用 Fluent Bit 的方法来验证安装是否正常,如源代码安装和容器安装。

服务部分:热重载:开始使用 Fluent Bit 时,配置的“服务”部分看似不重要,但开发者常忽略其在内部开发循环中重新启动源代码安装以快速测试配置更改的能力,通过配置热重载实现。

示例配置文件fluent-bit.yaml如下:

service:
  flush: 1
  log_level: info
  hot_reload: on

pipeline:
  inputs:
    - name:  dummy
      tag:   msg.info
      dummy: '{"message":"This is INFO message", "level":"INFO", "color": "yellow"}'
    - name:  dummy
      tag:   msg.error
      dummy: '{"message":"This is ERROR message", "level":"ERROR", "color": "red"}'

  outputs:
    - name: stdout
      match: '*'
    format: json_lines

运行后会交替输出两种消息。测试和开发过程中,修改配置过滤 info 状态的消息(删除 color 键),需使用热重载功能重新启动运行的 Fluent Bit 实例。

触发热重载的方法:

  • Linux 系统上使用 SIGHUP,通过kill -s SIGHUP $(pidof fluent)实现,日志输出会捕获 SIGHUP 并重新启动实例应用新配置。
  • 使用可配置的 HTTP 服务器和提供的端点:PUT /api/v2/reload 或 POST /api/v2/reload,在配置文件的服务部分添加http_server: on http_listen: 0.0.0.0 http_port: 2020 hot_reload: on,然后启动实例并使用相应命令,如curl -X POST -d '{}' localhost:2020/api/v2/reload,也可在 REST 客户端中查看,还可通过curl -X GET -d '{}' localhost:2020/api/v2/reload监控实例的热重载次数。

本系列后续将继续介绍更多关于配置、运行、管理和掌握 Fluent Bit 使用的内容,下一篇将探索更有趣的Fluent Bit 输入插件

阅读 33
0 条评论