2017-05-25 132 views
0

如何在Logstash中獲取只嵌套的json?在Logstash中只獲取嵌套的JSON

{ 
 
    "metadata_1":"Meta 1", 
 
    "metadata_2":"Meta 2", 
 
    ... 
 
    "metadata_N":"Meta N", 
 
    "mydata":{ 
 
     "name":"User Name 1", 
 
     "surname":"User SurName 1" 
 
    } 
 
}

我想只有 「MYDATA」。所有的「元數據」必須從結果中完全刪除。 Logstash配置:

input { 
 
    stdin { } 
 
} 
 
filter { 
 
    json { 
 
     source => "message" 
 
    } 
 
} 
 
output { 
 
    stdout { codec => rubydebug } 
 
}

沒有工作對我來說:

source => "message" 
source => "mydata" 
source => "[message][mydata]" 

預期的結果是( 「MYDATA」 爲根):

{ 
    "name":"User Name 1", 
    "surname":"User SurName 1" 
} 

回答

1

prune過濾器應該做你w螞蟻:

prune { 
    whitelist_names => ["mydata"] 
} 
+0

謝謝。這大部分與我正在尋找的東西很接近。但是我看到結果不是根,而是作爲「mydata」對象。而「修剪」沒有「目標」字段。並且像json {source =>「mydata」}之類的「prune」之後鏈json過濾器沒有效果。 –

+0

刪除後,請參閱此答案:https://stackoverflow.com/a/44183774/2785358 – Alcanzar

+0

酷!謝謝 。 。 –