Tôi đang ghi nhật ký, theo định dạng json, nhật ký của tôi có các trường sau, mỗi trường là một chuỗi và trường atts
là một json được xâu chuỗi (chú ý: atts
trường phụ khác nhau mỗi lần)Phân tích chuỗi JSON lồng nhau trong Logstash
đây là một ví dụ:
{"name":"bob","last":"builder", "atts":"{\"a\":111, \"b\":222}"}
tôi muốn phân tích nó một cái gì đó như thế này:
{
"name" => "bob",
"last" => "builder"
"atss" => {
"a" => 111,
"b" => 222}
}
đây là cấu hình của tôi:
input { stdin { } }
filter {
json {
source => "message"
target => "parsed"
}
}
output { stdout { codec => rubydebug }}
ok, vì vậy bây giờ tôi có được điều này:
{
"@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"
}
làm thế nào tôi có thể phân tích lĩnh vực atts
để JSON vì vậy tôi nhận:
{
"@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"
}
cảm ơn! bạn có thể thấy câu trả lời được đăng của tôi, có cách nào để làm điều này bằng văn bản bộ lọc tất cả dưới bộ lọc 'json' một lần? một cái gì đó như 'lọc { json { source => "thông báo" target => "thông báo" source => "[tin nhắn] [atts]" target => "[tin nhắn] [atts]" } } ' – dina