首页 > 解决方案 > Grok - 用不同长度的行解析日志

问题描述

我有以下格式的日志

<timestamp1> <user1>-<jobclass1> <n> <user2>-<jobclass2> <n> <user3>-<jobclass3> <n> ...
<timestamp2> <user1>-<jobclass1> <n> <user2>-<jobclass2> <n> ...    
<timestamp1> <user1>-<jobclass1> <n> <user2>-<jobclass2> <n> <user3>-<jobclass3> <n> <user4>-<jobclass4> <n>...

并且需要为每个用户提供这样的回报

{“用户名”:[“XXXX”],“工作类别”:[“YYYY”],“数量”:[“ZZZZ”]}

我尝试使用这个

%{SYSLOGBASE} %{WORD:user}-%{WORD:jobclass} %{NUMBER:quantity}

问题是每行可能有 4、5、10、100 个用户。所以我需要实现某种递归

一些想法?

谢谢,

标签: logstashlogstash-grok

解决方案


推荐阅读