无法让 logstash 处理 JSON 文件
Can't get logstash to handle JSON file
我正在尝试将 logstash 解析的 JSON 文件导入到 elasticsearch 中。我读过几个例子,但我尝试过的似乎都不起作用。一开始我想做的就是读取 JSON 文件并将每个 key:value 对转换为 elasticsearch 中的相同值。但是当我 运行 /opt/logstash$ bin/logstash -f ~/logstash-test.conf
使用下面的过滤器时,我只得到:
Logstash startup completed
elasticsearch 中什么也没有出现。我错过了什么?
input {
file {
type => "json"
path => ["/home/demo/data.json"]
start_position => beginning
}
}
filter {
json {
source => message
}
}
output {
elasticsearch { host => localhost }
stdout { codec => rubydebug }
}
我不确定这是否能解决您的问题,但是 json 过滤器的 logstash 文档说:
filter {
json {
source => "message"
}
}
在消息周围加上引号也许可以解决您的问题。还要在开头加上引号。
此外,路径必须始终是绝对路径,如果设置正确,也请检查此项。
主要问题原来是我的硬盘快满了,所以 Elasticsearch 报告它无法保存它。不幸的是,这不是从 logstash 报告的,所以虽然这个过程似乎在工作,但没有任何东西被保存。
Magnus Bäck 关于 start_position
没有重置文件的评论也对我有所帮助,非常感谢。
我正在尝试将 logstash 解析的 JSON 文件导入到 elasticsearch 中。我读过几个例子,但我尝试过的似乎都不起作用。一开始我想做的就是读取 JSON 文件并将每个 key:value 对转换为 elasticsearch 中的相同值。但是当我 运行 /opt/logstash$ bin/logstash -f ~/logstash-test.conf
使用下面的过滤器时,我只得到:
Logstash startup completed
elasticsearch 中什么也没有出现。我错过了什么?
input {
file {
type => "json"
path => ["/home/demo/data.json"]
start_position => beginning
}
}
filter {
json {
source => message
}
}
output {
elasticsearch { host => localhost }
stdout { codec => rubydebug }
}
我不确定这是否能解决您的问题,但是 json 过滤器的 logstash 文档说:
filter {
json {
source => "message"
}
}
在消息周围加上引号也许可以解决您的问题。还要在开头加上引号。
此外,路径必须始终是绝对路径,如果设置正确,也请检查此项。
主要问题原来是我的硬盘快满了,所以 Elasticsearch 报告它无法保存它。不幸的是,这不是从 logstash 报告的,所以虽然这个过程似乎在工作,但没有任何东西被保存。
Magnus Bäck 关于 start_position
没有重置文件的评论也对我有所帮助,非常感谢。