2016-06-07 53 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

這不是真正的答案你問的問題 –