<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    jinfeng_wang

    G-G-S,D-D-U!

    BlogJava 首頁 新隨筆 聯系 聚合 管理
      400 Posts :: 0 Stories :: 296 Comments :: 0 Trackbacks
    http://java.sun.com/j2se/1.5.0/ja/docs/ja/guide/management/agent.html#remote


    JMX を使用する監視と管理

    Java 仮想マシン (JVM) には、JMX を使って JVM の監視と管理を可能にする機能が組み込まれています。また、実裝されたアプリケーションを JMX で監視することもできます。

    システムプロパティの設定

    JMX エージェントを有効にして、動作を設定するには、JVM を起動するときに特定のシステムプロパティを設定する必要があります。コマンド行上で次のようにシステムプロパティを設定します。

    java -Dproperty=value ...

    この方法で任意の數のシステムプロパティを設定できます。値を指定しない場合、デフォルト値で設定されます。JMX 管理プロパティのフルセットは、表 1 に記載されています。JMX 管理および監視プロパティに記載したように設定ファイルでシステムプロパティを設定することもできます。

    :java (Java VM) をコマンド行から実行するには、JRE_HOME/bin をパスに追加する必要があります。ここで JRE_HOME は、JRE (Java Runtime Environment) を含むディレクトリです。代わりにコマンドを入力するときにフルパスを入力することもできます。

    以下のドキュメントは、Java HotSpot VM によってサポートされている構文とコマンド行オプションのフルセットについて説明しています。

    JMX エージェントの有効化

    JMX によって Java プラットフォームを監視するには、以下の手順に従ってください。

    1. JVM を起動するときに JMX エージェント (MBean サーバ) を有効にします。以下に対して JMX エージェントを有効にすることができます。
      • ローカル監視 - ローカルシステムで動作するクライアント管理アプリケーション用。
      • リモート監視 - リモートシステムで動作するクライアント管理アプリケーション用。
    2. JVM を jconsole などの JMX 準拠のツールで監視します。詳細は、「jconsole の使用」を參照してください。

    ローカルの監視と管理

    ローカルアクセスに対して JMX エージェントを有効にするには、JVM または Java アプリケーションを起動するときにこのシステムプロパティを設定します。

    com.sun.management.jmxremote

    このプロパティを設定することにより、JVM 実裝 MBean を登録し、RMI コネクタを専用インタフェース経由で公開して、JMX クライアントアプリケーションがローカルの Java プラットフォーム、すなわち、同一マシン上で動作する JVM を監視できるようにします。

    たとえば、サンプルアプリケーションの Notepad 用の JMX エージェントは、以下のようにして有効にします。

    cd JDK_HOME/demo/jfc/Notepad
    java -Dcom.sun.management.jmxremote -jar Notepad.jar

    ここで、JDK_HOME は、JDK がインストールされているディレクトリです。

    jconsole の使用

    jconsole によるローカルの監視は、開発およびプロトタイプ作成に便利です。jconsole 自體がかなりのシステムリソースを消費するため、jconsole をローカルで実稼働環境に使用することはお勧めしません。それよりは、jconsole をリモートシステムで使用して、監視されるプラットフォームから分離してください。

    コマンドシェルで jconsole と入力して、jconsole を起動します。引數なしで jconsole を起動する場合、jconsole は自動的にすべてのローカル Java アプリケーションを検出し、監視したいアプリケーションを選択できるダイアログボックスを表示します。システムの監視には、オペレーティングシステムのファイルアクセス権が必要であるため、jconsole とアプリケーションは両方とも、同じユーザ名で実行する必要があります。

    :jconsole をコマンド行から実行するには、JAVA_HOME が JDK を含むディレクトリになっているパスに、JAVA_HOME/bin を追加する必要があります。あるいは、コマンドを入力するときにフルパスを入力することもできます。

    jconsole の使用についての詳細は、「jconsole の使用」を參照してください。

    リモートの監視と管理

    リモートシステムからの監視と管理を可能にするには、JVM を起動するときにこのシステムプロパティを設定します。

    com.sun.management.jmxremote.port=portNum

    ここで、portNum は、JMX/RMI 接続を有効にしたいポート番號です。必ず未使用のポート番號を指定してください。ローカルアクセスに対して RMI コネクタを公開するのに加えて、このプロパティを設定することにより、標準名「jmxrmi」を使用して、特定のポートのプライベートな読み取り専用レジストリで追加の RMI コネクタを公開します。

    :以下に説明されているように、セキュリティ用に設定するプロパティの他に上記のシステムプロパティを設定する必要があります。

    リモートの監視と管理には、権限のないユーザがアプリケーションを制御または監視できないようにするためにセキュリティが必要です。デフォルトで、 SSL (secure sockets layer) 経由のパスワード認証が有効になっています。以下のセクションで説明されているように、パスワード認証と SSL を個別に無効にすることができます。

    JMX エージェントをリモートで使用できるようにしたら、「jconsole によるリモート監視」で説明されているように jconsole を使ってアプリケーションを監視できます。

    パスワード認証の使用

    デフォルトでは、リモート監視で JMX エージェントを有効にすると、JMX エージェントはパスワード認証を使用します。ただし、パスワードを設定する方法は、シングルユーザ環境にいるか、マルチユーザ環境にいるかによって異なります。

    パスワードはパスワードファイルにクリアテキストで格納されるため、監視用の通常のユーザ名とパスワードを使用することはお勧めできません。代わりに、monitorRole および controlRole などのパスワードファイルで指定したユーザ名を使用します。詳細は、「パスワードおよびアクセスファイルの使用」を參照してください。

    シングルユーザ環境: JRE_HOME/lib/management ディレクトリで以下の手順でパスワードファイルを設定します。

    1. パスワードのテンプレートファイル、jmxremote.password.templatemanagement.jmxremote.password にコピーします。
    2. ファイルアクセス権を設定して、自分だけがパスワードファイルを読み取りおよび書き込みできるようにします。
    3. monitorRolecontrolRole などのロールに対するパスワードを追加します。

    マルチユーザ環境: JRE_HOME/lib/managementディレクトリで以下の手順でパスワードファイルを設定します。

    1. パスワードのテンプレートファイル、jmxremote.password.template をホームディレクトリにコピーします。
    2. ファイルアクセス権を設定して、所有者だけがパスワードファイルを読み取りおよび書き込みできるようにします。
    3. monitorRolecontrolRole などのロールに対するパスワードを追加します。
    4. JVM を起動するときにシステムプロパティを設定します。
      com.sun.management.jmxremote.password.file=pwFilePath
      ここで、pwFilePath はパスワードファイルへのパスです。
    警告:クライアントがセキュリティ保護されていない RMI レジストリ (デフォルト) からリモートコネクタを取得すると、JMX リモートコネクタからのパスワード認証でセキュリティの問題が起こる可能性があります。攻撃者がターゲットサーバ上で正當な RMI レジストリが開始される前に偽の RMI レジストリを開始すると、攻撃者はクライアントのパスワードを盜むことができます。このシナリオは、システムプロパティ com.sun.management.jmxremote.port=portNum でリモート管理を有効にして JVM を起動する場合も同じです。SSL が有効になっていても同じです。このような攻撃者は発見されることが多いものの、脆弱性があることは確かです。

    この問題を避けるため、認証にはパスワードの代わりに SSL クライアント認証を使用してください。または、クライアントがリモートコネクタオブジェクトを安全に (セキュリティ保護された LDAP 経由で、または共有のセキュリティ保護されたファイルシステムにあるファイルを経由してなど) 取得するようにしてください。

    將來のリリースで、この問題は修正される予定です。

    パスワード認証の無効化

    リモート監視のパスワード認証は、デフォルトで有効になっています。パスワード認証を無効にするには、JVM を起動するときに以下のシステムプロパティを設定します。

    com.sun.management.jmxremote.authenticate=false

    ここで、portNum は、使用するポート番號です。必ず未使用のポート番號を指定してください。

    パスワード認証を無効にする場合、「セキュリティの無効化」で説明しているように SSL を無効にすることもできます。「クライアントの SSL 認証の有効化」で説明しているようにパスワードを無効にして、SSL クライアント認証を有効にしたい場合もあります。

    警告: この構成は安全ではありません。JMX ポート番號およびホスト名を知っている (または推測する) リモートユーザが Java アプリケーションおよびプラットフォームを監視および制御できます。開発用のシステムなら許容されるかもしれませんが、実稼働システムにはお勧めしません。

    SSL の使用

    SSL (Secure sockets layer) は、リモート監視および管理を有効にするときにデフォルトで有効になっています。SSL を使用するには、JMX エージェント (MBean サーバ) が動作するシステム上でデジタル証明書を設定して、次に SSL を正しく設定します。コマンド行ユーティリティ keytool を使用して、証明書を操作します。通常の手順は以下のとおりです。

    1. サーバ上でまだ鍵ペアと証明書を設定していない場合は以下の手順に従います。
      1. keytool -genkey コマンドで鍵ペアを生成します。
      2. keytool -certreq コマンドで認証局 (CA) に署名付き証明書を要求します。
      3. keytool -import コマンドで証明書をキーストアにインポートします。「証明書のインポート」を參照してください。
        詳細および例については、「keytool - 鍵および証明書管理ツール」(Solaris および Linux) (Windows)を參照してください。
    2. サーバシステム上で SSL を設定します。このドキュメントでは、SSL の設定とカスタマイズについて詳細には説明しませんが、通常、次の表に記載されているシステムプロパティを設定する必要があります。詳細は、JSSE ガイドの「デフォルト鍵およびトラストストア、ストアタイプ、およびストアパスワードのカスタマイズ」を參照してください。

     

    SSL 構成のシステムプロパティ
    システムプロパティ 説明
    javax.net.ssl.keyStore キーストアの場所
    javax.net.ssl.trustStore トラストストアの場所
    javax.net.ssl.keyStoreType デフォルトのキーストア型
    javax.net.ssl.keyStorePassword デフォルトのキーストアパスワード
    javax.net.ssl.trustStoreType デフォルトのトラストストア型
    javax.net.ssl.trustStorePassword デフォルトのトラストストアパスワード

    詳細は、「keytool - 鍵および証明書管理ツール(Solaris および Linux) (Windows)」および「JSSE ガイド」を參照してください。

    クライアント SSL 認証の有効化

    クライアント SSL 認証を有効にするには、JVM を起動するときにこのシステムプロパティを設定します。

    com.sun.management.jmxremote.ssl.need.client.auth=true

    クライアント SSL 認証を使用するには、SSL を有効 (デフォルト) にしておく必要があります。

    この構成では、クライアントシステムが有効なデジタル証明書を持つ必要があります。「SSL の使用」で説明したとおりに証明書をインストールして、SSL を設定する必要があります。

    SSL の無効化

    リモート監視で SSL を無効にするには、JVM を起動するときにこのシステムプロパティを設定します。

    com.sun.management.jmxremote.ssl=false

    パスワード認証は、セキュリティの無効化

    パスワード認証と SSL の両方を無効 (セキュリティなし) にするには、JVM を起動するときにこれらのシステムプロパティを設定します。

    com.sun.management.jmxremote.authenticate=false
    com.sun.management.jmxremote.ssl=false

    警告:この構成は安全ではありません。JMX ポート番號およびホスト名を知っている (または推測する) リモートユーザが Java アプリケーションおよびプラットフォームを監視および制御できます。開発用のシステムなら許容されるかもしれませんが、実稼働システムにはお勧めしません。

    jconsole によるリモート監視

    リモートアプリケーションを監視するには、次のように jconsole を起動します。

    jconsole hostName:portNum

    ここで、hostName は、アプリケーションを実行するシステム名で、portNum は、JVM を起動するときに指定したポート番號です。ホスト名とポート番號を省略して、jconsole が提供するダイアログボックスに入力することもできます。

    : jconsole をコマンド行から実行するには、JAVA_HOME が JDK を含むディレクトリになっているパスに、JAVA_HOME/bin を追加する必要があります。あるいは、コマンドを入力するときにフルパスを入力することもできます。

    jconsole の使用についての詳細は、「jconsole の使用」を參照してください。

    プログラムによる JMX エージェントへの接続

    JMX エージェントを有効にしたら、以下の URL を使ってサービスにアクセスできます。

    service:jmx:rmi:///jndi/rmi://hostName:portNum/jmxrmi

    ここで、hostName はホスト名で portNum は、JMX エージェントを有効にしたときに指定したポート番號です。

    次のように、URL を使って、javax.management.remote.JMXServiceURL オブジェクトのインスタンスを生成し、次に JMXConnectorFactory.connect メソッドを使用して接続を作成することにより、クライアントはエージェントへのコネクタを作成できます。

    JMXServiceURL u = new JMXServiceURL(
    "service:jmx:rmi:///jndi/rmi:// “ + hostName + ":"+ portNum + "/jmxrmi");
    JMXConnector c = JMXConnectorFactory.connect(u);

    パスワードおよびアクセスファイルの使用

    パスワードおよびアクセスファイルは、リモート監視および管理のセキュリティを制御します。これらのファイルは、デフォルトでは、JRE_HOME/lib/management にあり、標準の Java プロパティファイルフォーマットです。フォーマットに関する詳細は、「java.util.properties」を參照してください。

    パスワードファイル

    パスワードファイルは、さまざまなロールとそのパスワードを定義します。アクセス制御ファイル (デフォルトでは、jmxremote.access) は、それぞれのロールに許可されるアクセス権を定義します。ロールを機能させるには、パスワードとアクセスファイルの両方にエントリを持つ必要があります。

    JRE には、jmxremote.password.template という名前のパスワードファイルテンプレートがあります。このファイルを JRE_HOME/lib/management/jmxremote.password またはホームディレクトリにコピーして、アクセスファイルで定義したロールのパスワードを追加します。

    パスワードファイルにはパスワードがクリアテキストで含まれるため、必ず所有者だけがこのファイルへの読み取りおよび書き込みアクセス権を持つようにしてください。セキュリティ上の理由から、システムは所有者だけがファイルを読み取りまたは書き込み可能であることを確認し、そうでない場合は終了します。このため、マルチユーザ環境では、パスワードファイルをホームディレクトリなどの非公開の場所に置きます。

    プロパティ名はロールで、関連付けられた値はロールのパスワードです。

    たとえば、パスワードファイルのエントリの例は次のようになります。

    # The "monitorRole" role has password "QED".
    # The "controlRole" role has password "R&D".
    monitorRole QED
    controlRole R&D

    アクセスファイル

    デフォルトでは、アクセスファイルは、jmxremote.access という名前です。プロパティ名はパスワードファイルと同じ領域からの ID です。関連する値は「readonly」または「readwrite」のいずれかにする必要があります。

    アクセスファイルはロールとアクセスレベルを定義します。デフォルトでは、アクセスファイルは次の 2 つの主要なロールを定義します。

    • monitorRole - 監視のための読み取り専用アクセスを許可します。
    • controlRole - 監視および管理のために読み取り/書き込みアクセス権を許可します。

    アクセス制御エントリは、ロール名および関連するアクセスレベルで構成されています。ロール名には、スペースやタブを含めることはできず、パスワードファイル內のエントリに対応している必要があります。アクセスレベルは次のいずれかです。

    • readonly: MBean の屬性に読み取りアクセスを許可します。監視の場合、これは、このロールのリモートクライアントが測定を読み取ることができるが、実行プログラムの環境を変更するアクションは実行できないことを意味します。
    • readwrite: MBean の屬性への読み取りおよび書き込みアクセス、屬性への操作の呼び出し、これらの屬性の作成または削除を許可します。アプリケーションの操作を妨害できるのは、信頼できるクライアントだけであるため、このアクセス権は信頼できるクライアントにだけ許可する必要があります。

    ロールは、アクセスファイル內で 1 つのエントリだけを持つ必要があります。ロールにエントリがない場合、アクセス権はありません。ロールに複數のエントリがある場合、最後のエントリが優先されます。

    アクセスファイルの通常の事前定義のロールは次のとおりです。

    # The "monitorRole" role has readonly access.
    # The "controlRole" role has readwrite access.
    monitorRole readonly
    controlRole readwrite

    JMX 管理および監視プロパティ

    構成ファイルまたはコマンド行で、管理と監視のプロパティを設定できます。コマンド行で指定したプロパティは、構成ファイル內のプロパティを無効にします。構成ファイルのデフォルトの場所は、JRE_HOME/lib/management/management.properties です。ここで JRE_HOME は、Java 実行時環境がインストールされているディレクトリです。com.sun.management.jmxremote または com.sun.management.jmxremote.port のいずれかのコマンド行プロパティが設定されている場合、JVM はこのファイルを読み取ります。SNMP 管理は同じ構成ファイルを使用します。詳細は、「SNMP 監視および管理」を參照してください。

    次のコマンド行オプションでこの構成ファイルに別の場所を指定することもできます。

    com.sun.management.config.file=ConfigFilePath

    ここで、ConfigFilePath は、この構成ファイルへのパスです。

    次の表は、すべての JMX 監視および管理プロパティを示しています。

    表 1. JMX 管理および監視プロパティ
    プロパティ名 説明
    com.sun.management.jmxremote jconsole で使用される専用インタフェース上に公開された JMX コネクタ経由で JMX リモートエージェントおよびローカルの監視を有効にします。jconsole ツールは、エージェントを開始したユーザ ID と同じユーザ ID で実行した場合、このコネクタを使用できます。このコネクタ経由の要求については、パスワードやアクセスファイルはチェックされません。 true / false - デフォルトは、true です。
    com.sun.management.jmxremote. port JMX リモートエージェントを有効にして、指定したポート経由で待機するためにリモート JMX コネクタを作成します。デフォルトでは、SSL、パスワード、およびアクセスファイルプロパティがこのコネクタに使用されます。また、com.sun.management.jmxremote プロパティで説明したローカルの監視も有効にします。 ポート番號 - デフォルトはありません。
    com.sun.management.jmxremote.
    ssl
    SSL 経由で安全に監視できるようにします。false の場合、SSL は使用されません。 true / false - デフォルトは、true です。
    com.sun.management.jmxremote.
    ssl.enabled.protocols
    SSL/TLS プロトコルバージョンを有効にするカンマ區切りのリスト。com.sun.management.jmxremote.ssl と組み合わせて使用されます。 デフォルトの SSL/TLS プロトコルバージョン
    com.sun.management.jmxremote.
    ssl.enabled.cipher.suites
    SSL/TLS 暗號群を有効にするカンマ區切りのリスト。com.sun.management.jmxremote.ssl と組み合わせて使用されます。 デフォルトの SSL/TLS 暗號群
    com.sun.management.jmxremote.
    ssl.need.client.auth
    このプロパティが true でプロパティ com.sun.management.jmxremote.ssl が true の場合、クライアント認証が実行されます。 true / false - デフォルトは、false です。
    com.sun.management.jmxremote.
    authenticate
    このプロパティが false の場合、JMX はパスワードまたはアクセスファイルを使用しません。すべてのユーザがアクセスを許可されます。 true / false -
    デフォルトは、true です。
    com.sun.management.jmxremote.
    password.file
    パスワードファイルの場所を指定します。com.sun.management.jmxremote.password が false の場合、このプロパティとパスワードおよびアクセスファイルは無視されます。それ以外の場合は、パスワードファイルが存在し、有効なフォーマットである必要があります。パスワードファイルが空であるか存在しない場合、アクセスは許可されません。 JRE_HOME/lib/management/
    jmxremote.password
    com.sun.management.jmxremote.
    access.file
    アクセスファイルの場所を指定します。com.sun.management.jmxremote.password が false の場合、このプロパティとパスワードおよびアクセスファイルは無視されます。それ以外の場合は、アクセスファイルが存在し、有効なフォーマットである必要があります。アクセスファイルが空であるか存在しない場合、アクセスは許可されません。 JRE_HOME/lib/management/
    jmxremote.access
    com.sun.management.jmxremote.
    login.config
    RMI 監視のユーザを認証する場合に使用する JAAS ログイン設定エントリの名前を指定します。このプロパティをデフォルトのログイン設定をオーバーライドするために使用する場合は、JAAS でロードされたファイルに指定された設定エントリが存在する必要があります。また、設定で指定されたログインモジュールはユーザの資格を取得するために名前とパスワードのコールバックを使用する必要があります。詳細は javax.security.auth.callback.NameCallback および javax.security.auth.callback.PasswordCallback を參照してください。

    com.sun.management.jmxremote.authenticate が false の場合、このプロパティおよびパスワード、アクセスファイルは無視されます。
    デフォルトのログイン設定はファイルベースのパスワード認証です。

    構成エラー

    MBean サーバ、RMI レジストリ、またはコネクタの起動中にエラーが発生した場合、JVM は例外をスローして終了します。構成エラーには以下のものがあります。

    • ポート番號へのバインドの失敗
    • 無効なパスワードファイル
    • 無効なアクセスファイル
    • パスワードファイルが所有者以外に読み取り可能になっている

    アプリケーションでセキュリティマネージャを実行している場合は、セキュリティ権限ファイルに追加の権限が必要です。

    posted on 2008-11-12 09:53 jinfeng_wang 閱讀(1075) 評論(0)  編輯  收藏 所屬分類: javaZZ
    主站蜘蛛池模板: 亚洲色偷偷狠狠综合网| 亚洲成人免费电影| 日韩内射激情视频在线播放免费| 亚洲综合亚洲国产尤物| 天天看免费高清影视| 一区二区三区视频免费观看| 亚洲高清在线视频| 免费黄色网址入口| a级毛片免费全部播放| 亚洲久悠悠色悠在线播放| 亚洲黄片手机免费观看| 黄页免费的网站勿入免费直接进入| www亚洲精品久久久乳| 亚洲欧洲第一a在线观看| 国产精品二区三区免费播放心| 国产免费无码一区二区| 亚洲熟妇无码av另类vr影视| 亚洲精品无码高潮喷水在线| 免费黄色网址入口| 久久九九兔免费精品6| 成人超污免费网站在线看| a毛片免费全部播放完整成| 亚洲国产精品久久久久秋霞小| 亚洲国产精品无码中文字| 暖暖免费高清日本中文| 8x8x华人永久免费视频| 免费国产a理论片| 亚洲熟妇AV一区二区三区宅男| 亚洲av综合av一区| 2022中文字字幕久亚洲| 在线免费不卡视频| 亚洲高清视频免费| baoyu777永久免费视频| 老外毛片免费视频播放| 亚洲字幕AV一区二区三区四区| 亚洲图片在线观看| 相泽亚洲一区中文字幕| 亚洲不卡AV影片在线播放| 免费观看理论片毛片| 青青草a免费线观a| 精品无码免费专区毛片|