繁体   English   中英

具有多个匹配项的Logstash Grok模式

[英]Logstash Grok pattern with multiple matches

我试图写一个grok表达式,它将导致多个匹配项。 我正在解析具有5个相同模式重复的行。

我已经能够使用正则表达式创建一个简单的模式,该模式将返回多个匹配项,但是Grok似乎无法正常工作。 我不太了解Ruby,所以还没有真正检查过代码。

输入示例:

222444555

图案:

(?<number>\d{3})*

我本来期望这样的输出:

"number" : [
    [
        "222", "444", "555"
    ]
]

或类似的东西。 在格罗克这可能吗? 我知道我可以将模式重复三次,但是在某些行上重复的次数是未知的。

有指针吗?

我采取了不同的方法。 我用grok提取了重复的部分行。 然后,我使用ruby {}过滤器使用扫描功能将线切割成多个部分:

ruby {
    code => "event.put('segment', event.get('segments').scan(/.{3}/))
}

效果很好,因为它在segment属性中创建了一个数组,然后在该字段上进行split {} ,我得到了想要的多个事件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM