前言:
关于监控方面的回调,国内也有一些第三方的厂商在用,比如dnspod的url回调和监控宝的url回调!
webhook,gitlab是有个webhook,可以做自动测试。
曾经写过一调度系统,调用监控宝的多点监控,联合dnspod的api接口可以轻松的做到故障转移…. 可以处理当ip-A的web死掉的时候,dns记录切换到ip-B上。 当然这只是个小应用罢了。
所谓的URL回调功能,您可以让告警通知发送到您指定的URL,使你能更加灵活处理告警消息。 打个比方,有个服务器的nginx进程死掉了,这个时候nagios监控到了这个情况,然后调用了我这边的接口,我这边接到的post数据,不仅发邮件,而且会根据注册事件的情况,进行处理。 如果注册了一个远程nginx重启的事项,我这边就远程paramiko或者是saltstack过去重启该进程 !!!
关于监控回调的文章,原文地址 http://xiaorui.cc/?p=1867
我在新公司其实还有个场景可以用到,我们 的分布式爬虫各个组件都打成了docker,如果爬虫的队列太多,要超出redis的内存限制之前,就要动态的部署计算节点,用docker-py api 。 则会时候也特别的适用回调通知。
怎么个灵活法:
每个业务部门其实都想自己统计error情况,但是监控平台一般是在基础监控部门手里掌控者,不是很容易就能看到的。 这时候回调是个好方法。我会把每次告警的信息不仅推到你的mail和手机上,而且调用你给出的url地址做webhook。你服务端验证了我带着token的url,会有相应的措施,比如调用saltsatck客户端来进行处理,又或者进行业务逻辑动态的调整,或者各种数据的报表统计,总之根据我给的监控信息做自动化处理 。
关于触发式的处理:
只是个人的想法而已 ~
还需要做的事情是,回调的过滤,还有就是执行的逻辑越简单越好,不过滤的话,可能因为种种原因会造成大量的回调通知。
下面是我写的支持url回调的监控平台,开发语言是python,用到的框架tornado。
第一版的时候,没有定义post的方式,仅仅支持get请求。
第二版做了,支持get和post的方式,以及返回结果的验证。
我想说的是,现在好多公司的告警信息都没有做适当的统计,每天报警很是泛滥,还都随意的调用smtp发送邮件。个人觉得还是综合到一个管理系统下,管理系统更加直观。