监控最佳实践--redis及业务接口
1. 背景
1.1 問題
2020-12-04,客戶側(cè)redis集群版監(jiān)控DB0 CPU突增至100%,導(dǎo)致數(shù)據(jù)庫無法正常服務(wù),經(jīng)排查客戶側(cè)業(yè)務(wù)上存在2M左右的大key導(dǎo)致DB0阻塞。并且客戶側(cè)使用的集群連接方式為默認(rèn)proxy模式,如下圖所示,DB0阻塞導(dǎo)致其他節(jié)點也無法正常服務(wù);處理辦法:客戶側(cè)配合切斷大key業(yè)務(wù)的高頻繁次調(diào)用,請求恢復(fù)。
圖1:proxy模式
1.2 思考
此次問題導(dǎo)致客戶側(cè)課程報名入口嚴(yán)重受損,進(jìn)而引發(fā)深度思考。在使用redis等產(chǎn)品方面的監(jiān)控報警手段不夠完善,不夠仔細(xì),并且后續(xù)再查看業(yè)務(wù)日志發(fā)現(xiàn)錯誤率已經(jīng)逐漸增多,直至redis層面表現(xiàn)出來才get到問題所在。針對此次redis的大key問題,給客戶提供了關(guān)于大key以及熱點key的分析辦法,并建議完善客戶側(cè)監(jiān)控報警的可讀性以及業(yè)務(wù)日志接口的錯誤告警。
2. 數(shù)據(jù)庫監(jiān)控分析
2.1 redis監(jiān)控指標(biāo)分享
redis集群版云監(jiān)控指標(biāo)如下表所示。
| 平均響應(yīng)時間 | us | ShardingAvgRt | userId、instanceId、nodeId | Average、Maximum |
| 連接數(shù)使用率 | % | ShardingConnectionUsage | userId、instanceId、nodeId | Average、Maximum |
| CPU使用率 | % | ShardingCpuUsage | userId、instanceId、nodeId | Average、Maximum |
| 命中率 | % | ShardingHitRate | userId、instanceId、nodeId | Average、Maximum |
| 入方向流量 | KByte/s | ShardingIntranetIn | userId、instanceId、nodeId | Average、Maximum |
| 流入帶寬使用率 | % | ShardingIntranetInRatio | userId、instanceId、nodeId | Average、Maximum |
| 出方向流量 | KByte/s | ShardingIntranetOut | userId、instanceId、nodeId | Average、Maximum |
| 流出帶寬使用率 | % | ShardingIntranetOutRatio | userId、instanceId、nodeId | Average、Maximum |
| 緩存內(nèi)Key數(shù)量 | 個 | ShardingKeys | userId、instanceId、nodeId | Average、Maximum |
| 最大響應(yīng)時間 | us | ShardingMaxRt | userId、instanceId、nodeId | Average、Maximum |
| 內(nèi)存使用率 | % | ShardingMemoryUsage | userId、instanceId、nodeId | Average、Maximum |
| QPS使用率 | % | ShardingQPSUsage | userId、instanceId、nodeId | Average、Maximum |
| 已用連接數(shù) | 個 | ShardingUsedConnection | userId、instanceId、nodeId | Average、Maximum |
| 內(nèi)存使用量 | Bytes | ShardingUsedMemory | userId、instanceId、nodeId | Average、Maximum、Sum |
| 平均每秒訪問次數(shù) | 個 | ShardingUsedQPS | userId、instanceId、nodeId | Average、Maximum |
2.2 redis大key分析
1.在控制臺選擇對應(yīng)的實例,進(jìn)行大key及Hot key分析處理。
圖2:實例分析
2.利用API接口進(jìn)行分析大 key以及Hot key。
緩存分析與熱點Key查詢可參考文后資料了解詳情[1]。
2.3 數(shù)據(jù)庫同環(huán)比監(jiān)控
創(chuàng)建分組報警規(guī)則目前已更新至分組界面。
2.3.1 創(chuàng)建應(yīng)用分組
圖3:創(chuàng)建應(yīng)用分組
2.3.2 創(chuàng)建報警規(guī)則
圖4:創(chuàng)建報警規(guī)則
圖5:設(shè)置報警規(guī)則
3. 日志監(jiān)控
利用sls接入客戶端日志,可以通過設(shè)定規(guī)則建立儀表盤以及實現(xiàn)報警。此方案日志接入采取logtail方式內(nèi)網(wǎng)傳輸。
3.1 安裝logtail
安裝logtail方法可參考文后資料[2]。
3.2 創(chuàng)建project和logstore
登錄日志服務(wù)控制臺,依次創(chuàng)建對應(yīng)地域的project及l(fā)ogstore。
圖6:project-logstore創(chuàng)建
3.3 數(shù)據(jù)接入向?qū)?/font>
此次客戶側(cè)日志格式分別為json、log4j。
3.3.1 json
選擇json文本日志>選擇現(xiàn)有機(jī)器組>對應(yīng)logtail配置
圖7:logtail配置
1.設(shè)置索引
對于多重json日志,需要將字段類型更改為json。
圖8:設(shè)置索引
2.查詢分析
圖9:查詢分析
3.3.2 log4j
選擇正則文本日志>選擇現(xiàn)有機(jī)器組>對應(yīng)logtail配置
1.正則識別首行
圖10:設(shè)置自動生成
2.提取字段
圖11: 日志提取字段
3.設(shè)置索引
注意:只對新寫入數(shù)據(jù)生效。
圖12:設(shè)置索引
4.查詢分析
圖13:查詢分析
3.4 日志報警
3.4.1 儀表盤
圖14:儀表盤信息展示
3.4.2 報警
在儀表右上側(cè)導(dǎo)航欄中單擊告警,在下拉菜單中選擇創(chuàng)建。
圖15:創(chuàng)建告警
圖16:告警內(nèi)容設(shè)置
關(guān)于釘釘機(jī)器人的告警內(nèi)容可參考文后模板[3]進(jìn)行設(shè)置。
參考文獻(xiàn)
[1] 緩存分析與熱點Key查詢:https://help.aliyun.com/document_detail/184226.html?spm=a2c4g.11186623.6.975.255f3635R5By1i
[2] 安裝Logtail(Linux系統(tǒng)):https://help.aliyun.com/document_detail/28982.html?spm=a2c4g.11186623.2.5.31a09d7cBfTtvl
[3] 釘釘機(jī)器人告警模板:https://help.aliyun.com/document_detail/91785.html?spm=5176.2020520112.0.dexternal.62b334c0S2Jxx2
我們是阿里云智能全球技術(shù)服務(wù)-SRE團(tuán)隊,我們致力成為一個以技術(shù)為基礎(chǔ)、面向服務(wù)、保障業(yè)務(wù)系統(tǒng)高可用的工程師團(tuán)隊;提供專業(yè)、體系化的SRE服務(wù),幫助廣大客戶更好地使用云、基于云構(gòu)建更加穩(wěn)定可靠的業(yè)務(wù)系統(tǒng),提升業(yè)務(wù)穩(wěn)定性。我們期望能夠分享更多幫助企業(yè)客戶上云、用好云,讓客戶云上業(yè)務(wù)運(yùn)行更加穩(wěn)定可靠的技術(shù),您可用釘釘掃描下方二維碼,加入阿里云SRE技術(shù)學(xué)院釘釘圈子,和更多云上人交流關(guān)于云平臺的那些事。
原文鏈接:https://developer.aliyun.com/article/782542?
版權(quán)聲明:本文內(nèi)容由阿里云實名注冊用戶自發(fā)貢獻(xiàn),版權(quán)歸原作者所有,阿里云開發(fā)者社區(qū)不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。具體規(guī)則請查看《阿里云開發(fā)者社區(qū)用戶服務(wù)協(xié)議》和《阿里云開發(fā)者社區(qū)知識產(chǎn)權(quán)保護(hù)指引》。如果您發(fā)現(xiàn)本社區(qū)中有涉嫌抄襲的內(nèi)容,填寫侵權(quán)投訴表單進(jìn)行舉報,一經(jīng)查實,本社區(qū)將立刻刪除涉嫌侵權(quán)內(nèi)容。總結(jié)
以上是生活随笔為你收集整理的监控最佳实践--redis及业务接口的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 游戏打包过程枯燥且繁琐,如何提升打包效率
- 下一篇: 云通信产品运营带你玩转号码隐私保护