我想解析IIS日志。 其中一个可能的输入如下所示
2017-10-01 00:00:01 W3SVC2 xx xx.xx.xx.xx GET /CMSPages/PortalTemplate.aspx 的 SEARCHTEXT = Excel的模板-AA-XX-XX&安培; XX =%的2xx%2xx.com%YYYYY 443 - yy.yy.yy.yy HTTP / 1.1 的Mozilla / 5.0 +(兼容; + 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
是否存在,然后获取以下文本(直到第一个空格)作为搜索文本。
答案 0 :(得分:1)
\bsearchtext=\S+
对于Gork,请选择它:
(%{searchtext=\S+})?
以下匹配结果:
SEARCHTEXT = Excel的模板-AA-XX-XX&安培; XX =%的2xx%2xx.com%YYYYY
\b
断言位置为单词边界searchtext
按字面意思匹配\S+
匹配任何非空白字符一次或多次