key/value 对的可变长度集的 Logstash GROK 解析
Logstash GROK parsing of variable length set of key/value pairs
我有一个日志文件,其中包含可变数量的 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。
我很难在文档中找到关于此的内容。
这样的事情对你有用吗:
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
'
}
}
我有一个日志文件,其中包含可变数量的 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。
我很难在文档中找到关于此的内容。
这样的事情对你有用吗:
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
'
}
}