一、步骤1:查看事件列表
登录 事件总线控制台,进入云服务默认事件集。
可以查看目前已经接入的所有云服务事件。
投递标准事件格式如下:
{ "specversion":"1.0.2", "id":"13a3f42d-7258-4ada-da6d-023a333b4662", "source":"${ProductName}.cloud.tencent", "type":"cvm:ErrorEvent:ping_unreachable", "subject":"${资源 ID}", "time": 1615430559146, "region":"ap-guangzhou", "resource":[ "qcs::eb:ap-guangzhou:uid1250000000:eventbusid/eventruleid" ], "datacontenttype":"application/json;charset=utf-8", "tagList":[{ "key":"key1", "value":"value2" }], "status":"1", "data":{ "appId":"1250000011", "instanceId":"ins-sjdksjk", "projectId":"11", "dimensions":{ "ip":"127.0.0.1" }, "additionalMsg":{ "IP":"something unnormal" } }}
字段说明如下:
| 字段 | 描述 | 字符串类型 |
| specversion | 事件结构体版本(cloudevents 遵循版本,目前为1.0.2)。 | String |
| id | PUT Event 返回的 ID 信息。 | String |
| type | PUT Event 输入的事件类型。云服务告警事件标准格式为 ${ProductName}:ErrorEvent:${EventType},用 “:” 分割类型字段。 | String |
| source | 事件来源(云服务事件必传此参数)。云服务默认为 xxx.cloud.tencent。 | String |
| subject | 事件来源详情可自定义,云服务默认使用 QCS 描述,例如 qcs::dts:ap-guangzhou:appid/uin:xxx。 | String |
| time | 发生事件的时间,0时区毫秒时间戳,例如1615430559146。 | Timestamp |
| datacontenttype | 数据类型声明。 | String |
| region | 地域信息。 | String |
| status | 告警事件状态,分为 “1(异常 error)/0(恢复 recovered)/- (无状态 stateless)”三类。 | String |
| tagList | 资源标签数组。 | JSON 数组 |
| data | PUT Event 输入的事件详情,各个业务方可以自定义。 | JSON |
二、步骤2:配置告警事件规则
进入事件规则页面,选择对应的事件集后,在事件集下 创建事件规则,完成需要配置告警推送的事件筛选。
以 CVM 告警配置为例,你可以选择指定的事件告警类型,也可以选择全部告警事件。
三、告警规则示例
·接收全部事件,规则配置如下,配置 source 字段为 cvm.cloud.tencent,即表示所有来自 cvm 的告警事件均可以通过规则匹配进行推送:
{ "source":"cvm.cloud.tencent"}
·接收指定事件,规则配置如下,表示所有来自 cvm 并且类型为 ping 不可达的事件才可以通过规则匹配进行推送,其它事件将被丢弃,无法触达用户。
{"source":"cvm.cloud.tencent","type":"cvm:ErrorEvent:PingUnreachable"}
·接收指定实例,规则配置如下,表示所有来自 cvm 并且实例 id 为 ins-xxx 的事件才可以通过规则匹配进行推送,其它事件将被丢弃,无法触达用户(不同事件源投递的 subject 字段格式可能不同,你可以通过查看投递到 cls 的事件完整日志,确认对应产品该字段的具体内容)
{"source":"cvm.cloud.tencent","subject":"ins-xxxxxx"}
也可以使用数组模式匹配多个资源。
{"source":"cvm.cloud.tencent","subject":["ins-xxxxxx","ins-xxxxxx"] }
更多匹配方式,请参考 规则匹配文档。
四、步骤3:配置推送目标
事件告警场景下,建议同时配置 CLS 日志投递与消息推送两个投递目标。
CLS 日志投递消息推送对于云服务默认事件集,EB 提供了专用的 CLS 日志集,支持将你的告警事件投递至默认的事件总线日志集,方便你对已投递的告警事件随时进行追溯:说明EB 为专用日志集提供了每月1GB、30天存储的免费使用额度,保证你的基础告警事件可以免费查看和管理,超出额度部分,CLS 将按照统一标准进行计费,详情见 CLS 计费方式。通过配置消息推送,将你的告警事件推送至指定的消息接收渠道,完成用户及时触达。
五、步骤4:测试配置结果
配置完成后,回到事件集控制台,选择已绑定的事件集,单击发送事件,可以选择已绑定的事件规则模板,单击确定进行测试。
注意:测试模板里只展示 data 字段里的内容,其它字段已固定,无法自定义修改。
配置完成后,即可在腾讯云事件总线控制台,完成告警事件的查看与推送配置。
六、推送内容文案示例
邮件内容:
云服务产品${ProductName}告警通知尊敬的腾讯云用户,你好!你的腾讯云账号(账号 ID:${1},昵称:${2})云服务产品 ${ProductName} 事件告警已触发,请你及时关注并处理。告警事件:${EventType}告警产品:${ProductName}告警资源:${Subject}告警地域:${Region}事件产生时间:${Time}事件状态:${EventStatus}(分为“error”、“recovered”、“stateless”三类)查看更多详情,请登录腾讯云「事件总线」产品控制台查看与管理。
HTTP 回调内容示例:
{"sessionId": "xxxxxxxxxxxxxxxx", //事件 ID"alarmStatus": "1",//Event.Status"alarmType": "event",//固定,事件告警"alarmObjInfo": { "region": "sh", //事件地域 "dimensions": { //资源补充描述信息,非固定,由每个产品本身决定,此处以 cvm 为例 "unInstanceId": "ins-xxxxx", "objDetail": { "deviceLanIp": "xxxx", "deviceWanIp": "", "uniqVpcId": "vpc-xxx" }, "deviceName": "xxx" }},"alarmPolicyInfo": { //告警策略相关,兼容告警管理现有回调内容 "policyName": "xxxx", //EB事件规则名称 "conditions": { "productName": "cvm", //告警产品缩写 "eventName": "guest_reboot", //告警事件类型 "alarmNotifyType": "", //置空,兼容告警管理现有回调 "alarmNotifyPeriod": "" //置空,兼容告警管理现有回调 }},"additionalMsg": [{ //告警事件补充内容,由告警上报方决定,此处以 cvm 为例"key": "alias","value": "xxxx"}, {"key": "deviceLanIp","value": "xxxx"}, {"key": "deviceWanIp","value": ""}, {"key": "uniqVpcId","value": ""}],"firstOccurTime": "2021-10-19 11:15:47", //告警时间"durationTime": 0, //持续时间"recoverTime": "0" // 恢复时间}