如何用Elastic來(lái)診斷下redis slowlog,相信很多沒(méi)有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問(wèn)題出現(xiàn)的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問(wèn)題。
創(chuàng)新互聯(lián)公司專(zhuān)注于咸寧網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供咸寧營(yíng)銷(xiāo)型網(wǎng)站建設(shè),咸寧網(wǎng)站制作、咸寧網(wǎng)頁(yè)設(shè)計(jì)、咸寧網(wǎng)站官網(wǎng)定制、成都微信小程序服務(wù),打造咸寧網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供咸寧網(wǎng)站排名全網(wǎng)營(yíng)銷(xiāo)落地服務(wù)。
如何通過(guò)自定義beats實(shí)現(xiàn)對(duì)redis慢查詢(xún)?nèi)罩镜谋O(jiān)控,且最終通過(guò)Kibana對(duì)redis慢日志進(jìn)行可視化展示。
這里講解了 redis 慢查詢(xún)?nèi)罩驹O(shè)置和查詢(xún)的日志,通過(guò) config set 這兩行命令可以將最近100條執(zhí)行時(shí)間大于20毫秒的命令記錄下來(lái)。通過(guò) slowlog get 命令可以取出所有的慢查詢(xún)命令。
Beats是一個(gè)輕量級(jí)的數(shù)據(jù)收集器,使用 golang 語(yǔ)言開(kāi)發(fā),官方提供了 FileBeat 用于收集日志文件,MetricBeat收集nginx、apache等應(yīng)用的指標(biāo)信息,PacketBeat收集網(wǎng)絡(luò)包數(shù)據(jù)等等。除此之外,使用者可以基于Beats快速開(kāi)發(fā)自定義的beat 來(lái)滿足個(gè)性化需求,比如這里的 rsbeat - redis slowlog beat。
rsbeat 是用于收集 redis slowlog 信息的一個(gè)beat,已經(jīng)在 github 上開(kāi)源,大家可以去這個(gè)地址查看。https://github.com/yourdream/rsbeat
使用 rsbeat 的時(shí)候需要先修改配置文件 rsbeat.yml ,這里主要是定制 redis 的地址和慢查詢(xún)的時(shí)間、es地址等。
上面這張圖講解了 rsbeat 的流程圖。首先 rsbeat 會(huì)定期從 redis 中獲取慢查詢(xún)命令,然后將慢查詢(xún)命令存儲(chǔ)到 elasticsearch 中,最終通過(guò) kibana 來(lái)進(jìn)行數(shù)據(jù)查詢(xún)和可視化展示。
這里展示了如何將 redis 的慢查詢(xún)命令轉(zhuǎn)化為 es 的數(shù)據(jù)模型。
通過(guò) Kibana 可以對(duì)存入的 redis 慢查詢(xún)命令進(jìn)行查詢(xún)和可視化展示,這里展示了柱狀圖、餅狀圖等示例。通過(guò)這些展示,可以快速分析慢查詢(xún)命令的分布情況,從而定位業(yè)務(wù)代碼的問(wèn)題,然后消滅慢查詢(xún)命令。
上面簡(jiǎn)單介紹了 rsbeat 的源碼,可以看到代碼本身是非常簡(jiǎn)單的,主要就是一個(gè)go文件。
另外 rsbeat 還提供了 docker 的執(zhí)行方式,方便大家使用。
最后總結(jié)了 rsbeat 開(kāi)源中的一些事項(xiàng),最后總結(jié)了 elastic stack 在數(shù)據(jù)分析領(lǐng)域的應(yīng)用前景。
看完上述內(nèi)容,你們掌握如何用Elastic來(lái)診斷下redis slowlog的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!