DevOps課程-Prometheus 14
建立Redis的Alert Rule:
參考到前面寫過的Alert Rule:
在此我們嘗試撰寫Redis兩個Alert Rule:
- Redis整個掛掉
- 太多連線
檔名暫時叫redis-rule.yaml:
接著要開始思考要透過有哪些metrics資料來撰寫我們要的Rule
可以在Prometheus頁面上看看redis上有哪些metrics資料:
更方便的是找到參考文件!!!
google找"Awesome Prometheus Alerts":
裡面有一大堆別人寫好的常見軟體的Alert Rule:
還有其他的:
點剛剛上面看到的DB分類中的Redis:
跟我們用的是同一個
雖然最後是透過Helm Chart來裝redis exporter
但源頭裝的都是以下這個Source:
接著再繼續找到"太多連線"的Rule:
一樣貼過去使用,記得修正syntax位置:
當然也可以調整一下描述:
完成如下:
#執行Alert Rule建置:
kubectl apply -f redis-rules.yaml#這邊可以透過指令確認(在default ns):
kubectl get prometheusrule
大概一分鐘就可以在Prometheus首頁上面看到該組Rule:
接著嘗試觸發Redis掛掉的Alert
#直接修改Redis的deployment元件的replica數量到0:
kubectl edit deployment redis-cart
#觀察redis的pod:
kubectl get pod
如上圖看到redis的exporter還在,但是他最後會抓不到redis的metrics
而這時候Peometheus頁面上可能還沒有及時反映Redis已經掛了:
這是因為Prometheus在抓取Redis-Exporter的metrics資訊
也是有"Interval時間",也就是Prometheus多久去Exporter抓一次metrics資訊
這個可以看到安裝的Redis-Exporter的Helm的Values.yaml
裡面的serviceMonitor部分:
等待30秒後刷新Prometheus頁面就會看到變紅了:
接著我們在調整回Redis的Deployment的Replica數量回1
#直接修改Redis的deployment元件的replica數量到1:
kubectl edit deployment redis-cart
然後過一段時間回到Prometheus的畫面就變回綠色了:
在Grafana上建立Redis的Dashboard:
如上面例子,當Redis服務整個掛掉了
我們會希望在一個Dashboard上直接看到並方便分析狀況,如Grafana
在一個Dashboard內顯示多個必要資訊,也比較容易解析狀況
所以接下來問題在於 →如何在Grafana上刻出一個Redis Dashboard,答案有:
- 自己刻!!!
- 直接使用既有的Redis Dashboard!!!
到Grafana Lab網頁:
往下拉還有更多,還有篩選:
這邊直接簡單透過google來找:
這邊要確定的是,背後使用的Redis Exporter是同一個,點上面紅框確認
然後看到又是這一個Github就對了:
回到剛剛找到的頁面
看到預覽:
這邊順便提一下,講師google到的ID:763的Redis Dashboard已經找不到了
匯入剛剛找到的Grafana Dashboard:
剛剛找到的Dashboard ID:14091
先到我們的Grafana Dashboard頁面:
然後貼上ID做匯入:
然後這邊就可以調整一下名稱:
匯入後就會跳到該Dashboard畫面:
如上圖,左上會看到來源的IP位置還有資料來源
(講師畫面是import時要選資料源是Prometheus)
這個可以對應到Redis Exporter的Pod的IP位置
#可以看看Redis Exporter Server的IP位置,先拿到Server名稱:
kubectl get svc#然後看到Redis Exporter的Server元件內對應的Endpoint位置:
kubectl describe svc redis-exporter-prometheus-redis-exporter
這邊我也可以調一下顯示的時間區間比如最近1HR:
透過以上方式我們就不用從頭自己刻Dashboard了!
這邊我順便紀錄一下使用到的Prometheus與Grafana版本: