我有一种ELK堆栈,使用fluentd而不是logstash,作为Kubernetes集群上的DaemonSet运行,并将所有容器中的所有日志以logstash格式发送到Elasticsearch服务器。Kibana - 如何从现有的Kubernetes日志中提取字段
走出Kubernetes集群上运行的许多容器的一些是nginx的容器中以下列格式的输出日志:在Kibana
121.29.251.188 - [16/Feb/2017:09:31:35 +0000] host="subdomain.site.com" req="GET /data/schedule/update?date=2017-03-01&type=monthly&blocked=0 HTTP/1.1" status=200 body_bytes=4433 referer="https://subdomain.site.com/schedule/2589959/edit?location=23092&return=monthly" user_agent="Mozilla/5.0 (Windows NT 6.1; WOW64; rv:51.0) Gecko/20100101 Firefox/51.0" time=0.130 hostname=webapp-3188232752-ly36o
字段可见是按照此屏幕截图:
是否有可能从这种类型的日志中提取字段后,它被编入索引?
的fluentd集电极被配置为与下面的源,它处理所有的容器,所以强制执行该阶段的格式是不可能的,因为从不同的容器中的非常不同的输出:
<source>
type tail
path /var/log/containers/*.log
pos_file /var/log/es-containers.log.pos
time_format %Y-%m-%dT%H:%M:%S.%NZ
tag kubernetes.*
format json
read_from_head true
</source>
在理想情况下,我想用“主”,“请求”,“状态”等元数据字段在上面的屏幕截图中丰富可见的字段。
感谢您的回答,@ Darth_vader。我知道这可以用logstash来完成,但我使用fluentd进行日志收集,请参阅我的问题中的配置。你知道这可以通过开箱即可完成吗? – bedeabza