创建通知策略时,您可以将告警通知发送到自定义的Webhook地址中。Serverless应用引擎SAE(Serverless App Engine)告警管理支持对飞书、微信、钉钉等群组发送Webhook告警。本文以飞书为例,介绍如何创建Webhook告警。

步骤一:获取Webhook地址

  1. 打开并登录飞书。
  2. 单击+图标,然后单击创建群组,新建一个用于发送告警的群组。
  3. 单击群组设置图标,然后单击群机器人页签,在群机器人页签,单击添加机器人
  4. 添加机器人面板,选择Custom Bot,然后在配置页,输入机器人名称描述,单击添加
  5. 复制Webhook地址,然后选中自定义关键词并输入关键词为告警,然后单击完成

步骤二:创建Webhook联系人

  1. 登录SAE控制台
  2. 在左侧导航栏,选择应用管理 > 应用列表,在顶部菜单栏选择地域,然后单击具体应用名称。
  3. 在左侧导航栏,选择通知告警 > 联系人管理
  4. 通知对象页面的Webhook集成页签,单击新建Webhook
  5. 新建Webhook对话框,配置以下信息,然后单击确定

    信息配置完成后,您可以先单击发送测试,验证配置是否成功,然后再单击确定

    配置项说明
    Webhook名称自定义Webhook名称。
    Post/Get设置请求方法。URL不超过100个字符。

    此例中选择Post,并将步骤一:获取Webhook地址中保存的Webhook地址粘贴至右侧文本框。

    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 }}"
      }
    }
    恢复模板告警恢复时发送的通知模板,在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 }}",
    "恢复时间":"{{ .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秒内没有返回,即没有收到告警信息,则表示发送失败。