不可不掌握的 Logstash 使用技巧

Logstash 是 Elastic Stack 中功能最強大的 ETL 工具,相較于 beats 家族,雖然它略顯臃腫,但是強在功能豐富、處理能力強大。大家在使用的過程中肯定也體驗過其啟動時的慢吞吞,那么有什么辦法可以減少等待 Logstash 的啟動時間,提高編寫其處理配置文件的效率呢?本文給大家推薦一個小技巧,幫助大家解決如下兩個問題,讓大家更好地與這個笨重的大家伙相處。

  1. 減少 Logstash 重啟的次數(shù),也就節(jié)省寶貴的時間
  2. 方便快捷地向 Logstash 輸入需要處理的內(nèi)容

1. 打開 reload 配置開關(guān)

Logstash 啟動的時候可以加上 -r 的參數(shù)來做到配置文件熱加載,效果是:

  • 當(dāng)你修改了配置文件后,無需重啟 Logstash 即可讓新配置文件生效。

它的含義如下:

image

當(dāng)你寫好配置文件,比如 test.conf ,啟動命令如下:

bin/logstash -f test.conf -r

啟動完畢,修改 test.conf 的內(nèi)容并保存后,過 1 秒鐘,你會發(fā)現(xiàn) Logstash 端有類似如下日志輸出(注意紅色框標(biāo)記的部分),此時說明 reload 的成功。

image

如果你修改的配置文件有錯誤,會看到報錯的日志,你可以根據(jù)錯誤提示修改。

image

至此,第一個問題解決!

2. 使用 HTTP INPUT

編寫配置文件的另一個痛點是需要針對不同格式的輸入內(nèi)容進行詳細的測試,以防解析報錯的情況出現(xiàn)。此時大家常用標(biāo)準輸入來解決這個問題(stdin input),但是標(biāo)準輸入對于文字編輯支持不太友好,而且配置文件熱更新的功能也不支持標(biāo)準輸入。

在這里向大家推薦使用 http input 插件,配置如下:

input{
    http{
        port => 7474
        codec => "json"
    }
}

然后大家再用自己喜歡的 http 請求工具,比如 POSTMan、Insomnia 等向 http://loclahost:7474發(fā)送待測試內(nèi)容即可,如下是 Insomnia 的截圖。

image

至此,第二個問題也解決了。

3. 總結(jié)

相信看到這里,大家一定是躍躍欲試了,趕緊打開電腦,找到 Logstash,然后編輯 test.conf,輸入如下內(nèi)容:

input{
    http{
        port => 7474
        codec => "json"
    }
}

filter{

}

output{
        stdout{
        codec => rubydebug{
            metadata => true
        }
    }
}

然后執(zhí)行啟動命令:

bin/logstash -f test.conf -r

打開 Insomnia ,輸入要測試的內(nèi)容,點擊發(fā)送,開始舒爽流暢的配置文件編寫之旅吧!

image
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容