我有ELK運行日誌分析。我有一切工作。我只想做一些調整。對於所有的ES/ELK神在stackoverflow,我會很感激這方面的任何幫助。我很樂意給你買一杯咖啡! :d從URL GROK模式提取參數(子字符串)
例子:
網址:/origina-www.domain.com/this/is/a/path?page=2
首先,我想獲得的整個路徑由上述可見。
其次,我想參數之前得到公正的路徑:/origina-www.domain.com/this/is/a/path
第三,我希望得到公正的參數:第四,我想使日誌文件上的時間戳成爲kibana上的主要時間戳。目前,kibana所顯示的時間戳是ES處理的日期和時間。
這是一個示例條目的樣子:
2016-10-19 23:57:32 192.168.0.1 GET /origin-www.example.com/url 200 1144 0 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)" "-" "-"
這裏是我的配置:
if [type] == "syslog" {
grok {
match => ["message", "%{IP:client}\s+%{WORD:method}\s+%{URIPATHPARAM:request}\s+%{NUMBER:bytes}\s+%{NUMBER:duration}\s+%{USER-AGENT}\s+%{QS:referrer}\s+%{QS:agent}%{GREEDYDATA}"]
}
date {
match => [ "timestamp", "MMM dd, yyyy HH:mm:ss a" ]
locale => "en"
}
}
ES版本:5.0.1 Logstash版本:5.0 Kibana:5.0
更新:我實際上能夠解決它通過使用:
grok {
match => ["message", "%{IP:client}\s+%{WORD:method}\s+%{URIPATHPARAM:request}\s+%{NUMBER:bytes}\s+%{NUMBER:duration}\s+%{USER-AGENT}\s+%{QS:referrer}\s+%{QS:agent}%{GREEDYDATA}"]
}
grok {
match => [ "request", "%{GREEDYDATA:uri_path}\?%{GREEDYDATA:uri_query}" ]
}
kv {
source => "uri_query"
field_split => "&"
target => "query"
}
千伏本來是我的建議,你應該張貼您的解決方案作爲自身的答案,以幫助他人有類似問題在未來 –
@WillBarnwell我該怎麼做?我在這裏很新,仍然在學習SO的工作原理。 :) –
順便說一句,@WillBarnwell我確實有最後一個問題在那裏,第四個關於改變kibana的時間戳以使用每個日誌條目的實際時間和日期。也許你可以幫助我呢? :)非常感謝,因爲我正在學習ES上的繩索。 –