通常のJDKツールを使用してTomcatおよびJettyコンテナのリモート監視を設定するためのレシピ

すでに6年ほどJava開発者にインタビューしてきましたが、標準のJDKツールを使用してサーブレットコンテナでJVMの状態をリモートで監視できることを誰も知りません。

したがって、以下はこの素晴らしい機能をセットアップして使用する方法に関する段階的なレシピです





監視ツール








両方のソフトウェア製品は%JAVA_HOME%/ bin JDKにあり、JMXテクノロジーを使用します-Java Management Extensions



Tomcatのセットアップ






%CATALINA_HOME%は、Tomcatがインストールされているディレクトリです。



  1. CATALINA_HOME %/ confディレクトリで、フォームの内容を含むremote.users構成ファイルを作成します

    _1 _1 _2 _2
          
          





    選択したファイルに名前を付けることができます。 このファイルには、リモートモニタリングを実行する権限を持つ明示的な(残念ながら)ユーザーのログインとパスワードが含まれています。

    例:

     tartaren from_tarascon portos passwordportos
          
          





  2. CATALINA_HOME %/ confディレクトリで、フォームの内容を含むremote.acl構成ファイルを作成します

     _1 _ _2 _
          
          





    選択したファイルに名前を付けることができます。 アクセス-2つのreadwriteまたはreadonly定数のいずれか。

    例:

     tartaren readonly portos readwrite
          
          





  3. chmod 400 remote.users
  4. chmod 400 remote.acl
  5. chown tomcat:tomcat remote.users

    (ユーザーとTomcatグループは状況に応じて置き換える必要がある場合があります)
  6. chown tomcat:tomcat remote.acl

    (ユーザーとTomcatグループは状況に応じて置き換える必要がある場合があります)
  7. catalina.sh起動スクリプトを見つけます(通常は%CATALINA_HOME%/ binにあります
  8. 開始セクションの前のスクリプトで、コマンドを追加します。

     CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote.password.file=___remote.users -Dcom.sun.management.jmxremote.access.file=___remote.acl -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=_ -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=<b>IP_"
          
          





    IPアドレス-TomcatサーバーのIPアドレス。

    ポート番号 -TomcatサーバーがJConsoleまたはJVisualVMリクエストに応答するポート番号。

    例:

      * * * fi CATALINA_OPTS="$CATALINA_OPTS $JPDA_OPTS" shift fi CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote.password.file=/usr/share/apache-tomcat-7.0.22/conf/remote.users -Dcom.sun.management.jmxremote.access.file=/usr/share/apache-tomcat-7.0.22/conf/remote.acl -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=7777 -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=1.1.1.1" if [ "$1" = "debug" ] ; then if $os400; then echo "Debug command not available on OS400" exit 1 * * *
          
          





  9. パスワード認証を無効にする場合は、 -Dcom.sun.management.jmxremote.authenticate = falseCATALINA_OPTSパラメーターリストに追加します

  10. 設定とスクリプトの変更を有効にするには、通常の方法でTomcatを再起動する必要があります


桟橋のセットアップ






  1. 適切なディレクトリにファイルremote.usersおよびremote.acl (または任意の名前で)を作成します。
  2. chmod 400 remote.users
  3. chmod 400 remote.acl
  4. chown jetty:jetty remote.users

    (ユーザーと桟橋グループは状況に応じて交換する必要がある場合があります)
  5. chown桟橋:jetty remote.acl

    (ユーザーとTomcatグループは状況に応じて置き換える必要がある場合があります)
  6. ほとんどの場合、JettyはMavenと組み合わせて使用​​されます。 実行するには、 reboot.shスクリプトを作成します

     export MAVEN_OPTS="-Dcom.sun.management.jmxremote.password.file=/___/remote.users -Dcom.sun.management.jmxremote.access.file=/___/remote.acl -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=__ -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=IP_" mvn -P dev clean compile jetty:run
          
          





  7. chmod + x reboot.sh
  8. ./reboot.shで Jettyを実行(再起動)します




JConsole接続






  1. jconsoleを実行します
  2. 表示されるフォームで:


JConsoleは接続パラメーターを保存しないため、毎回入力する必要があります。

サーブレットコンテナで監視認証パスワードを無効にすると、 jconsole IP_OR_DOMAIN:PORT_NUMBERコマンドを使用して接続できます。



JVisualVM接続






  1. JVisualVMを実行する
  2. メニューから[ ファイル]-> [JMX接続の追加 ] 選択します
  3. 表示されるフォームで:
  4. 接続 -次の形式のポート番号を使用して、サーブレットコンテナのIPまたはドメイン名を入力します

    IP_OR_DOMAIN:ポート番号
  5. 希望がある場合-「daw」 表示名を有効にし、この接続に必要なエイリアスを入力します
  6. daw 有効にする
  7. [ユーザー名]フィールドと[ パスワード]フィールドに入力します
  8. オプション-「daw」を有効にするセキュリティ資格情報を保存する
  9. [OK]ボタンを押します
  10. 左側のツリーのリモート項目に、コンテナを含む新しいセクションが表示されます
  11. このコンテナを右クリックして、 開くを選択します



All Articles