1.6 监视端口与监视应用
在本章1.2节中,我们对监控Web服务器的冗余插件进行了简短的讨论。一个插件用于连接Web服务器的80端口,而另外一个插件则尝试登录该服务器上的网站。后者所做的检测就是我们有时称作“端到端”(End to End,E2E)的检测,或是应用层监控。E2E监控所使用的监控服务方式与用户访问方式相同。对于邮件服务器监控而言,E2E方式的监控应当通过系统发送一封邮件,而非直接监控25端口。对CIFS的监控也一样,E2E的监控应当是尝试挂载共享驱动器,而非监控CIFS所需进程是否运行正常等。
尽管每个E2E插件会带来更多额外的开销,但是它能够通过替代多个传统插件以降低负载。如对Web应用程序进行监控的插件可能需要检测Web发布的端口状态、数据库服务状态、应用服务器可用性等,这些都可以通过一个能够登录Web站点并发出一个查询的插件所替代。相比于传统插件,E2E插件更趋向于智能。这就是说,与单独监视可能的故障点相比,它们通过解释使用服务的测试结果来捕捉更多的问题。比如,E2E插件能够通过对网站内容的解析发现访问权限的问题,而端口监视则不会发现这样的问题。
有时E2E会很有帮助,但是有时也可能不会。虽然E2E在检测上得了高分,但是却在分辨率上败下阵来。我的意思是,通过E2E检测,虽然知道了哪里存在问题,但是却不知道哪里真正出了问题,更糟糕的是,问题可能与系统完全无关。比如,使用E2E插件监视邮件系统时,检测到了一个事件并发送了通知,最后查明该事件是由DNS故障导致,因为邮件服务器无法进行MX查询,所以无法发送邮件。这使得E2E插件容易产生误报,所以对它们的使用应当小心谨慎。
而对于银行管理层而言,无论根本原因是什么都希望得到通知,因为一些无关的基础设施存在的问题常常会影响负责资金转移的系统。E2E擅长在意料之外的地方捕捉故障,如果用在故障检测特别关键的系统上,会成为用户真正的救星。这也是为什么要在一开始就确定关键系统的原因。
对于商业监控系统而言,采用E2E方式监控的脚步是缓慢的,因为很难预测用户的需求是什么,这使得开发一站式的Agent软件也非常困难。在与同类应用层监控系统对比之后,Nagios胜出。无须猜测用户如何监控自己的环境,因为扩展它的功能是相当简单的事情。我将会在第2章中讨论更多有关插件及其工作机制的内容。