ssh経由でjconsoleを利用する

tomcatの起動オプションに以下のパラメータを追加する。setenv.shを設定しているなら、以下のように記載するとオッケー

# setenv.shに追加
# JMX
CATALINA_OPTS="$CATALINA_OPTS -Djava.rmi.server.hostname=localhost "
CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote "
CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote=true "
CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote.port=8686 "
CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote.rmi.port=8686 "
CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote.authenticate=false "
CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote.ssl=false "
CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote.local.only=false "

次にクライアントからjconsoleでつなぐために、sshのポートフォワーディングを立ち上げる

# この場合は7777のポートで待ち受けしてmyoreserverにアクセスするということになります。
$ ssh -fND 7777 oreore@myoreserver

そして、jconsoleを以下のコマンド、パラメータで起動する。

$ jconsole -J-DsocksProxyHost=localhost -J-DsocksProxyPort=7777 service:jmx:rmi:///jndi/rmi://127.0.0.1:8686/jmxrmi -J-DsocksNonProxyHosts=
#JDK 8u60 +からは-J-DsocksNonProxyHosts=オプションを使用

これでJVMの状態が知覚的にバッチリ確認できます!!

コメントを残す

メールアドレスが公開されることはありません。

CAPTCHA