设置URL回调

什么是URL回调

URL回调是告警消息的一种通知方式,通过URL回调,您可以让告警通知发送到您指定的URL,使您能更加灵活处理告警消息。URL回调通知方式最大的特点是用户可以发挥自己的想象,灵活地处理各种告警消息。

目前,透视宝对应用性能监控、移动性能监控、主机性能监控提供URL回调功能,以后将开放更多监控类型的URL回调功能,实现更丰富的故障告警和故障转移。

设置URL回调

采用URL回调接收告警消息时,您仍然需要设置告警模板和警报来指定告警对象、告警规则和告警频率,可以不设置告警组。

只有管理员才能设置URL回调接口。使用管理员账号登录透视宝,在“告警回调配置“页面中设置URL回调。

7.6-2.png

设置回调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.phpz
 
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=264
ms&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参数是否已经在您的存储(您处理过的消息)中即可判断是否为非法重复请求。