URL回调

通过监控宝URL回调功能,您可以让告警通知发送到您指定的URL,使您能更加灵活处理告警消息。

目前我们对部分套餐用户开放URL告警通知功能,详情请参考套餐计划。如果您还没有注册监控宝,请点此注册

目前我们对网站监控、服务器性能监控和服务性能监控提供URL回调功能,以后将开放更多监控类型的URL回调功能。

如何使用

  1. 数字列表项目在URL全局设置中填写您指定的回调URL,即通过公网能访问到的URL。您可以实时查看模拟的回调URL。
  2. 在通知方式中开启URL回调的全局设置。回调token用来验证您收到的消息是否由监控宝发出。

约定说明

  1. 监控宝发起的请求中消息内容都为UTF-8编码
  2. 监控宝会对URL回调结果进行记录,要求您返回的正文内容为UTF-8编码并且不超过100个字符

传递参数

URL回调通过GET或POST方式将告警信息发送至您指定的URL。

GET参数说明

  1. msg_id 告警消息ID
  2. task_id 监控项目ID
  3. task_type 监控项目类型,参考 监控项目
  4. fault_time 故障发生时间(unix时间戳)
  5. task_status 监控任务状态, 1 为不可用,0 为恢复可用
  6. task_summary 监控项目摘要
  7. content 告警消息内容,对内容进行了urlencode,需要urldecode得到内容
  8. token 使用msg_id、task_id、fault_time和您的回调token 这4个参数连接并MD5后的值,用来您对消息做校验

POST参数说明

  1. msg_id 告警消息ID
  2. task_id 监控项目ID
  3. task_type 监控项目类型,参考 监控项目
  4. fault_time 故障发生时间(unix时间戳)
  5. message_type 消息状态, 1为故障,2为提醒
  6. message_status 消息类型,1为告警,2为恢复
  7. task_summary 监控项目摘要
  8. content 告警消息内容,对内容进行了urlencode,需要urldecode得到内容
  9. token 使用msg_id、task_id、fault_time和您的回调token 这4个参数连接并MD5后的值,用来您对消息做校验
  10. message_detail json串,参数下载:http://pan.baidu.com/s/1o6uQ50u

一个例子

以PHP语言为例

以下是监控宝发起的GET方式URL回调请求:

http://domain/callback.php?msg_id=1&task_id=2&task_type=http&fault_time=1271767302&task_status=1&task_summary=http://domain.com&content=%E6%B6%88%E6%81%AF%E5%86%85%E5%AE%B9&token=3df5ed43ff3f57b3543d1d3e9c40e8d4

你在callback.php文件中接收GET参数并对消息进行校验:

$msg_id      = $_GET['msg_id'];
$task_id     = $_GET['task_id'];
$fault_time  = $_GET['fault_time'];
$token       = $_GET['token'];
$url_token   = '您自己的回调token';
 
//如果校验成功,则说明此消息为监控宝系统发出,否则为非法请求,不予处理
if (md5($msg_id . $task_id . $fault_time . $url_token) == $token) {
    ..........
}

以下是监控宝发起的POST方式URL回调请求:

POST http://domain/callback.php
POST: array(10) { ["msg_id"]=> string(9) "101407787" ["message_status"]=> string(1) "2" ["message_type"]=> string(1) "2" ["fault_time"]=> string(10) "1409803140" ["content"]=> string(144) "%E6%81%A2%E5%A4%8D%E5%91%8A%E8%AD%A6%E7%BA%BF%5B%E6%9C%80%E8%BF%915%E5%88%86%E9%92%9F%E5%B9%B3%E5%9D%87%E8%B4%9F%E8%BD%BD%E5%A4%A7%E4%BA%8E+1%5D" ["task_id"]=> string(6) "259197" ["task_type"]=> string(4) "load" ["task_summary"]=> string(16) "118.144.76.75(2)" ["token"]=> string(32) "e156828484b1c5c151a4db7dd4f3c666" ["message_detail"]=> string(64) "{"metric":"load_average_5","compare":"gt","value":"1","unit":""}" }

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

$msg_id      = $_POST['msg_id'];
$task_id     = $_POST['task_id'];
$fault_time  = $_POST['fault_time'];
$token       = $_POST['token'];
$url_token   = '您自己的回调token';
 
//如果校验成功,则说明此消息为监控宝系统发出,否则为非法请求,不予处理
if (md5($msg_id . $task_id . $fault_time . $url_token) == $token) {
    ..........
}

为了防止消息被非法重复请求您的回调URL,您可以通过验证具有唯一性的 msg_id 参数是否已经在您的存储(您处理过的消息)中即可判断是否为非法重复请求。

文档/url_callback.txt · 最后更改: 2014-09-04 12:27 由 productor
 
 
©2008 Another cool website by 80KV