logstash模式以grep tomcat访问日志

时间:2017-01-30 10:27:52

标签: 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}/%{NOTSPACE:login} %{WORD:protocol}/%{NUMBER:protocolNum}\" %{NUMBER:status} %{NUMBER}

但这种模式只有在API网址不变时才有效,即

/configs/config/loggedinuser@gmail.com

因为它处于模​​式

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

在我的情况下,我想让整个API独立于模式,例如/configs/config/loggedinuser@gmail.com或

我怎么能这样做?

编辑:

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

1 个答案:

答案 0 :(得分:0)

您是否正在寻找多个级别的" /"?然后你可以做

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

还有其他什么吗?

对于logstash http://grokdebug.herokuapp.com/

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

此外,我们正在开发一个API调试工具,这可能会有所帮助,但由于我是首席执行官,因此需要完全披露。 https://www.moesif.com/features