【发布时间】:2019-09-17 07:50:36
【问题描述】:
目前使用kubernetes_metadata丰富事件:
<filter kubernetes.var.log.containers.**>
@type kubernetes_metadata
</filter>
当前的tag 是kubernetes.namespace,我希望它是kubernetes.namespace.pod_name
我添加了rewrite_tag_filter,但它不起作用,更糟糕的是,它会丢弃所有事件:
<match kubernetes.**>
@type rewrite_tag_filter
<rule>
key $['kubernetes']['pod_name']
pattern ^(.+)$
tag ${tag}.$1
</rule>
</match>
我添加了@type stdout,而活动确实有['kubernetes']['pod_name'],所以我想这不是问题
更新: 我也尝试了建议的答案并补充说:
<filter kubernetes.**>
@type record_transformer
enable_ruby
<record>
# For future retagging.
kubernetes_tag ${"kubernetes.%s.%s" % [record["kubernetes"]["namespace_name"], record["kubernetes"]["container_name"]]}
</record>
</filter>
此时,我已将事件打印到stdout,它确实包含一个名为kubernetes_tag 的属性,其中namespace_name 和container_name 链接在一起。
现在我添加了rewrite_tag_filter 块:
<match kubernetes.**>
@type rewrite_tag_filter
<rule>
key kubernetes_tag
pattern ^(.+)$
tag $1
</rule>
</match>
从此时起,没有任何事件通过,也没有任何内容被打印出来,好像所有事件都被丢弃了。和我一开始的经历一样。
【问题讨论】:
标签: kubernetes fluentd