jconsoleを起動できたら、監視対象のアプリケーションに接続します。
接続には、以下の情報が必要です。
接続先サーバのホスト名(またはIPアドレス)
アプリケーションに割り当てられたポート番号
ユーザ名とパスワード
参考
ローカル環境で動作する、単独のJavaアプリケーションに接続する場合
接続先サーバのホスト名とポート番号の入力や、パスワード認証は必要ありません。[jconsole:新規接続]のダイアログに表示される[ローカルプロセス]のなかから、接続したいプロセスを選んで[接続]ボタンを押せば接続できます。
参考
単独で動作するJavaアプリケーションへの接続にユーザ名とパスワード
監視対象のJavaプロセスでシステムプロパティcom.sun.management.jmxremote.authenticateをtrueに設定した場合、コンソール機能から接続する際に、パスワード認証が必要になります。
詳しくは、JDKドキュメントの「監視および管理」から「JMX を使用する監視と管理」を参照してください。
jconsoleコマンドを実行すると[Jconsole:新規接続]というダイアログボックスが表示されます。
jconsole画面のメニューバーから[接続]>[新規接続]を選んでも同じダイアログボックスを表示できます。
ダイアログボックスに次の情報を入力します。
入力項目名 | 入力情報 |
---|---|
リモートプロセス(R): | 接続するリモートプロセスのアドレスです。指定の方法は2つあります。詳細は「リモートプロセスのアドレス指定方法」を参照してください。 |
ユーザ名(U): | 接続の際、認証の必要がある場合のユーザ名です。詳細は「使用するユーザ名とパスワード」を参照してください。 |
パスワード(P): | ユーザ名に対応するパスワードです。詳細は「使用するユーザ名とパスワード」を参照してください。 |
参考
リモートプロセスのアドレス指定方法
リモートプロセスのアドレス指定には、2つの方法があります。
ホスト名:ポート番号
接続先サーバのホスト名と接続先コンテナに割り当てられたポート番号によるアドレスの指定方法です。
ホスト名“www.my.host.com”、ポート番号“38686”とした場合の例を示します。
www.my.host.com:38686
接続先サーバのホスト名の変わりにIPアドレスを使用することも可能です。
IPアドレス“192.168.1.2”、ポート番号“38686”とした場合の例を示します。
192.168.1.2:38686
JMX URL
JMXエージェントを接続先として指定する方法です。
以下の形式で入力します。
service:jmx:rmi:///jndi/rmi://ホスト名:ポート番号/jmxrmi
ホスト名:ポート番号以外は固定です。
英字部分は、すべて小文字で入力する必要があります。
ホスト名:ポート番号は、“ホスト名:ポート番号”で説明した形式で指定します。
注意
接続時、jconsoleの出力ウィンドウが表示された場合
接続時、Java監視機能がエラーを検出するとjconsoleの出力ウィンドウを表示する場合があります。
jconsoleの出力ウィンドウには、エラーを検出した際のException名、エラーメッセージ、Exception発生時のスタックトレースを表示します。
メッセージの意味、必要な対処は“A.5.12 メッセージ”を参照してください。
注意
Linux上で動作するJavaプロセスに接続できない場合
Linux上で動作する監視対象のJavaプロセスへのリモート接続に失敗する場合、Linux上で次の確認を行ってください。
ローカルホスト名からIPアドレスへの変換が正しく行われているか
ローカルホスト名からIPアドレスへの変換が正しく行われているかの確認は、例として、次のコマンドの実行結果から確認することができます。
hostname -i
コマンド実行の結果として“127.0.0.1”が返された場合、ローカルホスト名からIPアドレスへの変換が正しく行われていないため接続に失敗していると考えられます。
/etc/hostsファイルの編集やDNSサーバの設定等で、正しくIPアドレスが解決できるよう、システムの設定を行ってください。
Java監視機能で使用するポートがアクセス許可されているか
ファイアーウォール等でJava監視のために用いるポートが塞がれている(アクセス許可されていない)場合は、コンソール機能がそのポートにアクセスできるように許可してください。
ポートへのアクセス許可は、例として、次のコマンドを実行することで行えます。
iptablesを使用している場合
/usr/sbin/iptables -I INPUT -s jconsole-host -p tcp -d jmxremote-host -j ACCEPT |
firewalldを使用している場合(RHEL7)
/usr/bin/firewall-cmd --zone=target-zone --add-rich-rule='rule family="ipv4" source address=jconsole-host accept' |
ただし、ポートを開ける際には、十分セキュリティ上のリスクを考慮してください。