私は現在インターンシップを行っているコンピューター サイエンスの学生です。上司から、Tomcat サーバーを監視するための簡単なツールを作成するように依頼されました。私はこのプロジェクトを始めたばかりなので、基本的には物事がどのように機能するかを見て回っているだけです. いくつかの基本的な JMX クエリの結果を表示する単純な jsp ページを作成したいと考えています。Eclipse IDE を使用しています。誰かが始めるためのヒントを教えてもらえますか?
2 に答える
ここで車輪を再発明する必要はありません。jconsole
JDK に同梱されているから開始できます。実行するだけで、(ローカルで) 実行中のプロセスjconsole [pid]
にjconsole
接続し、JMX 経由ですべてを監視できます。
JMX で公開された情報へのリモート アクセスが必要な場合は、Tomcat のmanager
webapp と付属のjmxproxy
サーブレットを使用して、単純なクエリをリモートで実行して JMX プロパティを取得 (および設定) できます。
Jolokia ( http://www.jolokia.org/ )など、同様のことを行う、より完全な機能を備えたプロジェクトが他にもあります。
Nagios のようなものを使用して Tomcat インスタンスを自動的に監視していると仮定すると、JVM をスピンアップし、リモート (またはローカル) JMX 接続を確立して単一の JMX プロパティを検査する (そして、それを 5 回行って 5 つの異なる特性を観察し、次にこれらの 5 つのサンプルを 5 分ごと、または 1 分ごとなどに行います)。代わりに、上記のようなプロキシを使用することをお勧めします。
Nagios と Tomcat マネージャーのjmxproxy
サーブレットを結合することで大きな成功を収めました。かなり長い間、あなたのニーズに応えてくれるでしょう。
JMX をプログラムで使用するという点では、多くのクライアント クラスがあります。これが私のSimpleJMXプロジェクトです。これにより、JmxClient
オブジェクトを使用してリモート JVM に接続し、問い合わせることができます。
JmxClient client = new JmxClient("remote.sever.name", remotePortNumber);
Set<ObjectName> objectNameSet = client.getBeanNames();
...
JmxClient の javadoc は次のとおりです。