在解析文件之前配置Logstash等待

时间:2016-01-27 10:00:11

标签: logstash logstash-forwarder logstash-file filebeat

我想知道您是否可以通过以下方式配置logstash:

背景资料:

  • 我每天都会将xml文件推送到我的服务器,该文件应该被解析。

  • 为了表示之后的完整文件传输,我将一个空的.ctl(自定义文件)转移到同一个文件夹。

  • 这些文件都具有以下名称架构' feedback_ {year} {yearday} _UTC {hourminutesseconds} _51。{extention}' (例如feedback_16002_UTC235953_51.xml)。所以他们有相同的文件名,但一个是.xml,另一个是.ctl文件。

问题:

有没有办法配置logstash以等待解析xml文件,直到相应的.ctl文件存在?

编辑: 有没有办法用filebeat进行调整?

EDIT2: 在开始处理新文件之前,它将以等待x分钟的方式配置logstash也足够了,如果这更容易的话。

感谢您提前提供任何帮助

1 个答案:

答案 0 :(得分:0)

您的问题是您不希望在文件传输尚未完成之前启动解析器。那么,当你找到你的标志文件(empty.ctl)时,为什么不将数据推送到文件(file-complete.xml)?

以下是脚本的可能逻辑,并使用crontab运行:

  • 如果 empty.ctl 存在:
    • 清除 file-complete.xml
    • file.xml 的内容添加到 file-complete.xml
    • 删除 empty.ctl

这样,您需要解析file-complete.xml中的数据。我认为调试和配置更简单。

希望它有所帮助,