2017-02-03 10 views
2

おそらく、ファイルからデータを読み取るためにjson_linesコーデックを取得しようとするn00bの問題です。ここでLogstash - json_lines形式の解析に関する問題

は私の設定ファイルが

input { 
    file { 
    path => ['C:/dev/logstash-5.1.2/data/sample.log'] 
    start_position => "beginning" 
    sincedb_path => 'C:/dev/logstash-5.1.2/data/.sincedb' 
    codec => "json_lines" 
    } 
} 
output { 
    file { 
    path => ['C:/dev/logstash-5.1.2/data/sample-output.log'] 
    flush_interval => 0 
    } 
} 

どのように見えるのは、ここに私の超簡単な入力ファイルが

{"id":1,"name":"A green door","price":12.50,"tags":["home","green"]} 
{"id":2,"name":"A red door","price":12.50,"tags":["home","red"]} 

私はplainにコーデックを切り替えると、ファイルを読み込みますと、出力は以下のように書き込まれますようになります期待される。しかし私が何をしても、json_linesコーデックでこのデータを読み書きすることはできません。

私はlogstashにはかなり新しいので、これは私の頭を包み込むことができない単純なものかもしれません。どんな助けでも大歓迎です!

乾杯! json_lines documentation

答えて

2

それは、この警告があります:

注:ソース入力が行指向のJSON、例えば、Redisのか、ファイル入力の場合、このコーデックを使用しないでくださいを。むしろ、jsonコーデックを使用してください。詳細情報:このコーデックは、改行で終端された行のストリーム(文字列)を受け取る予定です。ファイル入力によって、改行なしの行ストリングが生成されます。したがって、このコーデックはライン指向入力では機能しません。

代わりにjson codecを使用してください。

+1

ありがとうございました!私は、 "newline-delimited JSON"の説明をユーザガイドのコーデックページで混乱させました。 –