2

试图让 json_lines 编解码器从文件中读取数据可能是一个 n00b 问题。

这是我的配置文件的样子

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很陌生,所以这可能只是我无法理解的简单事情。非常感激任何的帮助!

干杯!

4

1 回答 1

4

json_lines 文档中,它有以下警告:

注意:如果您的源输入是面向行的 JSON,例如 redis 或文件输入,请不要使用此编解码器。而是使用 json 编解码器。更多信息:此编解码器期望接收换行终止行的流(字符串)。文件输入将产生一个没有换行符的行字符串。因此,此编解码器无法与面向行的输入一起使用。

请改用json 编解码器

于 2017-02-03T20:43:28.183 回答