我希望能够从基于Java的系统内部监控我的主要系统健康指标。主要兴趣点包括CPU温度,主板温度,风扇速度等。
是否有可用的包:
答案 0 :(得分:6)
你会发现最接近的是Hyperic Sigar库:
http://www.hyperic.com/products/sigar.html
它没有达到AFAIK的温度,但确实向您显示了许多本机属性,如CPU,内存,磁盘I / O,网络I / O等。它被移植到人们正在部署Java的大多数架构上今天。许可证是GPL,但我认为您也可以购买商业许可证。
我们使用Sigar和Terracotta进行集群监控,对此非常满意。
答案 1 :(得分:5)
我相信大多数此类事情通常通过SNMP(专业系统)完成,这是以基于标准的方式提供此类信息的常用方法。 JMX也可通过SNMP获得。那么问题就变成了,哪个是更好的Java SNMP库(你的系统是否支持它)?
答案 2 :(得分:4)
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 )。
答案 3 :(得分:0)
几个月前,我找了一个这样的图书馆,我发现没有什么有趣的。创建一个并非不可能,所以我建议这样做。您可能需要访问本机库,使用JNA(比JNI更容易)。首先在一个平台上添加对一些内容的支持,然后开始添加对其他功能和平台的支持。
与我们分享!人们将开始使用它,甚至可能帮助开发,很快你就会拥有一个功能齐全的Java系统监控库。
答案 4 :(得分:-1)
JMX + JNI = YourSolution