一、分析
需求
Grafana支持短信渠道報警
要求
使用開發提供的短信API接口
請求url:
http://192.168.1.1:8088/alerting/sendSms?mobile=手機號碼
這個是java項目開發的api,請求方式為POST
如果要增加多個手機號碼,使用逗號隔開
使用shell腳本的發送命令為:
curl -X POST --header "Content-Type: application/json" --header "Accept: */*" -d "{\"title\": \"監控告警\"}" http://192.168.1.1:8088/alerting/sendSms?mobile=12345678910
邏輯
1. 在Grafana添加短信報警方式
2. 在相關圖表中應用短信報警
二、實際操作
添加報警方式
點擊Alerting-->Notification channels

選擇新建

輸入報警方式的名字,比如: devops-sms
類型選擇 webhook
輸入url http://192.168.1.1:8011/alerting/sendSms?mobile=12345678910
最后點擊保存

上面還有2個選項
Send on all alerts 表示發送給所有的alerts。
Include image 發送圖表。
解釋:
1. 如果選擇Send on all alerts,必須要保證相關的圖表,已經開啟了alerts。也就是說,創建圖像時,alerts默認是空的
2. 由於是短信報警,發送的是文字,所以圖片即使發過去,也沒啥卵用。如果是郵件報警,則可以看到圖表信息!
在webhook settings選項中,還有2個參數,username和password。由於此接口不需要認證,所以這2個參數不需要填寫!
測試報警
點擊上面的Send Test,確保能夠收到短信!

圖表添加報警
隨便點擊一個圖表,點擊edit

進入 alert選項
Alert Config-->Evaluate every 表示檢測評率,這里為了測試效果,改為1秒
Conditions 表示觸發條件。下面圖片的意思表示 當每秒平均值達到10,就會觸發報警。
when 表示什么時間,of 表示條件,is above 表示觸發值
If no data or all values are null 如果沒有數據或所有值都為空,這里選擇觸發報警
If execution error or timeout 如果執行錯誤或超時,這里選擇觸發報警

這里有一條紅線,表示警戒線,就是剛剛設置的報警條件。

點擊Notifications,選擇devops-sms

點擊保存

更新描述可以不寫,點擊保存

等待1分鍾,就會收到短信了

在State history,會看到報警的歷史信息

注意:下一次觸發,比如1秒后,它不會再次觸發,防止 報警風暴產生!
只會發送一次!
如果需要查看所有的,點擊Alerting-->Alert List

進入告警列表頁面,選擇 Alerting,效果如下:

上面只是演示了,單個圖表的報警設置,如果需要設置所有圖表都應用短信報警
需要勾選這個選項

請確保其他圖表的alert選項中,設置了報警策略。它才會報警,否則不會!
