格罗克模式过滤



嗨,我是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。有没有办法做到这一点??蒂亚。有关示例日志消息,请参阅随附的图像

一些提示:

    日志
  • 照片不是向某人提供示例、复制并粘贴日志的好方法
  • Grok 调试器是构建自己的 grok 模式的好方法

这应该适用于您粘贴的示例日志行:

%{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}

然后,您需要使用日期过滤器处理lastModifedDateTime字段,以获取logstash可以保存的格式的日期戳。

最新更新