0

目前正试图从通过 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 不知道该记录。

有没有人知道如何处理这种情况或我可能错过/做错了什么?

谢谢

4

0 回答 0