云监控BCM

    报警回调


    通过报警回调,可实现将BCM云监控的报警通知发送到您指定的URL。您可以自由、灵活的处理各类告警消息,BCM支持通过 HTTP/HTTPS协议 的 POST 请求推送到可访问公网 URL ,您可基于回调接口推送的报警信息做进一步的处理。

    目前,BCM对于云产品监控(包括阈值报警和事件报警)提供报警回调功能,后续将开放站点监控、应用监控、自定义监控的报警回调功能。

    报警回调使用说明

    • 报警回调接口:您需要提供能接收 HTTP/HTTPS 协议的POST 请求,并且公网可访问的 URL 地址,作为回调地址。
    • 报警回调触发:如果填写了报警回调地址,触发逻辑与告警短信、邮件、电话一致,当创建的告警策略被触发、告警策略恢复时,均会通过报警回调接口发送告警消息。
    • 绑定报警回调接口:您可在创建告警策略详添加回调接口。一个告警策略只可绑定一个报警回调 URL。
    • 返回内容:当向绑定的 URL 发出报警信息后,我们需要接收到标识成功的返回内容(httpCode = 200),以表明已成功接收信息;否则我们将重复发送告警信息,最多重试三次,超时时间为5s(重试机制)

    操作步骤

    目前云产品监控提供了报警回调功能,入口有两处:

    • 入口一:统一的创建报警策略入口
    1. 在左侧导航栏中点击<报警管理>-<报警策略>,在云产品监控的策略列表下,点击“添加策略”。

    image.png

    1. 在创建策略页面,开启报警回调功能,选择协议方式,输入公网可访问的URL地址。

    image.png

    注意:回调token用来验证您收到的报警消息是否由百度云监控BCM发出。由BCM侧自动生成一个token,点击<更换一个>按钮可更换回调token,同时您需要更换回调程序中的校验Token,回调时使用最新的Token。

    • 入口二:为某个云服务下单个实例创建报警策略入口
    1. 在左侧导航栏中点击<云产品监控>,点击要查看的云产品,进入该云产品的实例列表页面。如查看云服务器BCC监控数据,点击<云服务器监控>,进入“云服务器列表”页面。选择对应的实例点击“添加策略”。

    image.png

    1. 在创建策略页面,开启报警回调,输入需要的信息。

    image.png

    POST方式参数说明

    指标报警POST方式参数说明

    参数 说明
    alertId 告警ID
    userId 账号ID
    alarmName 报警策略名称
    scope 云产品名称
    policyType 策略类型(指标报警和事件报警之一,Metric代表是指标报警,Event代表事件报警)
    alertStartTimestamp 发生告警的时间戳
    region 报警对象所在的地域
    monitoringObject 发生报警的对象
    alarmLevel 报警等级状态。根据实际情况返回严重、通知、重要、警告四种状态中的一种
    formula 报警条件
    currentValue 报警发生或恢复时监控项的当前值
    taskTimestamp 报警回调发送时间
    signature 签名

    事件报警POST方式参数说明

    参数 说明
    alarmName 报警策略名称
    scope 云产品名称
    alertStartTimestamp 发生告警的时间戳
    alertContent 事件详情
    taskTimestamp 报警回调发送时间
    signature 签名

    signature值是与alertId、您配置时生成的token和taskTimestamp这3个参数连接并用MD5算法加密后的值相等来校验。

    URL回调实例

    下面是URL回调的使用实例,BCM发起的POST方式URL回调请求:

    POST http://127.0.0.1:8201/callback
    POST: alertId=dffvsdfsdffa&userId=a0345uiiiooo&alarmName=test&scope=BCE_BCC&policyType=Metric&alertStartTimestamp=1597489020&region=华北-保定&monitoringObject=BCC实例i-gid9sff&alarmLevel=MAJOR&formula=cpu使用率>70%
    &currentValue=cpu使用率=87%&taskTimestamp=1597489090&signature=af7c6cvbnjkdfghjk

    在callback.java文件中接收POST参数并对消息进行校验:

    // 从发送来的POST请求中解析出alertId、taskTimestamp 、signature这3个参数。使用alertId、token(创建报警策略时生成的token)和taskTimestamp 这3个参数连接并用MD5算法加密后的值来校验消息。
    如果校验成功,则说明此消息为百度云发出,否则为非法请求,不予处理。其中taskTimestamp可以用来做过期验证,如果时间戳与用户当前时间时间间隔大于某个周期(如10分钟),则用户可自行丢弃请求。
    
    if (md5(alertId + token + taskTimestamp) == signature) {
        ..........
    }
    上一篇
    管理报警
    下一篇
    报警动作