You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Fluent Bit无法在CloudWatch创建部分日志流及仅发送单个日志流问题求助

Fluent Bit无法在CloudWatch创建部分日志流及仅发送单个日志流问题求助

问题描述

我遇到了Fluent Bit的异常情况:它只发送第一个日志流(Nginx ingress的日志)到CloudWatch,其他配置的日志流(比如MySQL Stage、WordPress Test/Stage)都没有被创建或发送。我的配置文件如下,且所有日志组已经提前创建完成。

从Fluent Bit的Pod日志可以看到,所有Input都已初始化并监听了对应的日志文件,所有Output Worker也都启动了,但只有Nginx的日志流被成功创建,其他日志流没有任何创建或发送的日志记录。


我的配置文件

Inputs 配置

[INPUT]
Name                    tail
Path                    /var/log/containers/ingress-nginx-controller*.log
multiline.parser        docker, cri
Tag                     kube.*
Mem_Buf_Limit           5MB
Skip_Long_Lines         On

[INPUT]
Name                    tail
Path                    /var/log/containers/wordpress-test*.log
exclude_path            kube.var.log.containers.wordpress-test-stage*.log
multiline.parser        docker, cri
Tag                     kube.*
Mem_Buf_Limit           5MB
Skip_Long_Lines         On

[INPUT]
Name                    tail
Path                    /var/log/containers/wordpress-test-stage*.log
multiline.parser        docker, cri
Tag                     kube.*
Mem_Buf_Limit           5MB
Skip_Long_Lines         On

[INPUT]
Name                    tail
Path                    /var/log/containers/mysql-stage*.log
multiline.parser        docker, cri
Tag                     kube.*
Mem_Buf_Limit           5MB
Skip_Long_Lines         On

[INPUT]
Name                    systemd
Tag                     host.*
Systemd_Filter          _SYSTEMD_UNIT=kubelet.service
Read_From_Tail          On

Outputs 配置

[OUTPUT]
Name                    cloudwatch_logs
Match                   kube.var.log.containers.ingress-nginx-controller*
region                  eu-west-1
log_group_name          beyer-eks/nginx-access-logs
log_stream_prefix       nginx_ingress_
auto_create_group       true

[OUTPUT]
Name                    cloudwatch_logs
Match                   kube.var.log.containers.mysql-stage*
region                  eu-west-1
log_group_name          beyer-eks/mysql-stage-logs
log_stream_name         mysql_stage_
auto_create_group       true

[OUTPUT]
Name                    cloudwatch_logs
Match_Regex             kube.var.log.containers.wordpress-test(?!-stage)*
region                  eu-west-1
log_group_name          beyer-eks/wordpress-test-logs
log_stream_name         wordpress_test_
auto_create_group       true

[OUTPUT]
Name                    cloudwatch_logs
Match                   kube.var.log.containers.wordpress-test-stage*
region                  eu-west-1
log_group_name          beyer-eks/wordpress-test-stage-logs
log_stream_name         wordpress_test_stage_
auto_create_group       true

Service 配置

[SERVICE]
Flush                   10

排查方向与解决方案

我帮你梳理了几个可能导致问题的关键点,你可以逐一验证:

  • Input的exclude_path配置错误
    你第二个tail Input的exclude_path写的是kube.var.log.containers.wordpress-test-stage*.log,但exclude_path参数需要填写文件路径格式(比如/var/log/containers/wordpress-test-stage*.log),而不是Tag格式。这个错误导致该Input仍然会监听WordPress Stage的日志文件,和第三个Input重复监听同一文件,可能引发日志处理冲突。

    • 修复:把第二个Input的exclude_path改为/var/log/containers/wordpress-test-stage*.log
  • WordPress Test的Match_Regex正则表达式有误
    你当前的正则kube.var.log.containers.wordpress-test(?!-stage)*存在两个问题:

    • 正则中的.需要转义(.在正则中代表任意字符),应该写成\.
    • (?!-stage)是负向预查,但后面的*位置错误,应该用.*匹配剩余的Tag内容
    • 修复后的正则应为:kube\.var\.log\.containers\.wordpress-test(?!-stage).*
  • log_stream_name vs log_stream_prefix的使用差异
    你给Nginx用的是log_stream_prefix(会自动生成带文件名后缀的唯一日志流),但其他Output用的是log_stream_name——这个参数会把所有日志都发送到同一个固定名称的日志流,如果没有日志流入,CloudWatch不会自动创建这个日志流。

    • 建议:把其他Output的log_stream_name改成log_stream_prefix,和Nginx的配置保持一致,这样会自动根据日志来源生成唯一的日志流,更容易排查是否有日志到达Output。
  • 验证Tag是否正确匹配
    可以临时添加一个stdout Output来验证所有日志的Tag是否符合预期:

    [OUTPUT]
    Name                    stdout
    Match                   *
    Format                  json_lines
    

    启动Fluent Bit后查看Pod日志,确认MySQL、WordPress的日志Tag是否和你Output中Match/Match_Regex的规则一致。如果Tag不匹配,日志就不会被发送到对应的CloudWatch Output。


备注:内容来源于stack exchange,提问作者monsterkekso

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.21 12:43:06