grep-tomcat访问日志的logstash模式

grep-tomcat访问日志的logstash模式,logstash,logstash-grok,Logstash,Logstash Grok,我有一个tomcat访问日志,如下所示 122.164.121.231 - - [23/Nov/2015:07:19:54 -0500] "GET /configs/config/loggedinuser@gmail.com HTTP/1.1" 200 1135 我已经写了一个logstash模式,它可以很好地工作并拾取数据 %{IP:clientip} \- \- \[%{NOTSPACE:date} \-%{INT}\] \"%{WORD:action} /%{WORD}/%{WORD}/

我有一个tomcat访问日志,如下所示

122.164.121.231 - - [23/Nov/2015:07:19:54 -0500] "GET /configs/config/loggedinuser@gmail.com HTTP/1.1" 200 1135
我已经写了一个logstash模式,它可以很好地工作并拾取数据

%{IP:clientip} \- \- \[%{NOTSPACE:date} \-%{INT}\] \"%{WORD:action} /%{WORD}/%{WORD}/%{NOTSPACE:login} %{WORD:protocol}/%{NUMBER:protocolNum}\" %{NUMBER:status} %{NUMBER}
但这种模式仅在API url为常量时有效,即

/configs/config/loggedinuser@gmail.com
因为它是在模式中

/%{WORD}/%{WORD}/%{NOTSPACE:login}
在我的例子中,我希望获得与模式无关的整个API,例如/configs/config/loggedinuser@gmail.com或

我怎么能做到呢

编辑:


发现使用%{GREEDYDATA:api}我能够获得完整的api字符串

您是否在寻找多个级别的“/”?那你也可以

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

还有别的事吗

对于logstash的Grok过滤器插件,有一个非常酷的调试器


此外,我们正在开发一个API调试工具,这可能会有所帮助,但由于我是首席执行官,因此将予以充分披露

你所说的
/configs/config是什么意思/thecelloserenades@gmail.com还是
?你的意思是API url可以更改?是的,我的意思是API url可以更改并且不是常量。