創建通知策略時,您可以將告警通知發送到自定義的Webhook地址。告警管理支持對第三方通知對象發送Webhook告警,本文以飛書為例,介紹如何創建Webhook告警。
步驟一:獲取Webhook地址
打開并登錄飛書。
單擊+圖標,然后單擊創建群組,新建一個用于發送告警的群組。
單擊群組設置圖標,然后單擊群機器人頁簽。
在群機器人頁簽單擊添加機器人。
在添加機器人面板選擇Custom Bot。
在配置頁設置顯示名稱和描述,然后單擊添加。
在添加情況區域單擊復制鏈接,然后單擊完成。
步驟二:創建Webhook聯系人
登錄Prometheus控制臺,在左側導航欄選擇 。
單擊Webhook集成頁簽,然后單擊右上角的新建Webhook,并在創建Webhook面板配置如下參數。
參數
說明
Webhook名稱
自定義Webhook名稱。
請求方法
設置請求方法為Post或Get,并輸入以HTTP或HTTPS開頭的URL,URL不可超過100個字符。
此例中選擇Post,并將步驟一:獲取Webhook地址中保存的Webhook地址粘貼至右側文本框。
Header、Param
設置Header和Param,不可超過200個字符。
單擊+添加,可以添加其他Header信息或Param信息。默認請求頭為
Content-Type: text/plain; charset=UTF-8
,Header和Param個數總數不能超過6個。此例中設置以下兩個Header:
Arms-Content-Type : json
Content-Type : application/json
如果您選擇請求方法為Post,您還需要配置以下參數
通知模板
告警觸發時發送的通知模板,可使用$content占位符輸出通知內容,不可超過500個字符。更多信息,請參見配置通知模板和Webhook模板。
通知模板如下:
{ "告警名稱":"{{ .commonLabels.alertname }}{{if .commonLabels.clustername }}", "集群名稱":"{{ .commonLabels.clustername }} {{ end }}{{if eq "app" .commonLabels._aliyun_arms_involvedObject_kind }}", "應用名稱":"{{ .commonLabels._aliyun_arms_involvedObject_name }} {{ end }}", "通知策略":"{{ .dispatchRuleName }}", "告警時間":"{{ .startTime }}", "告警內容":"{{ for .alerts }} {{ .annotations.message }} {{ end }}" }
此處以飛書為例可以設置如下文本格式:
{ "msg_type": "text", "content": { "text": "告警名稱: {{ .commonLabels.alertname }}\n{{if .commonLabels.clustername }}集群名稱: {{ .commonLabels.clustername }}\n{{ end }}{{if eq "app" .commonLabels._aliyun_arms_involvedObject_kind }}應用名稱: {{ .commonLabels._aliyun_arms_involvedObject_name }}\n{{ end }}通知策略: {{ .dispatchRuleName }} \n告警時間: {{ .startTime }} \n告警內容: {{ for .alerts }} {{ .annotations.message }}\n {{ end }}" } }
恢復模板
告警恢復時發送的通知模板,可使用$content占位符輸出通知內容,不可超過500個字符。更多信息,請參見配置通知模板和Webhook模板。
恢復模板如下:
{ "告警名稱":"{{ .commonLabels.alertname }}{{if .commonLabels.clustername }}", "集群名稱":"{{ .commonLabels.clustername }} {{ end }}{{if eq "app" .commonLabels._aliyun_arms_involvedObject_kind }}", "應用名稱":"{{ .commonLabels._aliyun_arms_involvedObject_name }} {{ end }}", "通知策略":"{{ .dispatchRuleName }}", "恢復時間":"{{ .endTime }}", "告警內容":"{{ for .alerts }} {{ .annotations.message }} {{ end }}" }
此處以飛書為例可以設置如下文本格式:
{ "msg_type": "text", "content": { "text": "告警名稱: {{ .commonLabels.alertname }}\n{{if .commonLabels.clustername }}集群名稱: {{ .commonLabels.clustername }}\n{{ end }}{{if eq "app" .commonLabels._aliyun_arms_involvedObject_kind }}應用名稱: {{ .commonLabels._aliyun_arms_involvedObject_name }}\n{{ end }}恢復時間: {{ .startTime }} \n通知策略: {{ .dispatchRuleName }} \n恢復告警內容: {{ for .alerts }} {{ .annotations.message }}\n {{ end }}" } }
(可選)單擊發送測試,驗證配置是否成功。
單擊確定。
步驟三:設置通知策略
新建或編輯通知策略,選擇通知對象為通用Webhook,然后選擇對應的Webhook集成。具體操作,請參見通知策略。
Webhook告警的超時時間為5秒,如果發出請求后5秒內沒有返回,即沒有收到告警信息,則表示發送失敗。