论文部分内容阅读
随着IT技术的发展,应用服务环境越来越复杂,网络服务种类越来越多,服务架构常常呈全国甚至全球范围内的地理分布,怎样保持核心业务系统正常运转已经成为IT运维人员面临的一个重大命题,有效监测这些网络服务的可用性和性能已经变得十分迫切。
在CADLIS这样复杂的分布式应用服务体系中,很多网络服务作为普通的web应用是由不同厂商开发的,本身不支持JMX等协议,所在服务器出于安全原因大都也关闭了SNMP和Telnet协议,我们也没有权限在服务器上安装代理。如何对于CADLIS环境中的包括上述类型在内的各种网络服务进行有效监控,是本文的研究重点。
本文旨在解决上述环境中网络服务的监测问题,不需对网络服务本身以及网络服务所在服务器做任何的改动而能对这些网络服务进行监测,提供网络服务的可用性和性能报告,分析网络服务故障原因,以便及时隔离故障,恢复网络服务,提高用户满意度。
传统的解决方案基本上都是通过安装代理或远程登录的方式来获得网络服务的性能数据,这些方案能通过操作系统执行各种数据收集任务和管理策略,但是这些方案需要网络服务所在服务器的管理权,而且这些方案在一定程度上降低了服务器的性能和系统安全性,在部署时也增加了一定的复杂性。
本文提出的设计方案虽然监测的性能参数个数没有传统解决方案的多,精确度没有传统解决方案的高,但是它克服了传统解决方案的缺点,而且监测数据在一定程度上更贴近用户体验。本文提出的设计方案只需网络服务的访问权不需管理权,它不需要在网络服务所在的服务器上安装代理和打开远程访问端口,就能对网络服务进行监测。虽然它不能提供各种各样的性能参数,但是能提供系统管理人员最关心的三个参数:可用性、响应时间和出错原因。虽然它的监测参数可能受网络因素的影响,但是在一定程度上反而更贴近用户的真实体验。
本文提出的设计方案主要包含三点:基于内容的网络服务监测方法、可扩展的网络服务监测引擎框架、网络服务监测的分布式架构。
基于内容的网络服务监测引擎不仅仅对OSI参考模型中第4层传输层进行探测,而且实际去访问服务的内容,从第7层应用层上对服务的可用性做出评测,通过具体网络服务返回的内容和预先设定的匹配内容进行比较,从而对服务的可用性做出判断,减少误报率、保证网络服务监测的正确性。监测引擎还通过记录网络服务响应时间来得到性能数据,以便对网络服务当前性能有一个清晰的了解,并为系统进一步利用性能数据做性能预警打下基础。当网络服务失败时,系统能报告出错原因,以便IT运维人员能迅速定位故障原因排除故障。本文提出的网络服务监测引擎是可扩展的。为了方便IT运维人员迅速建立网络服务监测体系,系统内置了常见网络服务的监测引擎,为了提高系统的适用性,本系统支持网络服务监测引擎的扩展,允许用户自定义网络服务的监测方式(只监测第四层还是监测第七层)、协议命令和匹配内容,从而可以生成内置网络服务监测引擎以外的监测引擎种类。
本文提出的网络服务监测支持分布式架构。每个监测站点都可以设成Slave模式或Master模式,也可以身兼Slave和Master两职。slave站点可以把自己的监测数据向自己的Master站点报告,而Master站点可以接受来自于自己的Slave站点的监测数据。这种灵活的分布式架构不仅使集中监测遍布全省或全国的大型网络服务提供体系成为可能,还可以实现网络服务监测任务的负载分担,以便把数量巨大的网络服务监测任务分配到多台计算能力相对较小的服务器上,有利于节省成本。