में नेस्टेड JSON स्ट्रिंग पार्स मैं logstash को प्रवेश करने हूँ json प्रारूप में,, अपने लॉग निम्नलिखित क्षेत्रों है, प्रत्येक क्षेत्र एक स्ट्रिंग है और atts
क्षेत्र एक stringified json है (ध्यान दें: atts
उप क्षेत्रों हर बार अलग हैंLogstash
{"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"
}
धन्यवाद है! क्या आप मेरा पोस्ट उत्तर देख सकते हैं, क्या यह सब एक बार 'json' फ़िल्टर के तहत फ़िल्टर को लिखने का कोई तरीका है? 'फिल्टर की तरह कुछ { json { स्रोत =>" संदेश " लक्ष्य =>" संदेश " स्रोत =>" [संदेश] [Atts] " लक्ष्य =>" [संदेश] [Atts] " } } ' – dina