JConsoleを使ってリモートのTomcatプロセスを監視する方法を紹介します。
自宅などの安全な環境での利用を想定しています。
Tomcatを設定する
Tomcat/bin/setenv.shに以下の設定を追加します。実際は改行せずに各パラメータを半角スペースで区切って入力します。
JAVA_OPTS="$JAVA_OPTS
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=8111
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false"
各パラメータの意味は次の通りです。
- -Dcom.sun.management.jmxremote:機能を有効にします。
- -Dcom.sun.management.jmxremote.port=8111:ポート8111でJConsoleからの接続を待ち受けます。
- -Dcom.sun.management.jmxremote.authenticate=false:認証機能をオフにします。
- -Dcom.sun.management.jmxremote.ssl=false:SSLをオフにします。
設定を追加したらTomcatを再起動しておきます。
ファイアウォールを設定する
ファイアウォールでは次のポートが使用できるようにします。
- 指定したポート
- 指定したポートから65535までのポート
$ firewall-cmd --add-port=8111-65535/tcp --permanent
success
$ firewall-cmd --reload
success
JConsoleから接続する
設定が完了したら早速JConsoleから接続します。
リモートプロセスに「IPアドレス:指定したポート」と入力して、接続ボタンをクリックします。この時、ユーザ名とパスワードは未入力で構いません。
Tomcatに接続できない時は?
JConsoleの接続を待ち受けているか確認する
指定したポートで接続待ちとなっているか確認しましょう。
$ ss -ltpn | grep 8111
LISTEN 0 50 0.0.0.0:8111 0.0.0.0:* users:(("jsvc",pid=463379,fd=13))
ファイアウォールの設定が正しいか確認する
ファイアウォールで使用するポートがブロックされていないか確認しましょう。
$ firewall-cmd --list-port
22/tcp 80/tcp 161/tcp 161/udp 443/tcp 8111-65535/tcp
コメント