Parsing 解析日志存储中的自定义日志

Parsing 解析日志存储中的自定义日志,parsing,logstash,grok,Parsing,Logstash,Grok,我想请您帮助以自定义格式解析我的日志。我试图使用查找日志格式,但不幸的是,我没有成功。我的日志采用下一种格式: #AdressHost#TypeLogs|OrganizationName|user@mail.com|CallMethod|ExecutionTimeOnDB|ExecutionTimeOnAppServer|Date Time 例如: #mac.frozm.com#CallInfo|Jonsens|jack.lellow@jonsens.com|GetTotalsInfo|19|

我想请您帮助以自定义格式解析我的日志。我试图使用查找日志格式,但不幸的是,我没有成功。我的日志采用下一种格式:

#AdressHost#TypeLogs|OrganizationName|user@mail.com|CallMethod|ExecutionTimeOnDB|ExecutionTimeOnAppServer|Date Time
例如:

#mac.frozm.com#CallInfo|Jonsens|jack.lellow@jonsens.com|GetTotalsInfo|19|3|2014-05-11 07:49:10
我尝试使用以下模式:

#%{URIHOST}#CallInfo|Jonsens|%{USER:auth}@%{URIPROTO}|GetTotalsInfo|%{NUMBER:duration}|0|%{DATESTAMP} %{TIME}
但Logstash不断抛出“grokparsefailure” 您能否帮助我,或者建议使用Logstash工具解析日志的另一种方法此部分:

GetTotalsInfo|19|3|
似乎与您的模式的这一部分不匹配:

GetTotalsInfo|%{NUMBER:duration}|0|
当您在模式中指定0时,在您的示例中有一个3

以下是构建grok模式时的一般建议。一次制作一小块图案,在构建更大的图案之前先检查它们是否有效。您可以使用它来调试给您带来麻烦的模式,获取每个单独的部分并测试它们

例如,从这样的模式开始,检查它是否有效:

"^#%{URIHOST}"
(^是一个正则表达式锚点,保证没有前面的字符) 从那里开始建造

我希望这有帮助