无法获取logstash来处理JSON文件

时间:2015-04-21 11:01:29

标签: json elasticsearch logstash

我正在尝试将logstash解析的JSON文件转换为elasticsearch。我已经阅读了几个例子,但我尝试过的任何东西似乎都没有用。我想要开始的只是读取JSON文件并将每个键:值对转换为elasticsearch中的相同值。但是当我使用下面的过滤器运行/opt/logstash$ bin/logstash -f ~/logstash-test.conf时,我得到:

  

Logstash启动完成

并且在弹性搜索中没有出现任何内容。我错过了什么?

input {
  file {
    type => "json"
    path => ["/home/demo/data.json"]
    start_position => beginning
  }
}

filter {
  json {
    source => message
  }
}

output {
  elasticsearch { host => localhost }
  stdout { codec => rubydebug }
}

2 个答案:

答案 0 :(得分:0)

我不确定这是否能解决您的问题,但json过滤器的logstash文档说:

filter {
  json {
    source => "message"
  }
}

在邮件周围加上引号可能会解决您的问题。同时在引号周围加上引号。

此外,路径必须始终是绝对路径,如果正确设置,请检查此路径。

答案 1 :(得分:0)

主要问题是我的硬盘几乎已满,所以Elasticsearch报告它无法保存。不幸的是,这没有从logstash报告,所以当进程看起来工作时,没有任何东西得到保存。

Magnus Bäck关于start_position未重置文件的评论也帮助了我,所以非常感谢。