带你撸出一手好代码
系统可用性监控工具

开发这个工具的初衷是因为自己工作的需要, 我的工作涉及到管理和维护许多网站和Web服务, 这些系统在线上跑,隔三差五总要出点故障,我们事先通常无法得知故障发生,而是需要通过用户反馈, 这很不好, 也许在我们知道这个故障前, 已经有很多用户受到了影响,那个反馈的用户不会是第一个受到影响的用户。


我们急需一种机制,可以迅速的监听到我们的系统发生的故障和引起这些故障的原因,一般包括网站突然无法访问或者访问出错、网站的数据库连接失败、服务器上的进程突然挂掉等问题。 如果这种机制能迅速监听到这些问题,并通知相关人员及时处理解决,那么将很大范围的缩小受影响的用户范围。


这套系统就是为了解决这个问题而被开发出来的。


系统在早期是为了解决我们部门的一个需求,也就是前面提到的迅速发现问题的机制。但是这个项目的开发并不成功,虽然开发完成了,但最终的成果并不好用, 系统也没有实际投入使用,问题没有被解决,后来这个事情就被搁置了。


之后我觉得有必要解决这个悬而未决的问题,于是我重新规划了这套系统的设计,去除之前需求中一些虚无缥缈华丽且实际意义不明显的功能,增强了基础常用的功能,改变技术架构,推倒重来,完全实现一套全新的系统。


对于这套系统, 我并没有把它纳入公司的项目,开发期间也没有占用公司的资源,因为我觉得这套系统解决的问题并不仅仅是我们公司的业务需求,它是存在于挨踢互联网行业的一个广泛性的问题, 我打算开源这套系统,因此也没好意思让同事帮忙,也不能占用工作时间来开发。


这套系统的运行原理很简单,在服务器上运行一个程序, 定时,一般是三十秒,检测服务器的进程、数据库连接、模拟http请求判断返回的状态码, 一旦发现异常,就往事先设定的电子邮箱发送一封邮件告警,通知相关人员及时处理。 在这个基础上, 再做进一步的功能扩展。


更多细节请移步至此工具的主页https://www.chhblog.com/html/server_monitor/doc/doc.html


作者:陈大侠
日期:2018-02-04

留言(0条)

我要发表留言

您的大名 选填
电子邮箱 选填

欢迎关注微信公众号 「带你撸出一手好代码」

首页    GitHub 知乎 豆瓣 博客园