我已将 Fluent Bit (aws-for-fluent-bit:2.28.4) 作为 DaemonSet 部署在 AWS EKS 中,并具有以下管道:

[SERVICE]
    Parsers_File /fluent-bit/parsers/parsers.conf

[INPUT]
    Name     syslog
    Tag      prod_syslog
    Parser   syslog-rfc3164
    Listen   0.0.0.0
    Port     5140
    Mode     tcp
    
[OUTPUT]
    Name                  cloudwatch_logs
    Match                 prod_syslog
    region                eu-west-1
    log_group_name        prod-eks-syslog
    log_stream_name       syslog-messages
    log_retention_days    30
    auto_create_group     true

上述管道正在配置 Fluent Bit,以侦听端口 TCP:5140 中来自任何 IP 地址的 syslog 消息,并使用 RFC 3164 syslog 协议进行解析。并将收到的 syslog 消息保存在名为“prod-eks-syslog”的 AWS CloudWatch 日志组中。我可以确认 Fluent Bit 正在确认 syslog 消息,但出于某种原因,没有 syslog 消息写入 AWS CloudWatch 日志组。在解决问题时,我注意到 Fluent Bit pod 日志中有以下错误:

[2024/10/28 10:25:55] [ warn] [input:syslog:syslog.0] error parsing log message with parser 'syslog-rfc3164
[2024/10/28 10:25:55] [ warn] [parser:syslog-rfc3164] invalid time format %b %d %H:%M:%S for ' Oct 28'
[2024/10/28 10:25:56] [ info] [output:cloudwatch_logs:cloudwatch_logs.0] Creating log stream syslog-messages in log group prod-eks-syslog

我从上面的错误中了解到,解析器需要有效的时间格式,但我不明白为什么。作为发送实际系统日志消息的应用程序,它也适用于 RFC 3164 系统日志协议。

我该如何继续排除此问题?是否有任何 Kubectl 或 Fluent-Bit/Logger 命令可以在将传入的 syslog 消息导入管道之前对其进行检查?

0