前言:mysql
这个国内也有一些第三方的厂商在用,好比dnspod的url回调和监控宝的url回调!jquery
有人开源了一个脚本,监控宝的url回调,能够联合dnspod的api接口。能够处理当ip-A的web死掉的时候,dns记录切换到ip-B上。 固然这只是个小应用罢了,但不能不说,这个想法确实不错。 我这边也实现了相似方式。ios
所谓的URL回调功能,您可让告警通知发送到您指定的URL,使你能更加灵活处理告警消息。 打个比方,有个服务器的nginx进程死掉了,这个时候nagios监控到了这个状况,而后调用了我这边的接口,我这边接到的post数据,不只发邮件,并且会根据注册事件的状况,进行处理。 若是注册了一个远程nginx重启的事项,我这边就远程paramiko或者是saltstack过去重启该进程 !!!nginx
怎么个灵活法:
web
每一个业务部门其实都想本身统计error状况,可是监控平台通常是在基础监控部门手里掌控者,又不太方便作部署,这个时候,url回调是个好方法。我会把每次告警的信息不只推到你的mail和手机上,并且会给你的url地址作webhook。你服务端接受认证后的url地址后,会有相应的措施,好比调用saltsatck来进行处理特定的主机,好比插入到库里面,本身作报表统计,根据来着的信息作自动化处理。sql
关于触发式的处理:
api
只是我的的想法而已 ~服务器
在监控系统的体系下,好比有nagios,zabbix专业监控系统。 我们仍是用例子说话: 监控mysql从是否高延迟,严重不一样步问题的时候,我们通常是在nagios里加载监控获取判断从延迟的脚本,以及在某个节点上作处理脚本【脚本的内容是 while get 每一个mysql从状况,高延迟的那台在负载群里面踢出去】,这样算的话是两个脚本了。
框架
若是利用url回调,能够用处理脚本,这个脚本也只是当触发url回调的时候,才执行才处理的。避免了处理脚本没完没了的去判断和获取状态。要是监控一些统计压力大的服务,那就有点悲催了。ide
固然这样也会有些问题的,好比web死掉的话,他没法接受url回调,另外一方面 开发部也不想调用系统层面的外部命令,毕竟责任是个问题。
下面是我写的url回调的demo,等有机会上线供大神们测试下。
初版的时候,没有定义post的方式,以及回调结果的查看。
第二版作了,get和post的方式,返回结果的验证。
下面是平台的demo ~ 我想说的是,如今好多公司的告警信息都没有统计,随意的调用smtp发邮件,而不知道发送成功了没有,每月发送了几回,发送都是啥内容。固然这些东西在nagios zabbix也大致能够看到,可是我的以为仍是综合到一个管理系统下,管理系统更加直观。
也有想这么搞的朋友直接提问题就行,我会第一时间给你们解答~
框架:
nginx tornado jquery
此文接上文: http://rfyiamcool.blog.51cto.com/1030776/1332160
有后文,会补上的~