2017-02-03 54 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的新手,所以這可能只是簡單的一點,我只是無法將我的頭圍繞。非常感激任何的幫助!

乾杯!

回答

2

json_lines documentation它有這樣的警告:

注意:如果您的源輸入是面向行的JSON,例如,Redis的或文件輸入,請不要使用此編解碼器。相反,使用json編解碼器。更多信息:此編解碼器期望收到換行符終止行的流(字符串)。文件輸入將生成一個沒有換行符的行字符串。因此,此編解碼器無法使用面向行的輸入。

改爲使用json codec

+1

謝謝!我對用戶指南的編解碼器頁面上的「Reads newline-delimited JSON」描述感到困惑。 –