URL回调是告警消息的一种通知方式,通过URL回调,您可以让告警通知发送到您指定的URL,使您能更加灵活处理告警消息。URL回调通知方式最大的特点是用户可以发挥自己的想象,灵活地处理各种告警消息。
目前,透视宝对应用性能监控和主机性能监控提供URL回调功能,以后将开放更多监控类型的URL回调功能,实现更丰富的故障告警和故障转移。
设置URL回调
采用URL回调接收告警消息时,您仍然需要设置告警模板和警报来指定告警对象、告警规则和告警频率,可以不设置告警组。
只有管理员才能设置URL回调接口。使用管理员账号登录透视宝,在“告警回调配置“页面中设置URL回调。
设置回调URL、回调token、回调方式并开启URL回调功能后,透视宝就会通过设定的回调方式向指定的URL发送告警消息。例如,您使用的Linux系统,则可以在data目录下的uri_message文件中查看接收的告警消息。
回调URL
输入您指定的回调URL,即通过公网能访问到的URL,透视宝将根据接口地址发送告警消息。点击<获取模拟回调地址>按钮,您可以实时查看模拟的回调URL。
回调token
回调token用来验证您收到的消息是否由透视宝发出。点击<更换一个>按钮可更换回调token,同时您需要更换回调程序中的校验Token,回调时使用最新的Token。
回调方式
URL回调通过GET或POST方式将告警信息发送至您指定的URL,目前只支持POST方式。
POST方式参数说明如下表所示:
参数 | 说明 |
alert_title | 告警消息的标题。 |
alert_message_id | 告警消息ID。 |
target_type | 告警类型,其中3代表主机、5代表应用、6代表移动。 |
target_id | 告警对象ID。 |
target_name | 告警对象名称。 |
alert_content | 告警内容。 |
alert_value | 告警阈值。 |
alert_time | 告警时间。 |
url_token | URL回调生成的token。 |
url_token值是否与alert_message_id、alert_time和您配置时生成的token这3个参数连接并用MD5算法加密后的值相等来校验。
是否开启URL回调
选择“开启URL回调,接收故障告警消息“选项,点击<保存>按钮则开启URL回调功能,透视宝将产生的告警消息通过回调的方式发给您。如果不选择该项,点击<保存>按钮则只保存修改的设置,不开启URL回调功能。
URL回调实例
下面是URL回调的使用实例,透视宝发起的POST方式URL回调请求:
POST http://domain/callback.php POST: alert_title=透视宝应用监控&alert_message_id=yTP7PSsRxz53tJ56VVG&target_type=5&target_id=3181866107858066&target_name=bear_test_q&alert_content=透视宝应用监控 bear_test_q响应时间5 min内平均值大于10 ms&alert_value=264ms&alert_time=1452751180&url_token=assdfsdafdfsaf
在callback.php文件中接收POST参数并对消息进行校验:
$alert_message_id = $_POST['alert_message_id']; $alert_time = $_POST['alert_time']; $url_token = $_POST['url_token']; $token = '您自己的回调token'; //使用$alert_message_id、$alert_time和$url_token 这3个参数连接并用MD5算法加密后的值来校验消息。如果校验成功,则说明此消息为透视宝系统发出,否则为非法请求,不予处理。 if (md5($alert_message_id. $ alert_time . $token) == $url_token) { .......... }
为了防止消息被非法重复请求您的回调URL,您可以通过验证具有唯一性的alert_message_id参数是否已经在您的存储(您处理过的消息)中即可判断是否为非法重复请求。