我有一種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