在生产环境中安装了基于Windows的应用之后通常都需要采用某种程度的看护(监控)措施监控系统服务应用程序和网络的产品之多是非常惊人的幸运的是(或许是不幸的是)某些基于微软的服务和应用都有非常具体的监控要求这样就自己缩小了可以选择的监控工具范围
NetIQ公司的AppManager Suite(应用程序管理器套装软件)微软的操作系统管理器 (MOM)VitalSuiteSiteScope当然还有惠普的OpenView 和IBM的Tivoli 等都是目前可以使用的一些商品化的产品在本文中我们将介绍微软的解决方案(MOM)和NetIQ公司的AppManager因为这两个软件在技术上关系密切而且广泛应用于在Windows应用环境中
MOM与NetIQ以及其它产品的关系
NetIQ与微软既是合作伙伴也是竞争对手微软在年购买了NetIQ公司的AppManager Suite源代码的许可证微软的MOM就是根据NetIQ的技术制作的MOM 和MOM 工作组版(之前称为MOM Express)是微软正在实施的动态系统管理计划(Dynamic Systems Initiative/DSI)的一部分动态系统计划是微软长期的系统管理战略MOM 工作组版适用于配置台以下服务器的站点
NetIQ中的MSMQ监视
NetIQ提供了一个把NetIQ扩展到MOM的XMP (扩展管理包)使MOM 的用户能够管理在NT Unix和Linux等平台上运行的非微软应用程序这是非常有用的因为MOM最大的缺陷之一是它把监测的内容局限在微软家族里而且在没有连接器的情况下就不监视非微软的应用程序如思科CitrixLotus Notes或者甲骨文的应用程序幸运的是在MOM功能包中含有适用于MOM 的MOM连接器框架 (MCF)MOM 完整版也包含这个功能Veritas和惠普等许多第三方软件和硬件厂商都为自己的产品提供连接器
如果你的预算不足以应付这些价格很高的商业性产品或者如网络连接正常运行时间CPU内存和磁盘使用等基本的监视正是你的Windows系统所需要的那么Nagios或者Zabbix等开源软件解决方案可能会满足这些需求
但是对于执行重要任务的Windows应用程序和服务来说开源软件解决方案有时候还不适合监视这些环境 监视活动目录ExchangeIIS或者SQL服务器需要一些开源软件解决方案不能安装好就立刻提供的非常具体的功能甚至Nagios也需要一些与Windows服务器沟通的代理机制以便监控和应答Windows事件记录与服务失败的情况对这些活动的监测对基于windows的应用来说是非常基本的要求
基于Windows的分布式应用程序是问题儿童?
对于许多机构来说特别重要的是监控使用NETCOM+MTSMSMQ以及其它无法使用开源软件解决方案进行监控的基于Windows的分布式应用程序
NetIQ公司的AppManager是用于监控基于Windows的分布式应用程序的最主要的商业性产品之一AppManager能够监控一些不易监测的项目如MSMQ 入网消息数率(Incoming Message Rate)活动队列字节(Active Queue Bytes)和活动队列消息(Active Queue Messages)或者COM+反应时间等处理内存使用率是在基于Windows的应用中经常需要监控的另一个普通项目对于监控含糊不清的COM计数器来说微软首选支持服务(Microsoft Premier Support)提供了一个名为COMPSTAT的dll(动态链接库)这个动态链接库能够显示高级的性能计算器这样这些数据就能够像在其它的性能监控计数器中一样由NetIQ软件处理微软显然有一些这种类型的动态链接库
COMPSTAT显示额外的COM计数器
作为基于Windows的应用程序环境的一种监控工具NetIQ AppManager有一些非常有用的功能这些功能之一是为基于Windows的集群设置资源依赖脚本当使用一个集群的两个节点时它能够自动防止监控工作在一个停用的集群节点上运行这样就不会产生错误的报警如果出现故障转移NetIQ能够自动转换到正在使用的节点
维护模式同样是一种有用的功能当一个系统处于维护模式时监控脚本不会在这个系统上运行这对于按计划的关机和重新启动是很有用的因为它不会产生错误的报警
AppManager还使用知识脚本组的概念那是一组监控脚本可用于同样类型的服务器这能够使管理和执行监控脚本更加容易使那些脚本更容易编辑
NetIQ 知识脚本组
会见临时保姆
如果你正在为基于Windows的系统和应用程序选择一个监控解决方案显然有很多事情需要考虑
由于定制的脚本经常包含在监控解决方案中你需要查明每个产品使用什么类型的脚本语言例如NetIQ使用VBScript在坚持SLA(服务水平协议)的同时你要评估导致在你的环境中造成系统或者应用程序故障的最常见的问题为了服务水平协议和其它目的你需要系统采取什么样的发展趋势和报告?根据对现有设备需求的日益增长你是否需要说明购买新设备是合理的?根据你的具体需求哪一种产品能够提供开箱即用的功能?这个解决方案包含了多少定制的脚本或者扩展以及这类脚本难度有多大成本是多少?如果这个解决方案要在公司范围内应用它如何适应你的环境?
总之关于监控解决方案的最佳忠告是聪明地计划并且尽可能使事情简单一些对于监控的东西和搜集的数据要加小心认真计划你的数据保持和报告需求如果你收集很多性能数据并且要把这些数据保留很长时间数据库很快就会变得非常庞大你还要少发一些警报警报的数量会增加得很快特别是在你监控大量的服务器的时候最开始的时候一般是发送很多你不需要的警报
如果你的职责是选择一个监控解决方案你要认真评估现有的工具如果这个工具不能完成任务那么你将花费更多的时间艰难地制作自己的工具