Logstash GROK解析可变长度的键/值对集合

时间:2017-02-16 05:50:07

标签: elasticsearch logstash logstash-grok

我有一个包含可变数量的k / v对的日志文件,例如:

2017/01/01 11:11:111,ABC=2,DEF=1
2017/01/01 11:11:112,ABC=4,DEF=1,GHI=7
2017/01/01 11:11:113,ABC=1
2017/01/01 11:11:114,DEF=3,GHI=1...etc

我想知道如何处理这个问题,以便elasticsearch可以使用这些信息。每个键代表一个连接池名称,它的值定义自上次查看此信息的请求以来池重启的频率。

我想报告一个线图,该线图可以随着时间的推移识别出泳池ABC与DEF和GHI的比较......以及潜在的JKL和MNO无限期。

我很难在文档中找到相关内容。

1 个答案:

答案 0 :(得分:0)

这样的事情可以帮到你:

filter {
 # filter for pool info
 grok { match => { "message" => "^%{YEAR}\/%{MONTHNUM}\/%{DAY}\s%{HOUR}\:%{MINUTE}\:%{SECOND},%{DATA:poolinfo}"  }
}    
 # parse kv pairs
 ruby { code => '
   fieldArray = event.get( "poolinfo" ).split(",")
   for field in fieldArray
    key = field.split("=")[0]
    value = field.split("=")[1]
    event.set(key, value.to_i)
   end
  '
 }
}