【问题标题】:What is the best way for a Java program to monitor system health? [closed]Java 程序监控系统运行状况的最佳方式是什么? [关闭]
【发布时间】:2008-09-22 19:40:58
【问题描述】:

我希望能够从我们基于 Java 的系统内部监控我的主要系统健康指标。主要关注点包括CPU温度、主板温度、风扇转速等。

是否有可用的软件包:

  1. 使此类数据可用于 Java?
  2. 适用于 Windows 或 Linux 或两者?
  3. 开放/免费/便宜吗?

【问题讨论】:

    标签: java system-monitoring


    【解决方案1】:

    您会找到最接近的东西是 Hyperic Sigar 库:

    http://www.hyperic.com/products/sigar.html

    它不会降低温度 AFAIK,但会显示一些本机统计数据,如 CPU、内存、磁盘 I/O、网络 I/O 等。它已移植到人们部署 Java 的大多数架构今天。许可证是 GPL,尽管我认为您也可以购买商业许可证。

    我们使用 Sigar 和 Terracotta 进行集群监控,并且对它非常满意。

    【讨论】:

    • CPU 温度是我们特别需要的,因此这是一个主要限制。
    【解决方案2】:

    我相信大多数此类事情通常通过 SNMP(用于专业系统)完成,这是以基于标准的方式提供此类信息的常用方法。 JMX 也可通过 SNMP 获得。那么问题就变成了,哪些是更好的 Java SNMP 库(您的系统是否支持它)?

    【讨论】:

      【解决方案3】:

      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 控制台)。

      【讨论】:

        【解决方案4】:

        几个月前,我寻找这样的图书馆,但没有发现任何有趣的东西。创建一个并非不可能,因此我建议您这样做。您可能需要访问本机库,使用 JNA(它比 JNI 更容易)来做到这一点。首先在一个平台上添加对一些东西的支持,然后再开始添加对其他功能和平台的支持。

        与我们分享吧!人们会开始使用它,甚至可能会帮助开发,很快你就会拥有一个功能齐全的 Java 系统监控库。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-01-03
          • 1970-01-01
          • 2010-09-09
          • 2015-01-04
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多