创建通知策略时,您可以将告警通知发送到自定义的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秒内没有返回,即没有收到告警信息,则表示发送失败。