天天看點

監控最佳實踐--redis及業務接口

監控最佳實踐--redis及業務接口

1. 背景

1.1 問題

2020-12-04,客戶側redis叢集版監控DB0 CPU突增至100%,導緻資料庫無法正常服務,經排查客戶側業務上存在2M左右的大key導緻DB0阻塞。并且客戶側使用的叢集連接配接方式為預設proxy模式,如下圖所示,DB0阻塞導緻其他節點也無法正常服務;處理辦法:客戶側配合切斷大key業務的高頻繁次調用,請求恢複。

監控最佳實踐--redis及業務接口

圖1:proxy模式

1.2 思考

此次問題導緻客戶側課程報名入口嚴重受損,進而引發深度思考。在使用redis等産品方面的監控報警手段不夠完善,不夠仔細,并且後續再檢視業務日志發現錯誤率已經逐漸增多,直至redis層面表現出來才get到問題所在。針對此次redis的大key問題,給客戶提供了關于大key以及熱點key的分析辦法,并建議完善客戶側監控報警的可讀性以及業務日志接口的錯誤告警。

2. 資料庫監控分析

2.1 redis監控名額分享

redis叢集版雲監控名額如下表所示。

監控項 機關 MetricName Dimensions Statistics
平均響應時間 us ShardingAvgRt userId、instanceId、nodeId Average、Maximum
連接配接數使用率 % ShardingConnectionUsage
CPU使用率 ShardingCpuUsage
命中率 ShardingHitRate
入方向流量 KByte/s ShardingIntranetIn
流入帶寬使用率 ShardingIntranetInRatio
出方向流量 ShardingIntranetOut
流出帶寬使用率 ShardingIntranetOutRatio
緩存内Key數量 ShardingKeys
最大響應時間 ShardingMaxRt
記憶體使用率 ShardingMemoryUsage
QPS使用率 ShardingQPSUsage
已用連接配接數 ShardingUsedConnection
記憶體使用量 Bytes ShardingUsedMemory Average、Maximum、Sum
平均每秒通路次數 ShardingUsedQPS

2.2 redis大key分析

1.在控制台選擇對應的執行個體,進行大key及Hot key分析處理。

監控最佳實踐--redis及業務接口

圖2:執行個體分析

2.利用API接口進行分析大 key以及Hot key。

緩存分析與熱點Key查詢可參考文後資料了解詳情[1]。

2.3 資料庫同環比監控

建立分組報警規則目前已更新至分組界面。

2.3.1 建立應用分組
監控最佳實踐--redis及業務接口

圖3:建立應用分組

2.3.2 建立報警規則
監控最佳實踐--redis及業務接口

圖4:建立報警規則

監控最佳實踐--redis及業務接口

圖5:設定報警規則

3. 日志監控

利用sls接入用戶端日志,可以通過設定規則建立儀表盤以及實作報警。此方案日志接入采取logtail方式内網傳輸。

3.1 安裝logtail

安裝logtail方法可參考文後資料[2]。

3.2 建立project和logstore

登入日志服務控制台,依次建立對應地域的project及logstore。

監控最佳實踐--redis及業務接口

圖6:project-logstore建立

3.3 資料接入向導

此次客戶側日志格式分别為json、log4j。

3.3.1 json

選擇json文本日志>選擇現有機器組>對應logtail配置

監控最佳實踐--redis及業務接口

圖7:logtail配置

1.設定索引

對于多重json日志,需要将字段類型更改為json。

監控最佳實踐--redis及業務接口

圖8:設定索引

2.查詢分析

監控最佳實踐--redis及業務接口

圖9:查詢分析

3.3.2 log4j

選擇正則文本日志>選擇現有機器組>對應logtail配置

1.正則識别首行

監控最佳實踐--redis及業務接口

圖10:設定自動生成

2.提取字段

監控最佳實踐--redis及業務接口

圖11: 日志提取字段

3.設定索引

注意:隻對新寫入資料生效。

監控最佳實踐--redis及業務接口

圖12:設定索引

4.查詢分析

監控最佳實踐--redis及業務接口

圖13:查詢分析

3.4 日志報警

3.4.1 儀表盤
監控最佳實踐--redis及業務接口

圖14:儀表盤資訊展示

3.4.2 報警

在儀表右上側導航欄中單擊告警,在下拉菜單中選擇建立。

監控最佳實踐--redis及業務接口

圖15:建立告警

監控最佳實踐--redis及業務接口

圖16:告警内容設定

關于釘釘機器人的告警内容可參考文後模闆[3]進行設定。

參考文獻

[1] 緩存分析與熱點Key查詢:

https://help.aliyun.com/document_detail/184226.html?spm=a2c4g.11186623.6.975.255f3635R5By1i

[2] 安裝Logtail(Linux系統):

https://help.aliyun.com/document_detail/28982.html?spm=a2c4g.11186623.2.5.31a09d7cBfTtvl

[3] 釘釘機器人告警模闆:

https://help.aliyun.com/document_detail/91785.html?spm=5176.2020520112.0.dexternal.62b334c0S2Jxx2

我們是阿裡雲智能全球技術服務-SRE團隊,我們緻力成為一個以技術為基礎、面向服務、保障業務系統高可用的工程師團隊;提供專業、體系化的SRE服務,幫助廣大客戶更好地使用雲、基于雲建構更加穩定可靠的業務系統,提升業務穩定性。我們期望能夠分享更多幫助企業客戶上雲、用好雲,讓客戶雲上業務運作更加穩定可靠的技術,您可用釘釘掃描下方二維碼,加入阿裡雲SRE技術學院釘釘圈子,和更多雲上人交流關于雲平台的那些事。

監控最佳實踐--redis及業務接口