云监控除了邮件和Webhook的报警通知方式外,还可以使用报警回调方式,让您更自由、更灵活的处理告警。本文为您介绍如何使用阈值的报警回调功能,实现将云监控发送的报警通知集成到已有的运维系统或消息通知系统。
前提条件
请确保您已准备好公网URL地址。该URL地址为运维系统或消息通知系统的URL地址。
背景信息
云监控通过HTTP协议或HTTPS协议的POST请求推送报警通知到您指定的URL地址,请您将IP地址47.74.206.0/26、47.74.206.64/26、47.74.206.128/26、47.74.206.192/26和8.222.159.116加入防火墙的白名单。当您接收到报警通知后,可以根据通知内容做进一步处理。
报警回调的重试策略为3次,超时时间为5秒。
云监控控制台不支持批量设置阈值报警回调,您可以通过以下API实现:
先调用CreateMetricRuleTemplate接口创建报警模板,且设置回调地址,再调用ApplyMetricRuleTemplate接口将报警模板应用到指定应用分组。更多信息,请参见CreateMetricRuleTemplate和ApplyMetricRuleTemplate。
调用PutGroupMetricRule接口创建或修改应用分组的报警规则,且设置回调地址。更多信息,请参见PutGroupMetricRule。
操作步骤
执行结果
当报警规则被触发时,云监控会将报警消息发送到您指定的URL地址,发送的POST请求内容如下表所示。
POST请求内容可能会新增参数,因此需要您的Webhook可以兼容新增参数。
参数 | 数据类型 | 描述 |
alertName | String | 报警名称。 |
alertState | String | 报警状态。根据实际情况返回以下三种状态中的一种:
|
curValue | String | 报警发生或恢复时监控项的当前值。 |
dimensions | String | 发生报警的对象。示例: |
expression | String | 报警条件。 |
groupId | String | 应用分组ID。 |
instanceName | String | 实例名称。 |
lastTime | String | 报警持续时间。单位:分钟。 |
metricName | String | 监控项名称。关于监控项名称,请参见云产品监控项中的Metric Name。 |
metricProject | String | 云产品名称。 |
namespace | String | 云产品命名空间。 大部分云产品的回调 少数云产品命名空间与云产品的回调 |
preTriggerLevel | String | 上一次触发报警的级别。取值:
|
productGroupName | String | 应用分组名称。 |
rawMetricName | String | 监控项ID。关于监控项ID,请参见云产品监控项中的Metric Id。 |
regionId | String | 地域ID。 |
regionName | String | 地域名称。 |
ruleId | String | 触发本次报警的报警规则ID。 |
timestamp | String | 触发本次报警的时间戳。 |
transId | String | 目标规则中资源从发生报警到恢复的ID。 |
triggerLevel | String | 本次触发报警的级别。取值:
|
unit | String | 监控项的单位。关于监控项单位,请参见云产品监控项中的Unit。 |
userId | String | 用户ID。 |
表 1. 云产品命名空间与云产品的回调Namespace的映射关系
云产品命名空间 | 回调Namespace |
acs_ecs_dashboard | acs_ecs |
acs_slb_dashboard | acs_slb |
acs_rds_dashboard | acs_rds |
acs_oss_dashboard | acs_oss |
acs_sls_dashboard | acs_sls |
acs_ess_dashboard | acs_ess |
acs_containerservice_dashboard | acs_containerservice |
acs_apigateway_dashboard | acs_apigateway |
acs_redis_dashboard | acs_kvstore |
acs_ocs_new | acs_ocs |
acs_mns_new | acs_mns |
POST请求示例:
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
expression=$Average>=95&metricName=Host.mem.usedutilization&instanceName=instance-name-****&signature=eEq1zHuCUp0XSmLD8p8VtTKF****&metricProject=acs_ecs&userId=110803419679****&curValue=97.39&alertName=基础监控-ECS-内存使用率&namespace=acs_ecs_dashboard&triggerLevel=WARN&alertState=ALERT&preTriggerLevel=WARN&ruleId=applyTemplateee147e59-664f-4033-a1be-e9595746****&dimensions={userId=110803419679****, instanceId=i-8psdh7l6lphbn10l****}×tamp=1508136760&productGroupName=test_Group&groupId=1666****&lastTime=2分钟&rawMetricName=cpu_total®ionId=cn-hangzhou®ionName=华东1(杭州)&transId=53767d2a-ae72-11ed-b2ca-00163e2c****&unit=%