fluentd 根据键值创建标签
fluentd create tag based on key value
将日志从 Kubernetes 传送到 Fluentd 聚合器。
有没有办法将其中一个键值转换为标签值?例如,application_name 有键值。如果可以将其转换为标签值,则可以定向到不同的输出。
谢谢,
有一个 fluentd record_transformer 插件。
https://docs.fluentd.org/v1.0/articles/filter_record_transformer
<filter foo.bar>
@type record_transformer
<record>
hostname "#{Socket.gethostname}"
tag ${tag}
</record>
</filter>
示例输入:{"message":"hello world!"}
示例输出:{"message":"hello world!", "hostname":"db001.internal.example.com", "tag":"foo.bar"}
记录创建后无法编辑标签。
执行此操作的方法是使用 rewrite tag filter
重新发出记录
你可以这样做:
<match kubernetes_logs>
@type rewrite_tag_filter
<rule>
key application_name
pattern (.+)
tag
</rule>
</match>
就是说,这种方法使 fluentd 可以处理两倍多的记录。如果您只需要将记录定向到不同的端点,通常输出插件允许按键过滤记录。
将日志从 Kubernetes 传送到 Fluentd 聚合器。
有没有办法将其中一个键值转换为标签值?例如,application_name 有键值。如果可以将其转换为标签值,则可以定向到不同的输出。
谢谢,
有一个 fluentd record_transformer 插件。 https://docs.fluentd.org/v1.0/articles/filter_record_transformer
<filter foo.bar>
@type record_transformer
<record>
hostname "#{Socket.gethostname}"
tag ${tag}
</record>
</filter>
示例输入:{"message":"hello world!"}
示例输出:{"message":"hello world!", "hostname":"db001.internal.example.com", "tag":"foo.bar"}
记录创建后无法编辑标签。
执行此操作的方法是使用 rewrite tag filter
重新发出记录你可以这样做:
<match kubernetes_logs>
@type rewrite_tag_filter
<rule>
key application_name
pattern (.+)
tag
</rule>
</match>
就是说,这种方法使 fluentd 可以处理两倍多的记录。如果您只需要将记录定向到不同的端点,通常输出插件允许按键过滤记录。