2016-07-19 20 views
2

にJSONオブジェクトの配列を解析私はこのような何かに見えるオブジェクトの配列のログファイルがあります。Logstash

[ 
    { "cate1": "data1a", "cate2": "data2a" }, 
    { "cate1": "data1b", "cate2": "data2b" }, 
    { "cate1": "data1c", "cate2": "data2c" } 
] 

を、私はElasticsearchで別のエントリであることを、アレイ内の各オブジェクトを必要とし、各 "ケイト"はフィールドになる。

input { 
    tcp { 
    port => 5000 
    } 
} 

## Add your filters/logstash plugins configuration here 

filter { 
    json { 
    source => "message" 
    target => "event" 
    } 
    mutate { 
    gsub => ["message","\]",""] 
    gsub => ["message","\[",""] 
    } 
} 

output { 
    elasticsearch { 
    hosts => "elasticsearch:9200" 
    } 
} 

が、それは最初のエントリを除き、「_jsonparsefailure」とのそれぞれの行をタグ付けし、それは同様に角括弧を解析します。私の現在のlogstash.confファイルがあります。これを適切に行うためにLogstashを設定するにはどうすればよいでしょうか?

+0

が出力あなたはJSONコーデック –

答えて

1

jsonフィルタを使用する代わりに、json codecを入力して調べる必要があります。正確に何をしたいやっているようだ:

このコーデックは、(出力経由)(入力を経由して)デコードおよびエンコードするために フルJSONメッセージを使用することができます。送信されるデータがルートのJSON配列の場合 複数のイベントが作成されます(要素ごとに1つ)。

それはこのようになります:

input { 
    tcp { 
    port => 5000 
    codec => json{ } 
    } 
} 
+0

これは、同じ間違った結果を生成を試みたとき、あなたのconfig /出力が何であったかだけでなく、どのように見えるかを私たちに示してください。 。 –