不可不掌握的 Logstash 使用技巧

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

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

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

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

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

它的含義如下:

image

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

bin/logstash -f test.conf -r

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

image

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

image

至此,第一個(gè)問題解決!

2. 使用 HTTP INPUT

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

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

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

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

image

至此,第二個(gè)問題也解決了。

3. 總結(jié)

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

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

filter{

}

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

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

bin/logstash -f test.conf -r

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

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

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

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