通過(guò)Webhook自定義告警通知人
創(chuàng)建通知策略時(shí),您可以將告警通知發(fā)送到自定義的Webhook地址中。ARMS告警管理支持對(duì)飛書、微信、釘釘?shù)热航M發(fā)送Webhook告警,本文以飛書為例,介紹如何創(chuàng)建Webhook告警。
步驟一:獲取Webhook地址
打開(kāi)并登錄飛書。
單擊+圖標(biāo),然后單擊創(chuàng)建群組,新建一個(gè)用于發(fā)送告警的群組。
單擊群組設(shè)置圖標(biāo),然后單擊群機(jī)器人頁(yè)簽。
在群機(jī)器人頁(yè)簽單擊添加機(jī)器人。
在添加機(jī)器人面板選擇Custom Bot。
在配置頁(yè)設(shè)置顯示名稱和描述,然后單擊添加。
在添加情況區(qū)域單擊復(fù)制鏈接,然后單擊完成。
步驟二:創(chuàng)建Webhook聯(lián)系人
登錄EDAS控制臺(tái)。
在左側(cè)導(dǎo)航欄,單擊 ,在頂部菜單欄選擇地域并在頁(yè)面上方選擇所屬微服務(wù)空間,在集群類型下拉列表,選擇K8s集群,然后在頁(yè)面單擊具體的應(yīng)用名稱。
在左側(cè)導(dǎo)航欄中選擇 。
在聯(lián)系人頁(yè)簽上,單擊右上角的新建webhook。
在創(chuàng)建Webhook對(duì)話框中輸入配置信息。
基本參數(shù)描述如下所示。
參數(shù)
說(shuō)明
Webhook名稱
必填,自定義Webhook名稱。
Post和Get
必填,設(shè)置請(qǐng)求方法。URL不可超過(guò)100個(gè)字符。
此例中選擇Post,并將步驟一:獲取Webhook地址中保存的Webhook地址粘貼至右側(cè)文本框。
Header和Param
非必填,設(shè)置請(qǐng)求頭,不可超過(guò)200個(gè)字符。 單擊+添加,可以添加其他Header信息或Param信息。默認(rèn)請(qǐng)求頭為Content-Type: text/plain; charset=UTF-8,Header和Param個(gè)數(shù)總數(shù)不能超過(guò)6個(gè)。
此例中設(shè)置以下兩個(gè)Header:
Arms-Content-Type : json
Content-Type : application/json
通知模板
告警觸發(fā)時(shí)發(fā)送的通知模板,非必填,在Post方法下出現(xiàn),可使用$content占位符輸出通知內(nèi)容,不可超過(guò)500個(gè)字符。通知模板如下:
{ "告警名稱":"{{ .commonLabels.alertname }}{{if .commonLabels.clustername }}", "集群名稱":"{{ .commonLabels.clustername }} {{ end }}{{if eq "app" .commonLabels._aliyun_arms_involvedObject_kind }}", "應(yīng)用名稱":"{{ .commonLabels._aliyun_arms_involvedObject_name }} {{ end }}", "通知策略":"{{ .dispatchRuleName }}", "告警時(shí)間":"{{ .startTime }}", "告警內(nèi)容":"{{ for .alerts }} {{ .annotations.message }} {{ end }}" }
此處以飛書為例可以設(shè)置如下文本格式:
{ "msg_type": "text", "content": { "text": "報(bào)警名稱: {{ .commonLabels.alertname }}\n報(bào)警時(shí)間: {{ .startTime }}\n報(bào)警內(nèi)容: {{ for .alerts }} {{ .annotations.message }} {{if .generatorURL }} 詳情鏈接: {{.generatorURL}} {{ end }} \n {{ end }}" } }
恢復(fù)模板
告警恢復(fù)時(shí)發(fā)送的通知模板,非必填,在Post方法下出現(xiàn),可使用$content占位符輸出通知內(nèi)容,不可超過(guò)500個(gè)字符。恢復(fù)模板如下:
{ "告警名稱":"{{ .commonLabels.alertname }}{{if .commonLabels.clustername }}", "集群名稱":"{{ .commonLabels.clustername }} {{ end }}{{if eq "app" .commonLabels._aliyun_arms_involvedObject_kind }}", "應(yīng)用名稱":"{{ .commonLabels._aliyun_arms_involvedObject_name }} {{ end }}", "通知策略":"{{ .dispatchRuleName }}", "恢復(fù)時(shí)間":"{{ .endTime }}", "告警內(nèi)容":"{{ for .alerts }} {{ .annotations.message }} {{ end }}" }
此處以飛書為例可以設(shè)置如下文本格式:
{ "msg_type": "text", "content": { "text": "報(bào)警名稱: {{ .commonLabels.alertname }}\n恢復(fù)時(shí)間: {{ .endTime }}\n報(bào)警內(nèi)容: {{ for .alerts }} {{ .annotations.message }} {{if .generatorURL }} 詳情鏈接: {{.generatorURL}} {{ end }} \n {{ end }}" } }
可選:單擊測(cè)試,驗(yàn)證配置是否成功。
單擊創(chuàng)建。
步驟三:設(shè)置通知策略
在通知策略中需要選擇通知方式為WebHook才能在自定義的Webhook中接收告警。
新建或編輯通知策略,選擇通知人為Webhook聯(lián)系人,在通知方式區(qū)域選中WebHook。具體操作,請(qǐng)參見(jiàn)通知策略。
Webhook告警的超時(shí)時(shí)間為5秒,如果發(fā)出請(qǐng)求后5秒內(nèi)沒(méi)有返回,即沒(méi)有收到告警信息,則表示發(fā)送失敗。