
Fluentd 配置中环境变量的实战用法
Fluentd 通过 "#{ENV['VAR']}" 语法在配置中引用环境变量,典型用于密钥外置、多环境复用与容器化部署。本文给出完整示例、默认值写法与 Systemd/Docker/K8s 三种注入方式。
聚焦概念、架构、排障、价格与选型,一篇解决一个明确问题。

Fluentd 通过 "#{ENV['VAR']}" 语法在配置中引用环境变量,典型用于密钥外置、多环境复用与容器化部署。本文给出完整示例、默认值写法与 Systemd/Docker/K8s 三种注入方式。

Fluentd 的 match 用通配符匹配 tag,排除特定日志可用取反的标签命名、grep 过滤器的 exclude 块、或 rewrite_tag_filter 把不要的日志路由到 null 输出。本文给出三种排除写法。

Kibana 导出 CSV 的三条路径:Discover 保存搜索后 Share→CSV Reports 生成下载、Lens 表格面板直接导出、或借助 Canvas/报表功能。免费版功能受限时用 ELK API 或第三方工具替代。

Filebeat 的条件判断用正则 ^[0-9] 或 ^\\d 匹配"以数字开头"的字符串,配合 processors 里的 drop_event 或 add_fields 实现条件处理。本文给出具体配置示例与常见写法错误。

该错误表示另一个 Filebeat 进程(或僵尸进程)占用了同一个 data 目录。解法:确认并结束残留进程;确实要多实例运行时给每个实例独立 path.data。本文给出排查命令与多实例配置。

Filebeat 解析日志行的三种方式:dissect 处理器按固定模式切分、grok 正则提取、JSON 日志用 decode_json_fields。本文给出三种写法的配置示例与选型建议。

Fluentd 的 pattern not match 错误表示日志行与 parse 段的正则/格式不匹配。排查步骤:拿真实日志行对照 pattern、用 fluentd 在线正则测试器调试、确认多行日志已合并。本文给出完整排查流程。

可以——同一个 tag 的日志会依次经过所有匹配的 filter 串联处理;要同时发往多个 match 输出,需要用 copy 输出插件复制事件流。本文给出串联与复制的完整配置。

Fluentd 是日志采集与路由工具(采集→处理→转发),Kafka 是分布式消息队列(缓冲→削峰→解耦)。两者不互斥,常见组合是 Fluentd 采集后写入 Kafka 做缓冲。本文讲清定位差异与架构选型。

#012 与 #015 是 rsyslog 日志中的 ASCII 控制字符转义:#012 是换行符 LF、#015 是回车符 CR。Windows 风格 CRLF 日志或消息内换行会以这种形式出现。本文给出规范化处理方法。

Fluentd 解析嵌套 JSON 的两步:parser 先用 json 解析器解析整条日志,字符串类型的内嵌 JSON 字段再用 filter 阶段的 json 解析器二次展开。

检查 Fluent Bit 内部错误的四个途径:日志级别开到 debug 看输出、内置 HTTP 监控端点 /api/v1/metrics 查错误计数、health check 端点探活、以及 input/output 插件的独立错…