Javaベースのシステム内から主要なシステムヘルスインジケーターを監視できるようにしたいと思います。主な関心事には、CPU温度、マザーボード温度、ファン速度などがあります。
次のようなパッケージはありますか?
- この種のデータをJavaで利用できるようにしますか?
- WindowsまたはLinux、あるいはその両方で動作しますか?
- オープン/無料/安いですか?
Javaベースのシステム内から主要なシステムヘルスインジケーターを監視できるようにしたいと思います。主な関心事には、CPU温度、マザーボード温度、ファン速度などがあります。
次のようなパッケージはありますか?
最も近いものは、HypericSigarライブラリです。
http://www.hyperic.com/products/sigar.html
AFAIKの温度には達しませんが、CPU、メモリ、ディスクI / O、ネットワークI / Oなどの多くのネイティブ統計が表示されます。これは、今日Javaを展開しているほとんどのアーキテクチャに移植されています。ライセンスはGPLですが、商用ライセンスも購入できると思います。
クラスターの監視にはテラコッタ付きのSigarを使用しており、非常に満足しています。
私は、この種のことのほとんどは通常、SNMP (プロのシステムの場合) を介して行われると信じています。これは、この種の情報を標準ベースの方法で利用できるようにする通常の方法です。JMX は SNMP 経由でも利用できます。次に問題になるのは、Java 用のより優れた SNMP ライブラリはどれか (そして、システムはそれをサポートしていますか) ということです。
SNMP 経由で探しているパラメーターを公開する Windows と Linux の両方でサポートされている MIB があります。また、ほとんどの主要ベンダーは、サーバー ハードウェア用に特別な MIB を公開しています。
商用のiReasoning SNMP APIを使用して Java アプリケーションの SNMP MIB と監視を実装しましたが、うまく機能しました。オープンソースの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 ) を使用することもできます。
数か月前、私はそのようなライブラリを探しましたが、興味深いものは何も見つかりませんでした。作成することは不可能ではないので、作成することをお勧めします。おそらく、 JNAを使用してネイティブ ライブラリにアクセスする必要があります(JNI よりも簡単です)。1 つのプラットフォームにいくつかのサポートを追加することから始めてから、他の機能やプラットフォームのサポートを追加し始めます。
私たちと共有してください!人々はそれを使い始め、開発の助けになるかもしれません。間もなく Java 用の完全な機能を備えたシステム監視ライブラリが完成するでしょう。