使用 fluentd 我想更改“源”字段值,但不知道如何去做。
目前它正在将容器 IP 地址作为“源”,但我需要将其作为自定义名称。
有任何想法吗?
编辑:
我尝试过的事情:
- 这是在 Fargate ECS 上运行的 Alpine 容器,因此在任务定义中设置主机名值。
Error: ClientException: hostname is not supported on container when networkMode=awsvpc.
- 使用记录转换器设置主机名/源。
<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>
如何更改现有字段的内容?
- 这个怎么样:
<filter foo.**>
@type record_modifier
<replace>
key source
expression /[\s\S]*/
replace "foo-#{Socket.gethostname}"
</replace>
</filter>
“源”字段应该包含其内容应该替换为“foo-#{Socket.gethostname}”的任何内容,但它没有。