目前正试图从通过 Fluentd 推送到 S3 的日志中过滤掉 K8S 命名空间。
尝试使用以下方法过滤 K8S 命名空间的值:
<filter kubernetes.**>
@type record_transformer
enable_ruby true
<record>
kubernetes_namespace_name ${record["kubernetes"]["namespace_name"]}
</record>
</filter>
然后通过评估内联值在路径值中使用它:
<match kubernetes.application.**>
@type copy
<store>
@type s3
<assume_role_credentials>
role_arn "#{ENV['FLUENTD_ROLE_ARN']}"
role_session_name "#{ENV['FLUENTD_ROLE_SESSION_NAME']}"
</assume_role_credentials>
s3_bucket "#{ENV['FLUENTD_S3_ACCESS_POINT_ARN']}"
s3_region "#{ENV['AWS_REGION']}"
path "application-${record['kubernetes']['namespace_name']}"
<buffer tag,time>
@type file
path /var/log/fluent/s3
timekey 10 # 1 hour partition
timekey_wait 10
timekey_use_utc true # use utc
chunk_limit_size 256m
</buffer>
</store>
</match>
不断收到错误消息,指出 Fluentd 不知道该记录。
有没有人知道如何处理这种情况或我可能错过/做错了什么?
谢谢