kubernetes container_name got null in fluentdconfiguration



我试图从我的应用程序容器中获取日志,并将fluentd日志代理作为sidecar容器附加到我的项目中。我想在我的Kibana面板中获得哪个日志来自哪个应用程序。这就是我在fluentd中这样配置的原因。

<source>
@id fluentd-containers.log
@type tail
path /var/log/containers/mylog*.log
pos_file /var/log/es-containers.log.pos
time_format %Y-%m-%dT%H:%M:%S.%NZ
tag kubernetes.myapp.container
read_from_head true
<parse>
@type none
</parse>
</source>
<filter kubernetes**>
@type record_transformer
enable_ruby true
<record>
service_name ${tag_parts[1]}
instance_name ${record["kubernetes"]["container_name"]}
log_type ${tag_parts[2]}
host_name ${hostname}
send_to "ES"
</record>
</filter>
<match kubernetes.**>
@type stdout
</match>

但当我部署它时,${[record[""]["container_name"]}变成了null,显示unknown placeholder ${record["kubernetes"]["container_name"]}。请帮我解决这个问题,谢谢。

收到错误信息

0转储错误事件:error_class=RuntimeError error="未能展开record["kubernetes"]["container_name"]:错误=扩展"中的未定义方法CCD_ 4救援;标签=";kubernetes.myapp.container";时间=2020-09-2311:29:05.705209241+0000记录={"消息"="gt;"{"日志":"I092311:28:59.157177 1 main.go:71]健康检查成功\n"流":"stderr"时间":"2020-09-23T11:28:59.157256887Z"}"}

`

record不包含要访问的必需字段,即record["kubernetes"]["container_name"]

你需要确保它有这些字段。

有关详细信息,请参阅Container Deployment和kubernetes_metadata_filter插件。

相关内容

  • 没有找到相关文章

最新更新