DevOps課程-Prometheus 9

Alertmanager基本介紹

ZONGRU Li
Oct 24, 2022

Firing State:

前一篇我們有成功達到Alert發出的條件,也就是條件進到 →Firing State

到了Firing階段就代表發送Alert訊息交給Alertmanager

如上圖示

Alertmanager再決定是否發送給email,slack頻道,…etc各種通知管道

而我們當下狀況則是如下:

沒有設置要發送任何通知

也就是Alertmanager接到訊息後就忽略無視了

所以接下來就是學著設置發送訊息到email

Alertmanager Configuration File

從前面介紹可以知道,我們其實是有兩個應用程式

並且各自有各自的設定檔:

兩個應用程式有各自的設定檔

Prometheus的設定檔前面看過了:

接著就要來看看Alertmanager的設定檔,首先它本身也有簡單UI

#查找Alertmanager的service:
kubectl get svc -n monitoring
#將Alertmanager的服務進行forward:
kubectl port-forward svc/monitoring-kube-prometheus-alertmanager 9093:9093 -n monitoring &

就可以進入到127.0.0.1:9093

進到Status頁面:

預設的Alertmanager設定檔內容:

如上圖,基本上三大塊(global,route,receivers)

其中reveiversAlertmanager內最重要的

裡面掌管了接到什麼Alert進行通知的相關設定

而目前看到就是:

只有null,也就是接到Prometheus的Alert後忽略

所以現在就要來設置接收到什麼Alert後要通知給什麼

所以過程會有一些Routing的設置

如上alertname要符合後面的條件,然後

另外在有matchersroutes外面

也就是如下:

其中global的設定意義如下:

repeat_interval:多久發送一次訊息

group_waitgroup_interval:是指一群Alert

但是不論Route區塊怎麼定義,我們都得先設置可以通知的媒體

才能在Route區塊內設置可以通知的媒體對象,所以要先著手以下這部分:

而最上方的global區塊則是global設定

提供後面設定取用當作變數在route,receivers區塊內使用:

原本的cpu-testpod跑一跑就會crash,無法起pod

而我們在Prometheus中有設置了重啟pod超過5次的Alert

剛到第5次,Prometheus還沒發現

等待一點時間後就會觸發:

在來就是要把這個Alert做到可以發送eamil通知

參考課程reference

--

--

ZONGRU Li
ZONGRU Li

Written by ZONGRU Li

2022/11/17 開源部分個人筆記給LINE "Java程式語言討論區"社群,希望能對社群的技術學習做一點點貢獻.(掩面....記得退訂閱!

No responses yet