ja zalogowaniu do logstash w formacie JSON, moje dzienniki mają następujące pola, każde pole jest ciągiem znaków, a pole atts
jest stringified json (uwaga: atts
pola podrzędne są za każdym razem inny)analizowania zagnieżdżone JSON ciąg w Logstash
oto przykład:
{"name":"bob","last":"builder", "atts":"{\"a\":111, \"b\":222}"}
chciałbym przeanalizować go na coś takiego:
{
"name" => "bob",
"last" => "builder"
"atss" => {
"a" => 111,
"b" => 222}
}
oto moja konfiguracja:
input { stdin { } }
filter {
json {
source => "message"
target => "parsed"
}
}
output { stdout { codec => rubydebug }}
ok, więc teraz mam to:
{
"@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"
}
jak mogę analizować pole atts
do JSON tak otrzymuję:
{
"@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"
}
dzięki! czy widzisz moją opublikowaną odpowiedź, czy istnieje sposób, aby to zrobić, pisząc filtr wszystko w filtrze 'json' raz? coś 'filtr { json { źródło = "informacja"> docelowa = "informacja"> źródło => "[wiadomość] [atts]" docelowa => "[wiadomość] [atts]" } } ' – dina