Hyperic资源可用性的认识

 在Hyperic中,有一个重要的指标是“可用性”,开始接触时总有些迷惑,这到底是什么,如何获得的?按可用性判断一个资源的状态是否满足我们的需求?

分析几个常用的使用场景:

1,平台可用性。通常Hyperic 在每个被监控的平台(Linux,Windows,iOS)上部署Hyperic Agent. 如果Hyperic Agent能返回任何数据,即认为该平台可用。而我们一般认为,如果能ping通该机器,才认为是可用的,这需要新建一个“ping”服务,轮询该主机。

2,SQL Server的可用性。Hyperic根据SQL Server服务的状态判断该SQL Server是否可用。即使该SQL Servver不能接收客户的请求,有时也是可用的。这往往需要新建一个“SQL”服务,定期连接数据库并发出一个查询请求,根据返回结果判断是否可用,然后根据结果生成报警等。

3,Weblogic的可用性。Hyperic Agent通过JMX采集Weblogic监控数据,包括JVM 堆大小,可用堆大小,线程池,JDBC连接池,EJB,Servlet等指标。其可用性等指标不适合用来判断是否可继续提供服务。可以通过新建 “http服务”定期访问指定的url,根据返回结果判断是否可用。

4,对于一些其他应用,例如COM+等,就需要特殊的Hyperic 插件定期访问。

总结,判断一个资源是否可用,常常应按照用户体验的原则,定期访问一下这个资源,而不只根据该资源自身的一些指标数据来判断。