фильтровать один раз? что-то вроде
истрируюсь в logstash, в формате json, мои журналы имеют следующие поля, каждое поле является строкой иatts
поле является строковым json (примечание:atts
подполя каждый раз разные)
вот пример:
{"name":"bob","last":"builder", "atts":"{\"a\":111, \"b\":222}"}
Я хотел бы разобрать что-то вроде этого:
{
"name" => "bob",
"last" => "builder"
"atss" => {
"a" => 111,
"b" => 222}
}
вот моя конфигурация:
input { stdin { } }
filter {
json {
source => "message"
target => "parsed"
}
}
output { stdout { codec => rubydebug }}
хорошо, теперь я получаю это:
{
"@timestamp" => 2017-04-05T12:19:04.090Z,
"parsed" => {
"atss" => "{\"a\":111, \"b\":222}",
"name" => "bob",
"last" => "the builder"
},
"@version" => "1",
"host" => "0.0.0.0"
}
как я могу разобратьatts
поле в JSON, поэтому я получаю:
{
"@timestamp" => 2017-04-05T12:19:04.090Z,
"parsed" => {
"atss" =>
{"a" => 111,
"b" => 222},
"name" => "bob",
"last" => "the builder"
},
"@version" => "1",
"host" => "0.0.0.0"
}