Logstash 是 Elastic Stack 中功能最強大的 ETL 工具,相較於 beats 家族,雖然它略顯臃腫,可是強在功能豐富、處理能力強大。你們在使用的過程當中確定也體驗過其啓動時的慢吞吞,那麼有什麼辦法能夠減小等待 Logstash 的啓動時間,提升編寫其處理配置文件的效率呢?本文給你們推薦一個小技巧,幫助你們解決以下兩個問題,讓你們更好地與這個笨重的你們夥相處。json
Logstash 啓動的時候能夠加上 -r
的參數來作到配置文件熱加載,效果是:ruby
它的含義以下:工具
當你寫好配置文件,好比 test.conf ,啓動命令以下:測試
bin/logstash -f test.conf -r
啓動完畢,修改 test.conf 的內容並保存後,過 1 秒鐘,你會發現 Logstash 端有相似以下日誌輸出(注意紅色框標記的部分),此時說明 reload 的成功。spa
若是你修改的配置文件有錯誤,會看到報錯的日誌,你能夠根據錯誤提示修改。插件
至此,第一個問題解決!debug
編寫配置文件的另外一個痛點是須要針對不一樣格式的輸入內容進行詳細的測試,以防解析報錯的狀況出現。此時你們經常使用標準輸入來解決這個問題(stdin input),可是標準輸入對於文字編輯支持不太友好,並且配置文件熱更新的功能也不支持標準輸入。日誌
在這裏向你們推薦使用 http input 插件,配置以下:code
input{ http{ port => 7474 codec => "json" } }
而後你們再用本身喜歡的 http 請求工具,好比 POSTMan、Insomnia 等向 http://loclahost:7474
發送待測試內容便可,以下是 Insomnia 的截圖。rem
至此,第二個問題也解決了。
相信看到這裏,你們必定是躍躍欲試了,趕忙打開電腦,找到 Logstash,而後編輯 test.conf,輸入以下內容:
input{ http{ port => 7474 codec => "json" } } filter{ } output{ stdout{ codec => rubydebug{ metadata => true } } }
而後執行啓動命令:
bin/logstash -f test.conf -r
打開 Insomnia ,輸入要測試的內容,點擊發送,開始舒爽流暢的配置文件編寫之旅吧!