解析Logstash中的自定义日志

时间:2014-07-02 13:38:20

标签: parsing logstash grok

我想请求您帮助以自定义格式解析我的日志。我尝试使用http://grokdebug.herokuapp.com/来发现我的日志格式,但不幸的是我没有成功。我的日志有下一种格式:

#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工具中的日志

1 个答案:

答案 0 :(得分:1)

这部分:

GetTotalsInfo|19|3|

似乎与您的模式的这一部分不匹配:

GetTotalsInfo|%{NUMBER:duration}|0|

在模式中指定0,在示例中您有3。

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

例如,刚开始使用这样的模式并检查它是否有效:

"^#%{URIHOST}"

(^是一个正则表达式锚点,保证没有前面的字符) 从那里建立。

我希望这有帮助!