2017-01-30 43 views
0

我有一個Tomcat訪問日誌如下logstash模式到grep tomcat的訪問日誌

122.164.121.231 - - [23/Nov/2015:07:19:54 -0500] "GET /configs/config/[email protected] HTTP/1.1" 200 1135 

而且我寫的正常工作,並挑選數據

%{IP:clientip} \- \- \[%{NOTSPACE:date} \-%{INT}\] \"%{WORD:action} /%{WORD}/%{WORD}/%{NOTSPACE:login} %{WORD:protocol}/%{NUMBER:protocolNum}\" %{NUMBER:status} %{NUMBER} 

但這種模式作品logstash模式只有當API網址是恆定的,即

/configs/config/[email protected] 

因爲它在模式

/%{WORD}/%{WORD}/%{NOTSPACE:login} 

在我的情況下,我想讓整個API獨立於模式,例如/configs/config/[email protected]

我將如何做到這一點?

編輯:

發現,使用%{GREEDYDATA:API}我能夠得到完整的API字符串

+0

你是什麼意思'/configs/config/[email protected]或'?你的意思是API的網址可能會改變? – Kulasangar

+0

是的,我的意思是這個API的URL可以改變,而且不是常量。 – praveen

回答

0

你正在尋找的 「/」 多層次?然後是啊,你可以做

%{IP:clientip} \- \- \[%{NOTSPACE:date} \-%{INT}\] \"%{WORD:action} /%{GREEDYDATA:api} %{WORD:protocol}/%{NUMBER:protocolNum}\" %{NUMBER:status} %{NUMBER}

是否有其他什麼東西?

沒有爲神交過濾器插件,一個很酷的調試器logstash http://grokdebug.herokuapp.com/

此外,我們正在努力的API調試工具可能是有用的,但完全公開,因爲我是CEO。 https://www.moesif.com/features