掌握Fluent Bit:开发者必备的3大遥测管道输出插件
本系列是面向想要了解云原生计算基金会(CNCF)项目Fluent Bit的通用入门指南。每篇文章独立成篇,同时逐步提升读者实施Fluent Bit遥测管道解决方案的能力。
本文重点介绍在内部开发循环测试中有助于路由遥测数据的输出插件。我们将通过实战演练,探索遥测管道配置中最重要的三大输出插件。
准备工作
请确保已通过源码或容器镜像在本地安装Fluent Bit。可通过以下命令验证安装:
1
2
3
4
5
|
# 源码安装验证
$ fluent-bit -i dummy -o stdout
# 容器安装验证
$ podman run -ti ghcr.io/fluent/fluent-bit:4.0.8 -i dummy -o stdout
|
1. 标准输出插件
标准输出是开发测试中最直接的调试工具。以下配置演示了将虚拟遥测数据路由到标准输出:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
service:
flush: 1
log_level: info
http_server: on
http_listen: 0.0.0.0
http_port: 2020
hot_reload: on
pipeline:
inputs:
- name: dummy
tag: event.success
dummy: '{"message":"true 200 success"}'
- name: dummy
tag: event.error
dummy: '{"message":"false 500 error"}'
outputs:
- name: stdout
match: '*'
|
支持多种输出格式:
- json格式:每行数据封装在方括号内
- json_lines格式:简化的JSON行格式
- 可配置
json_date_key: false
移除时间戳
- 使用
json_date_format: java_sql_timestamp
获得可读时间戳
2. 文件输出插件
支持将特定遥测数据(如错误信息)保存到文件:
1
2
3
4
5
6
7
|
outputs:
- name: stdout
match: '*'
format: json_lines
- name: file
match: '*.error'
path: /tmp
|
运行时可实时监控错误文件:
1
|
$ tail -f /tmp/event.error
|
3. 流量计数插件
提供管道中记录数量和数据大小的洞察:
1
2
3
4
|
outputs:
- name: flowcounter
match: '*.error'
unit: second
|
输出示例:
1
|
[out_flowcounter] [1757958872, {"counts":5, "bytes":0, "counts/second":5, "bytes/second":0 }]
|
实践建议
- 调整虚拟插件的记录大小测试流量统计
- 将时间单位改为minute观察分钟级流量
- 结合过滤规则实现精细化数据路由
这些输出插件的灵活运用将显著提升开发测试效率。本系列后续将继续深入解析Fluent Bit解析器的实用技巧。
本文基于免费在线工作坊内容创作,更多实践案例可参考相关学习资源。