问题描述
我有一个由 Rancher 检测的 minikube kubernetes 集群。有可能通过 fluentd 从容器中收集日志。我想在 Grafana loki 中查看我的日志,因此我创建了另一个 fluentd 实例,它将日志(来自 Rancher 的 fluentd)发送到 loki。 收到的消息中有一个 kubernetes 字段,我会将其提取到字段中,例如:在检测到的字段下,最好有 kubernetes.container_name、kubernetes.container_image ... 等等。
这是我的流畅配置
<source>
@type forward
tag kubernetes.*
</source>
<match kubernetes.**>
@type copy
<store>
@type loki
url "http://loki:3100"
extra_labels {"env":"dev"}
flush_interval 10s
flush_at_shutdown true
buffer_chunk_limit 1m
</store>
<store>
@type stdout
</store>
</match>
<label @FLUENT_LOG>
<match fluent.**>
@type null
</match>
</label>
这是我试图从 kubernetes 字段中提取这些值的内容:
<filter kubernetes**>
@type record_transformer
enable_ruby
remove_keys kubernetes,docker
<record>
app ${ record.dig("kubernetes","labels","app") }
job ${ record.dig("kubernetes","app") }
namespace ${ record.dig("kubernetes","namespace_name") }
pod ${ record.dig("kubernetes","pod_name") }
container ${ record.dig("kubernetes","container_name") }
</record>
</filter>
但不幸的是,这些字段将始终为空,并且不会在 Loki 中显示。有什么想法吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)