我正在尝试将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 }
}
答案 0 :(得分:0)
我不确定这是否能解决您的问题,但json过滤器的logstash文档说:
filter {
json {
source => "message"
}
}
在邮件周围加上引号可能会解决您的问题。同时在引号周围加上引号。
此外,路径必须始终是绝对路径,如果正确设置,请检查此路径。
答案 1 :(得分:0)
主要问题是我的硬盘几乎已满,所以Elasticsearch报告它无法保存。不幸的是,这没有从logstash报告,所以当进程看起来工作时,没有任何东西得到保存。
Magnus Bäck关于start_position
未重置文件的评论也帮助了我,所以非常感谢。