云監控除了電話、短信、郵件和Webhook的報警通知方式外,還可以使用報警回調方式,讓您更自由、更靈活的處理告警。本文為您介紹如何使用閾值的報警回調功能,實現將云監控發送的報警通知集成到已有的運維系統或消息通知系統。
前提條件
請確保您已準備好公網URL地址。該URL地址為運維系統或消息通知系統的URL地址。
背景信息
云監控通過HTTP協議或HTTPS協議的POST請求推送報警通知到您指定的URL地址,請您將IP地址106.11.225.0/24、106.11.226.0/24、106.11.227.0/24、106.11.242.0/24、106.11.167.0/24、106.11.245.0/24、59.82.0.0/16、59.82.84.0/24、203.119.128.0/17、203.119.156.0/24和121.41.9.246加入防火墻的白名單。當您接收到報警通知后,可以根據通知內容做進一步處理。
報警回調的重試策略為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=%