logstash pattern to grep tomcat access logs



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

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} /%{GREEDYDATA:api} %{WORD:protocol}/%{NUMBER:protocolNum}" %{NUMBER:status} %{NUMBER}

还有别的吗?

有一个

非常酷的调试器,用于 Grok 过滤器插件,用于日志存储 http://grokdebug.herokuapp.com/

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

最新更新