Logstash - выпуск разбора формата json_lines

Вероятно, проблема n00b при попытке получить кодек 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, так что это может быть что-то простое, что я просто не могу обернуться. Любая помощь будет наиболее ценится!

Ура!

1 ответ

Решение

В документации json_lines есть это предупреждение:

ПРИМЕЧАНИЕ. Не используйте этот кодек, если ваш исходный ввод ориентирован на строки в формате JSON, например, redis или ввод файлов. Скорее используйте кодек json. Дополнительная информация: Этот кодек ожидает получения потока (строки) строк с новой строкой. Ввод файла будет производить строку строки без новой строки. Поэтому этот кодек не может работать с линейно-ориентированными входами.

Вместо этого используйте кодек json.

Другие вопросы по тегам