如何在logstash(5.4.0)grok中捕获重复模式?
如果有人能帮我解决logstash grok的问题,我将不胜感激 给出如下所示的日志如何在logstash(5.4.0)grok中捕获重复模式?,logstash,logstash-grok,Logstash,Logstash Grok,如果有人能帮我解决logstash grok的问题,我将不胜感激 给出如下所示的日志 IN 192.168.11.2 IN 192.168.11.3 我的目标是使用grok将ip地址放入数组中。ip列表是动态的,可以扩展2个以上 e.g tmp = [ "192.168.11.2", "192.168.11.3" ] 然而,如果我使用下面这样的过滤器,它将在单个字段中结束 filter { grok { match => { "message" => "(?<t
IN 192.168.11.2 IN 192.168.11.3
我的目标是使用grok将ip地址放入数组中。ip列表是动态的,可以扩展2个以上
e.g
tmp = [
"192.168.11.2", "192.168.11.3"
]
然而,如果我使用下面这样的过滤器,它将在单个字段中结束
filter {
grok {
match => { "message" => "(?<tmp>(IN %{IPV4}(\s)?)*)" }
}
}
这可能吗?您可以使用ruby筛选器进行更高级的解析:
filter {
ruby {
code => "event.set('ips') = event.get('message').scan(/\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\/)"
}
}
Regexp与ip地址的匹配不是100%正确,但应该可以满足您的需要
filter {
ruby {
code => "event.set('ips') = event.get('message').scan(/\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\/)"
}
}