我已将 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 消息导入管道之前对其进行检查?
|