2008-09-22 67 views
9

我希望能夠從我們基於Java的系統內部監控我的主要系統健康指標。主要景點包括CPU溫度,主板溫度,風扇轉速等Java程序監控系統健康的最佳方式是什麼?

是否有可用的一個包:

  1. 使這類數據可用於Java?
  2. 適用於Windows或Linux或兩者兼而有之?
  3. 開放/免費/便宜?

回答

3

Windows和Linux均支持通過SNMP公開您正在查找的參數的MIB。此外,大多數主要供應商都爲其服務器硬件發佈了特殊的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控制檯)。

0

幾個月前,我找了一個這樣的圖書館,我發現沒有什麼有趣的。創建一個並非不可能,所以我建議這樣做。您可能需要訪問本機庫,使用JNA(它比JNI更容易)。首先在一個平臺上添加對幾件事的支持,然後開始添加對其他功能和平臺的支持。

與我們分享吧!人們會開始使用它,甚至可能有助於開發,很快你就會擁有一個全功能的Java系統監視庫。

+0

謝謝,我從來沒有聽說過JNA。 – 2008-09-22 19:59:06

-1

JMX + JNI = YourSolution

+2

這不是一個真正的答案。你有什麼具體的想法? – 2008-09-22 20:13:51

6

你會發現最接近的事是的Hyperic SIGAR庫:

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

它不踏踏實實地氣溫AFAIK但是告訴你一個數的CPU,內存,磁盤I/O,網絡I/O等本機統計數據。它被移植到目前部署Java的大多數架構中。許可證是GPL,但我認爲你也可以購買商業許可證。

我們使用Sigar和Terracotta進行集羣監控,並對此非常滿意。

+1

CPU溫度是我們特別需要的東西,所以這是一個主要限制。 – 2008-09-22 23:25:18

5

我相信大多數此類事情通常是通過SNMP(專業系統)完成的,這是以基於標準的方式提供這類信息的常用方法。 JMX也可以通過SNMP訪問。那麼問題就變成了,哪個更適合Java的SNMP庫(你的系統是否支持它)?