Bob*_*oss 9 java system-monitoring
我希望能够从基于Java的系统内部监控我的主要系统健康指标.主要兴趣点包括CPU温度,主板温度,风扇速度等.
是否有可用的包:
你会发现最接近的是Hyperic Sigar库:
http://www.hyperic.com/products/sigar.html
它没有达到AFAIK的温度,但确实向您显示了许多本机属性,如CPU,内存,磁盘I/O,网络I/O等.它已移植到人们今天部署Java的大多数架构中.许可证是GPL,但我认为您也可以购买商业许可证.
我们使用Sigar和Terracotta进行集群监控,并对此非常满意.
我相信大多数此类事情通常是通过SNMP(专业系统)来完成的,这是以基于标准的方式提供此类信息的常用方法.JMX也可通过SNMP获得.那么问题就变成了,哪个是更好的Java SNMP库(你的系统是否支持它)?
Windows 和 Linux 都支持 MIB,它们通过 SNMP 公开您要查找的参数。此外,大多数主要供应商都为其服务器硬件发布了特殊的 MIB。
我已经使用商业iReasoning SNMP API实现了 SNMP MIB 和 Java 应用程序监控,并且效果非常好。还有开源的SNMP4J,我个人没有使用过,但看起来不错。
因此,根据您的需要,您可以为要监控的主机启用 SNMP 信息的发布。无需编码。这只是一个配置问题。
例如,对于 CPU 温度,您必须启用 MIB LM-SENSORS-MIB。在Linux下,您可以使用snmpwalk客户端查看OID .1.3.6.1.4.1.2021.13.16.2.1.3来查看CPU温度。一旦完成并且知道它正在正确发布数据,您就可以开始实施真正的监控解决方案。
您可以使用 Java SNMP 库来轮询和订阅要监视的主机的 SNMP 陷阱。您还可以使用任何商业或开源监控工具(Google for SNMP console)。