Grok:如何匹配到第一个 space(IIS 日志)
Grok: how to match until first space (IIS Log)
我想解析 IIS 日志。
可能的输入之一如下所示
2017-10-01 00:00:01 W3SVC2 xx xx.xx.xx.xx GET
/CMSPages/PortalTemplate.aspx
searchtext=excel-template-aa-xx-xx&xx=%2xx%2xx.com%yyyyy
443 - yy.yy.yy.yy HTTP/1.1
Mozilla/5.0+(compatible;+bingbot/2.0;++http://www.bing.com/bingbot.htm)
- - www.yyyyy.com 410 0 64 0 335 32791
在 searchtext
之前我可以解析上面的输入,但我不知道如何获取搜索文本?
%{TIMESTAMP_ISO8601:log_timestamp}%{SPACE}%{WORD:machine}%{SPACE}%{WORD:ServerName}%{SPACE}%{IPV4:serverIP}%{SPACE}%{WORD:method}%{SPACE}%{URIPATH:uriStem}%{SPACE}%{WORD:searchTextWord}
有什么方法可以检查 searchtext
是否存在,然后获取以下文本(直到第一个 space)作为搜索文本。
代码
\bsearchtext=\S+
对于 Gork,将其设为可选:
(%{searchtext=\S+})?
以下比赛结果:
searchtext=excel-template-aa-xx-xx&xx=%2xx%2xx.com%yyyyy
说明
\b
将位置断言为单词边界
searchtext
字面匹配
\S+
匹配任何非空白字符一次或多次
我想解析 IIS 日志。 可能的输入之一如下所示
2017-10-01 00:00:01 W3SVC2 xx xx.xx.xx.xx GET /CMSPages/PortalTemplate.aspx searchtext=excel-template-aa-xx-xx&xx=%2xx%2xx.com%yyyyy 443 - yy.yy.yy.yy HTTP/1.1 Mozilla/5.0+(compatible;+bingbot/2.0;++http://www.bing.com/bingbot.htm) - - www.yyyyy.com 410 0 64 0 335 32791
在 searchtext
之前我可以解析上面的输入,但我不知道如何获取搜索文本?
%{TIMESTAMP_ISO8601:log_timestamp}%{SPACE}%{WORD:machine}%{SPACE}%{WORD:ServerName}%{SPACE}%{IPV4:serverIP}%{SPACE}%{WORD:method}%{SPACE}%{URIPATH:uriStem}%{SPACE}%{WORD:searchTextWord}
有什么方法可以检查 searchtext
是否存在,然后获取以下文本(直到第一个 space)作为搜索文本。
代码
\bsearchtext=\S+
对于 Gork,将其设为可选:
(%{searchtext=\S+})?
以下比赛结果:
searchtext=excel-template-aa-xx-xx&xx=%2xx%2xx.com%yyyyy
说明
\b
将位置断言为单词边界searchtext
字面匹配\S+
匹配任何非空白字符一次或多次