0

使用 fluentd 我想更改“源”字段值,但不知道如何去做。

目前它正在将容器 IP 地址作为“源”,但我需要将其作为自定义名称。

有任何想法吗?

编辑:

我尝试过的事情:

  1. 这是在 Fargate ECS 上运行的 Alpine 容器,因此在任务定义中设置主机名值。

Error: ClientException: hostname is not supported on container when networkMode=awsvpc.

  1. 使用记录转换器设置主机名/源。
    <filter foo.**>
      @type record_transformer
      <record>
        hostname "foo-#{Socket.gethostname}"
      </record>
    </filter>

    <filter foo.**>
      @type record_transformer
      <record>
        source "foo-#{Socket.gethostname}"
      </record>
    </filter>

记录完全没有变化,但我可以在日志中看到正在读取的过滤器和 gethostname 正在工作。

因此,进一步查看 record_transformer,我已经能够使用此配置编写一个新字段:

<filter foo.**>
  @type record_transformer
  <record>
    server "foo-#{Socket.gethostname}"
  </record>
</filter>

如何更改现有字段的内容?

  1. 这个怎么样:
<filter foo.**>
  @type record_modifier
  <replace>
    key source
    expression /[\s\S]*/
    replace "foo-#{Socket.gethostname}"
  </replace>
</filter>

“源”字段应该包含其内容应该替换为“foo-#{Socket.gethostname}”的任何内容,但它没有。

4

0 回答 0