文件输入未获取复制或移动的文件Logstash

时间:2015-08-12 10:43:09

标签: logstash logstash-configuration

我成功使用logstash来解析json格式化事件并将它们发送到elasticsearch。每个事件都在seprate文件中创建。每个文件一个事件,扩展名为.json。

当我使用“vi mydoc.json”创建文件时,Logstash正在正确地拾取文件,粘贴内容并保存。但是,如果我cp或mv文件,它就不会启动。

目标是自动将文件复制到目录,然后通过logstash解析它们。 每个文件都有不同的名称和大小。我试着查看logstash代码,找出它使用的属性但无法找到相关代码。我也尝试删除.sincedb文件,但也没有帮助。

输入配置如下:

input {
file {
path => "/opt/rp/*.json"
type => "tp"
start_position => "beginning"
stat_interval => 1

  }

}

如何让logstash获取复制的文件?它使用什么文件stat属性来检查文件是否是新文件?

由于

1 个答案:

答案 0 :(得分:0)

您可以从Logstash切换到Apache Flume:Flume有Spooling-Directory-Source(Logstash的输入{}}和Elasticsearch-Sink(Logstash的输出{})。 Spooling-Directory-Source正是您所寻找的,afaics。

如果您不想重写Logstash-filter {},可以使用Flume收集文件并将它们存入一个文件(请参阅File-Roll-Sink),然后让Logstash使用它来记录事件。

请注意,Flume的假脱机目录中的文件操作必须是原子的。请勿更改已处理的文件或附加到该文件。