2016-06-07 59 views
0

我使用ELK为了摄取,存储和可视化数据,没有花哨的东西..如何使用logstash管道自动化数据提取?

一切工作正常,但每次我有新的数据要摄取我必须手动执行命令/ opt/logstash/bin/logstash -f mypipeline.conf

我想知道如何自动化最后一步,以便在每次新数据到达管道配置文件中定义的inut文件夹时接收弹出式菜单中的数据?

我使用的输入插件:

file { 
path => "/path/to/myfiles*.csv" 
start_position => beginning 
sincedb_path => "/dev/null" 
} 

我猜我失踪,将允许以检查是否有新的文件存在与否的一个重要选择..

“discover_interval”或“stat_interval”?或sincedb路径?

THX

回答

0

的设置,您要找的是discover_intervalReference Here

discover_interval控制的时间之间的秒数Logstash重新评估path检查新的文件,它是默认设置为15秒。如果Logstash正在运行,那么将一个文件放入正确的目录并等待20秒钟,应该显示该文件中的数据具有弹性。

如果看起来不是这种情况,请尝试手动将值设置为discover_interval => 10之类的值。将此设置得太低可能会为您的流程产生大量不必要的开销。

+0

我想我在这里错过了一些东西。如果logstash作为服务启动,它将始终处于活动状态,但是如何告诉它哪个pipeline.conf文件要使用? – qbadx

+0

创建一个服务,分离进程或作为守护进程运行,我实际上在docker中运行我的ELK栈,但这可能超出了你的范围。如果你有它作为服务运行,只需给你的pipeline.conf的完整路径 –

0

发现它..只需将pipeline.conf文件放在/etc/logstash/conf.d目录下,启动该目录下的所有文件就会被加载并执行。

+0

这不是真正的答案你问的问题 –