我的信息如下
[Metric][methodName: someName][methodParams: [ClassName{field1="val1", field2="val2", field3="val3"}, ClassName{field1="val1", field2="val2", field3="val3"}, ClassName{field1="val1", field2="val2", field3="val3"}]]
有没有办法将此日志分成更小的日志并分别过滤?
如果第一个选项不可行,如何解析以获取数组的所有元素?
(?<nameOfClass>[A-Za-z]+)\{field1='%{DATA:textfield1}',\sfield2='%{DATA:textfield2}',\sfield3='%{DATA:textfield3}'\}
答案 0 :(得分:0)
由于methodParams:
之后的所有内容都是JSON,因此您可以使用JSON过滤器进行解析。像这样:
filter{
# Parse your JSON out here using GROK to a field called myjson
grok {
match => {
"message" => "methodParams: %{GREEDYDATA:myjson}"
}
}
#
json{
source => "myjson"
}
}