您好我是logstash和grok过滤的新手,我有一个这样的示例日志:
1/11/2017 12:00:17 AM: 抛出的错误是: 没有错误
发送的请求是: webMethod:GetOSSUpdatedOrderHeader | appCode:OSS | regionCode:EMEA | orderKeyList:| lastModifedDateTime:1/10/2017 11:59:13 PM |
我想过滤掉行分隔符,这是一行**(最后一行)
此外,当我希望能够捕获整个行,包括":"在一个领域。例如,在上面的日志中,必须在我的grok模式中的一个字段中捕获webMethod:GetOSSUpdatedOrderHeader
。有没有办法实现这个? TIA。请参阅附件中的sample log message
答案 0 :(得分:1)
一些提示:
这适用于您粘贴的示例日志行:
%{NOTSPACE:webMethod}\|%{NOTSPACE:appCode}\|%{NOTSPACE:regionCode}\|%{NOTSPACE:orderKeyList}\|%{NOTSPACE:lastModifedDateTime}
但是,你所要求的,可能并不是你想要的,因为你只想要结果中的字段内容,而不是字段的名称。这应该会给你更明智的结果:
webMethod:%{NOTSPACE:webMethod}\|appCode:%{NOTSPACE:appCode}\|regionCode:%{NOTSPACE:regionCode}\|orderKeyList:(?:%{NOTSPACE:orderKeyList}|)\|lastModifedDateTime:%{NOTSPACE:lastModifedDateTime}
然后,您需要使用date过滤器处理lastModifedDateTime字段,以便以logstash可保存的格式获取日期戳。