kubernetes container_name 在 fluentdconfiguration 中得到 null
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"]}
显示为空 unknown placeholder ${record["kubernetes"]["container_name"]}
。请帮我解决一下,谢谢。
收到错误消息
0 dump an error event: error_class=RuntimeError error="failed to
expand record[\"kubernetes\"][\"container_name\"]
: error =
undefined method []' for nil:NilClass" location="/fluentd/vendor/bundle/ruby/2.6.0/gems/fluentd-1.11.2/lib/fluent/plugin/filter_record_transformer.rb:310:in
rescue in expand'" tag="kubernetes.myapp.container" time=2020-09-23
11:29:05.705209241 +0000 record={"message"=>"{"log":"I0923
11:28:59.157177 1 main.go:71] Health check
succeeded\n","stream":"stderr","time":"2020-09-23T11:28:59.157256887Z"}"}
`
record
不包含您要访问的必填字段,即 record["kubernetes"]["container_name"]
。
您需要确保它具有这些字段。
请通过 Container Deployment and kubernetes_metadata_filter 插件了解详细信息。
我尝试从我的应用程序容器中获取日志并将 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"]}
显示为空 unknown placeholder ${record["kubernetes"]["container_name"]}
。请帮我解决一下,谢谢。
收到错误消息
0 dump an error event: error_class=RuntimeError error="failed to expand
record[\"kubernetes\"][\"container_name\"]
: error = undefined method[]' for nil:NilClass" location="/fluentd/vendor/bundle/ruby/2.6.0/gems/fluentd-1.11.2/lib/fluent/plugin/filter_record_transformer.rb:310:in
rescue in expand'" tag="kubernetes.myapp.container" time=2020-09-23 11:29:05.705209241 +0000 record={"message"=>"{"log":"I0923 11:28:59.157177 1 main.go:71] Health check succeeded\n","stream":"stderr","time":"2020-09-23T11:28:59.157256887Z"}"}
`
record
不包含您要访问的必填字段,即 record["kubernetes"]["container_name"]
。
您需要确保它具有这些字段。
请通过 Container Deployment and kubernetes_metadata_filter 插件了解详细信息。