#logstash #kibana #logstash-grok
#logstash #kibana #logstash-grok
Вопрос:
Мое сообщение выглядит следующим образом
[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}'}
Ответ №1:
Поскольку все, что следует после 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"
}
}