要先选对方向
从概念上来说,监控系统是很简单的:一个外部系统或一个系统群,主要工作就是监视其他系统是否出现问题。比如,监控系统会定期连接某台Web服务器以确保它能正常响应,如果出现问题则给管理员发送通知。虽然这听起来简单,但是现在的监控系统已经成为昂贵、复杂的软件系统,其中有很多系统的Agent(代理)大小已经超过了500MB,拥有专用的脚本语言,现货标价超过6万美元。
如果一个监控系统能够正确地实施部署,它会成为你最好的伙伴。它能在小故障演化成危机前通知管理员,并帮助架构师弄清对应于互操作性(interoperability)异常问题的模式。一个优秀的监控系统能够帮助负责安全的同事将所关注的事件关联起来,为网络运维中心员工展示带宽瓶颈所在,并从业务依赖的关键系统中提取数据,以便为管理层提供他们急需的高层可视化信息。一个优秀的监控系统能帮助用户支撑起服务级别协议(Service Level Agreement,SLA),甚至能在夜晚帮助用户按照预定步骤解决问题,而不用打扰任何人。优秀的监控系统能够帮助用户节约经费,在复杂环境下保持系统的稳定,并使所有人都能安心。
如果实施得不好,监控系统就会带来严重的破坏。拙劣的监控系统会在整晚如同狼那样嚎叫,不会让任何人睡好觉,从而导致没有人再会关注它。它会在用户安全方面的基础设施上安装后门,从其他项目中榨取时间和资源,并在健康检测的过程中,占用大量的网络资源拥堵用户的网络连接。拙劣的监控系统如同吸血鬼一般。
遗憾的是,第一次就选对方向,对于监控系统的部署来说,没有想象得那么容易。以我多年的经验,拙劣的监控系统不太可能存活到问题被修复的那一天。拙劣的监控系统成为所有人甚至是被监控系统的重担。在这种情境中,很容易明白为什么大企业和政府会雇佣专职的监控专家,并购买标价为6位数的软件,因为他们清楚,第一次就“选对方向”是非常重要的。
小型或中等规模的公司以及大学的环境会比较复杂,有可能比大企业还要复杂,但是他们明显不会那么奢侈,也不会拥有价格昂贵的工具和专业知识。面对他们分布在各地的校园和分支机构,部署一套精心构建的监控平台将会是一个挑战。但是,在过去的13年里,在花费了相当多的时间负责监控系统的构建和维护工作后,我想告诉各位读者,不仅“选对方向”是可能的,而且还可以是免费的,只不过需要几分辛勤、一些开源工具以及少许的想象力。