2 JMXを使用したOracle Coherenceの管理
この章の内容は次のとおりです。
- JMX管理の構成
Coherenceには、管理の有効化、クラスタ・メンバーの管理の停止、MBeanのフィルタリング、管理のリフレッシュ・プロパティの構成など、多くの構成オプションが含まれます。 - Oracle Coherence MBeanへのアクセス
Coherenceでは、VisualVM、JConsole、HTMLアダプタ、MBeanコネクタなど、Coherence MBeanとやりとりするための多くのツールがサポートされています。 - RESTを使用した管理情報へのアクセス
HTTPを使用して、RESTリソースとして公開されているCoherence MBeanにアクセスできます。RESTを使用すると、幅広いクライアントが管理情報にアクセスできます。 - Coherence VisualVMプラグインの使用
Coherence VisualVMプラグインにより、VisualVM管理ユーティリティを使用した、単一のCoherenceクラスタの管理およびモニタリングが提供されます。VisualVMプラグインはオープン・ソース・プラグインであり、ソースはGitHubのリポジトリで入手できます。
JMX管理の構成
tangosol-coherence-override.xml
ファイルの<management-config>
要素内で、または起動時に管理用のシステム・プロパティを設定することで構成します。『Oracle Coherenceでのアプリケーションの開発』のmanagement-configに関する項を参照してください。
この項には次のトピックが含まれます:
- 動的管理モードの使用
- クラスタ・メンバーでのリモートJMX管理の明示的な有効化
- クラスタ・メンバーでのローカルJMX管理の有効化
- 起動スクリプト使用時のJMX管理の有効化
- クラスタ・メンバーのリモート管理の停止
- JMX管理の無効化
- MBeanのフィルタリング
- 管理情報のリフレッシュの構成
- 既存のMBeanサーバーの使用
親トピック: JMXを使用したOracle Coherenceの管理
動的管理モードの使用
Coherenceはデフォルトでは動的管理モードで起動するように構成されています。動的管理モードは、自動的に上位のクラスタ・メンバーをJMXクラスタ・メンバーとして選択する高可用性機能です。JMXクラスタ・メンバーは、すべてのクラスタメンバーから管理情報を集計するMBeanサーバーをホストします。JMXクラスタ・メンバーが操作的ではない場合、次に最も上位のクラスタ・メンバーがJMXクラスタ・メンバーとして自動的に選択されます。
com.tangosol.discovery.NSLookup
クラスを使用して任意のクラスタ・メンバーについてNameService
サービスを問い合せると、JMXサービスのURLを見つけることができます。このクラスにはコマンドライン・インタフェースがあります。または、lookupJMXServiceURL
メソッドを呼び出すことができます。たとえば:
java -cp %COHERENCE_HOME%\lib\coherence.jar com.tangosol.discovery.NSLookup -name management/JMXServiceURL
Cluster JRCluster: service:jmx:rmi://127.0.0.1:62427/stub/rO0ABXNyAC5qYXZheC5tYW5hZ2VtZW50LnJlbW90ZS5ybWkuUk1...
すべてのクラスタ・メンバーが、JMXクラスタ・メンバーとして選択される可能性があります。JMXメンバーとして選択される対象からクラスタ・メンバーを除外するには、<managed-nodes>
要素をnone
に設定します。たとえば:
<?xml version='1.0'?> <coherence xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.oracle.com/coherence/coherence-operational-config" xsi:schemaLocation="http://xmlns.oracle.com/coherence/coherence-operational-config coherence-operational-config.xsd"> <management-config> <managed-nodes system-property="coherence.management">none </managed-nodes> </management-config> </coherence>
何も値が指定されない場合、デフォルト値はdynamic
で、クラスタ・メンバーがJMXクラスタ・メンバーになることを示します。
coherence.management
システム・プロパティも、クラスタ・メンバーをJMXクラスタ・メンバーの選択から除外します。たとえば:
-Dcoherence.management=none
親トピック: JMX管理の構成
クラスタ・メンバーでのリモートJMX管理の明示的な有効化
1つ以上のクラスタ・メンバーを明示的に構成して、すべてのクラスタ・メンバーの管理対象オブジェクトを処理するMBeanサーバーをホストできます。これらのクラスタ・メンバーのMBeanサーバーにアクセスすることで、すべてのクラスタ・メンバーの管理情報が表示されます。専用のJMXクラスタ・メンバーを使用するのは一般的な方法です。なぜなら、それによりJMXソフトウェアを1つずつクラスタ・メンバーにロードする必要もなくなり、しかも1つのJMXメンバーに問題が発生してもフォルト・トレランスは維持されるためです。
ノート:
デフォルトで、Coherenceは動的管理モードを使用するように構成され、JMXクラスタ・メンバーは自動的に選択されます。動的管理をベスト・プラクティスとしてお薦めします。「動的管理モードの使用」を参照してください。これらの手順を行うと、JMXクラスタ・メンバーを明示的に構成できます。ただし、JMXクラスタ・メンバーとして構成されていないクラスタ・メンバーは、JMXクラスタ・メンバーとして動的に選択されることから明示的に無効化される必要があります。「JMX管理の無効化」を参照してください。
小規模のクラスタでは、2つの既存クラスタ・メンバーに対して複数の専用のJMX JVMを用意するのがフォルト・トレランスを確保するための一般的な方法です。非常に大規模なクラスタでは、JMX専用の2台のコンピュータを用意するほうが現実的な場合が多いですが、必ずしもその必要はありません。
クラスタ・メンバーに対するリモートJMX管理を有効にするには、<managed-nodes>
要素をall
またはremote-only
に設定します。たとえば:
<?xml version='1.0'?> <coherence xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.oracle.com/coherence/coherence-operational-config" xsi:schemaLocation="http://xmlns.oracle.com/coherence/coherence-operational-config coherence-operational-config.xsd"> <management-config> <managed-nodes system-property="coherence.management">all </managed-nodes> </management-config> </coherence>
remote-only
設定では、リモートMBeanのみを管理するMBeanサーバーが起動されます。all
設定では、リモートMBeanおよびローカル(同一JVM上の)MBeanを管理するMBeanサーバーが起動されます。
coherence.management
システム・プロパティによりリモートJMX管理を有効にすることもできます。たとえば:
-Dcoherence.management=all
親トピック: JMX管理の構成
クラスタ・メンバーでのローカルJMX管理の有効化
ローカルJMX管理では、MBeanサーバーの管理対象がクラスタ・メンバーのローカル(同一JVM上の)MBeanに制約されます。クラスタ・メンバーのMBeanサーバーにアクセスしても、ローカル管理情報しか表示されません。しかし、そのクラスタ・メンバーのMBeanは、リモートJMX管理が有効化されたクラスタ・メンバーによって引き続き管理できます。ローカルJMX管理は一般的に、拡張クライアントまたは一時的なクラスタ・クライアントで使用されます。
クラスタ・メンバーでのローカルJMX管理を有効化するには、<managed-nodes>
要素をlocal-only
に設定します。たとえば:
<?xml version='1.0'?> <coherence xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.oracle.com/coherence/coherence-operational-config" xsi:schemaLocation="http://xmlns.oracle.com/coherence/coherence-operational-config coherence-operational-config.xsd"> <management-config> <managed-nodes system-property="coherence.management">local-only </managed-nodes> </management-config> </coherence>
coherence.management
システム・プロパティによりローカルJMX管理を有効にすることもできます。たとえば:
-Dcoherence.management=local-only
親トピック: JMX管理の構成
起動スクリプト使用時のJMX管理の有効化
便宜上の理由により、COHERENCE_HOME
/bin/cache-server
およびCOHERENCE_HOME
/bin/
coherence
の起動スクリプトには、クラスタ・メンバーでのJMX管理を有効にする-jmx
引数が含まれます。この引数はデフォルトの管理構成である動的管理を使用する場合は必要ありません。
cache-server -jmx
この引数は、スクリプト内で必要に応じて変更できる管理用のシステム・プロパティを自動的に設定します。デフォルトの設定は、次のようになります。
-Dcoherence.management=all -Dcoherence.management.remote=true
親トピック: JMX管理の構成
クラスタ・メンバーのリモート管理の停止
デフォルトでは、すべてのクラスタ・メンバーのMBeanで、リモートMBeanサーバーによる管理が許可されています。メンバーのMBeanのリモート管理を制限するには、<allow-remote-management>
要素をfalse
に設定します。たとえば:
<?xml version='1.0'?> <coherence xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.oracle.com/coherence/coherence-operational-config" xsi:schemaLocation="http://xmlns.oracle.com/coherence/coherence-operational-config coherence-operational-config.xsd"> <management-config> <allow-remote-management system-property="coherence.management.remote">false </allow-remote-management> </management-config> </coherence>
coherence.management.remote
システム・プロパティによりリモート管理を無効にすることもできます。たとえば:
-Dcoherence.management.remote=false
親トピック: JMX管理の構成
JMX管理の無効化
クラスタ・メンバーでのJMX管理を無効化するには、<managed-nodes>
要素をnone
に設定します。たとえば:
<?xml version='1.0'?> <coherence xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.oracle.com/coherence/coherence-operational-config" xsi:schemaLocation="http://xmlns.oracle.com/coherence/coherence-operational-config coherence-operational-config.xsd"> <management-config> <managed-nodes system-property="coherence.management">none</managed-nodes> </management-config> </coherence>
メンバーのJMX管理を無効にしても、そのメンバーのリモート管理は停止されません。<allow-remote-management>
もfalse
に設定する必要があります。次の例では、JMX管理を無効化してメンバーのリモート管理を停止します。
<?xml version='1.0'?> <coherence xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.oracle.com/coherence/coherence-operational-config" xsi:schemaLocation="http://xmlns.oracle.com/coherence/coherence-operational-config coherence-operational-config.xsd"> <management-config> <managed-nodes system-property="coherence.management">none</managed-nodes> <allow-remote-management system-property="coherence.management.remote">false </allow-remote-management> </management-config> </coherence>
親トピック: JMX管理の構成
MBeanのフィルタリング
Oracle Coherence管理フレームワークでは、MBeanをMBeanサーバーに登録する前にそれらのMBeanをフィルタできます。即時利用可能なMBeanフィルタが提供されており、カスタムのフィルタを必要に応じて作成することもできます。付属のMBeanフィルタ(com.tagosol.net.management.ObjectNameExcludeFilter
)は、標準的な正規表現パターンを使用するJMXオブジェクト名に基づいて、MBeanを登録から除外します。たとえば、パターン.*type=Service,name=Management,.*
によって、type=Service
およびname=Management
のMBeanが除外されます。初期状態の構成では、このフィルタによっていくつかのプラットフォームMBeanが管理フレームワークに登録されないように除外されます。MBeanフィルタは、<mbean-filter>
要素を使用して定義します。
次の例は、初期状態の構成を示しています。
... <mbean-filter> <class-name>com.tangosol.net.management.ObjectNameExcludeFilter</class-name> <init-params> <init-param> <param-type>string</param-type> <param-value system-property="coherence.management.exclude"> .*type=Service,name=Management,.* .*type=Platform,Domain=java.lang,subType=ClassLoading,.* .*type=Platform,Domain=java.lang,subType=Compilation,.* .*type=Platform,Domain=java.lang,subType=MemoryManager,.* .*type=Platform,Domain=java.lang,subType=Threading,.* </param-value> </init-param> </init-params> </mbean-filter> ...
管理サービスまたはプラットフォームMBeanを有効化するには、<param-value>
要素の名前のリストから対応するオブジェクト名を削除します。特定のMBeanを登録されないように除外するには、そのMBeanオブジェクト名をリストに追加します。
coherence.management.exclude
システム・プロパティによりMBeanをフィルタリングすることもできます。たとえば:
-Dcoherence.management.exclude=.*type=Service,name=Management,.*
親トピック: JMX管理の構成
管理情報のリフレッシュの構成
<refresh-expiry>
、<refresh-policy>
および<refresh-timeout>
の各要素は、管理情報の待機時間を制御します。次の例では、これらの各設定を構成しています。詳細は、例の後に説明します。
<?xml version='1.0'?> <coherence xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.oracle.com/coherence/coherence-operational-config" xsi:schemaLocation="http://xmlns.oracle.com/coherence/coherence-operational-config coherence-operational-config.xsd"> <management-config> <refresh-policy system-property="coherence.management.refresh.policy"> refresh-ahead</refresh-policy> <refresh-expiry system-property="coherence.management.refresh.expiry">1s </refresh-expiry> <refresh-timeout system-property="coherence.management.refresh.timeout">300ms </refresh-timeout> </management-config> </coherence>
この項には次のトピックが含まれます:
管理情報のリフレッシュ失効の設定
<refresh-expiry>
要素は、リモート・メンバーの管理情報をリモートで取得する最小間隔を指定します。この要素の値は、次の形式で指定する必要があります。
(\d)+((.)(\d)+)?[MS|ms|S|s|M|m|H|h|D|d]?
前述の文字は(左から右へ)それぞれ、次の時間間隔の単位を示しています。
-
MSまたはms(ミリ秒)
-
Sまたはs(秒)
-
Mまたはm(分)
-
Hまたはh(時)
-
Dまたはd(日数)
値に単位が含まれていない場合は、ミリ秒が単位として適用されます。デフォルト値は1s
です。
coherence.management.refresh.expiry
システム・プロパティにより失効を設定することもできます。たとえば:
-Dcoherence.management.refresh.expiry=2s
親トピック: 管理情報のリフレッシュの構成
管理情報のリフレッシュ・ポリシーの設定
<refresh-policy>
要素は、リモート管理情報のリフレッシュ方法を指定します。それぞれのポリシーでは、指定したMBeanの使用パターンの待機時間を短縮する様々なリフレッシュ・アルゴリズムが使用されます。表2-1は、各ポリシーを説明しています。
表2-1 リフレッシュ・ポリシー
設定 | 説明 |
---|---|
|
失効遅延が経過した後、リクエストされる前に、MBeanを前の使用パターンに基づいてリフレッシュします。この設定は、ネットワーク消費量を多少増加させることで管理情報の待機時間を低減します。この設定は、MBeanが反復的(またはプログラム的)なパターンでアクセスされる場合に最良です。 |
|
データにアクセスした後、それぞれのMBeanをリフレッシュします。この方法では最適なレスポンス・タイムが確保されます。ただし返される情報は、最後のリフレッシュ時刻からのオフセットになります。 |
|
MBeanがアクセスされ、最後のリフレッシュから失効遅延が経過すると、それぞれのMBeanをリモート・メンバーからリフレッシュします。この設定は、MBeanがランダムなパターンでアクセスされる場合に最適です。 |
coherence.management.refresh.policy
システム・プロパティによりポリシーを設定することもできます。たとえば:
-Dcoherence.management.refresh.policy=refresh-expired
親トピック: 管理情報のリフレッシュの構成
管理情報のリフレッシュ・タイムアウトの設定
<refresh-timeout>
要素は、MBean情報のリフレッシュ時に管理メンバーがリモート・メンバーからのレスポンスを待つ期間を指定します。この値は<refresh-expiry>
値より小さくする必要があります。この要素の値は、次の形式で指定する必要があります。
(\d)+((.)(\d)+)?[MS|ms|S|s|M|m|H|h|D|d]?
前述の文字は(左から右へ)それぞれ、次の時間間隔の単位を示しています。
-
MSまたはms(ミリ秒)
-
Sまたはs(秒)
-
Mまたはm(分)
-
Hまたはh(時)
-
Dまたはd(日数)
値に単位が含まれていない場合は、ミリ秒が単位として適用されます。デフォルト値は250ms
です。
coherence.management.refresh.timeout
システム・プロパティによりタイムアウトを設定することもできます。たとえば:
-Dcoherence.management.refresh.timeout=300ms
親トピック: 管理情報のリフレッシュの構成
既存のMBeanサーバーの使用
Oracle Coherence管理フレームワークでは、既存のMBeanサーバーを使用してOracle Coherence MBeanを公開できます。MBeanサーバーは、クラスタ・メンバーと同一のJVMプロセス内にある必要があります。また、そのクラスタ・メンバーでは、JMX管理が有効化されている必要があります。
既存のMBeanサーバーを使用するには、<default-domain-name>
要素を使用してMBeanサーバーのドメイン名を入力します。入力したドメイン名のMBeanサーバーが見つからないと、MBean登録に失敗します。次の例では、MyDomainName
ドメイン名の既存のMBeanサーバーを指定します。
<?xml version='1.0'?> <coherence xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.oracle.com/coherence/coherence-operational-config" xsi:schemaLocation="http://xmlns.oracle.com/coherence/coherence-operational-config coherence-operational-config.xsd"> <management-config> <managed-nodes system-property="coherence.management">all </managed-nodes> <default-domain-name>MyDomainName</default-domain-name> </management-config> </coherence>
com.tangosol.net.management.MBeanServerFinder
インタフェースを実装して、Oracle Coherence管理フレームワークによるMBeanサーバーの検出方法をカスタマイズします。<server-factory>
要素内の<class-name>
要素を使用して、実装クラスの完全修飾された名前を追加します。また、<init-params>
要素を使用して、初期化パラメータを含めます。<default-domain-name>
要素を使用して、クラスをインスタンス化する際に使用する既存のMBeanサーバー・ドメイン名を指定します。
次の例では、MyMBeanServerFinder
実装クラスを指定して、その実装クラスにMyDomainName
ドメイン名を渡します。
<?xml version='1.0'?> <coherence xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.oracle.com/coherence/coherence-operational-config" xsi:schemaLocation="http://xmlns.oracle.com/coherence/coherence-operational-config coherence-operational-config.xsd"> <management-config> <managed-nodes system-property="coherence.management">all </managed-nodes> <default-domain-name>MyDomainName</default-domain-name> <server-factory> <class-name system-property="coherence.management.serverfactory"> package.MyMBeanServerFinder</class-name> <init-params> <init-param> <param-type>int</param-type> <param-value>0</param-value> </init-param> </init-params> </server-factory> </management-config> </coherence>
coherence.management.serverfactory
システム・プロパティにより実装クラスを指定することもできます。たとえば:
-Dcoherence.management.serverfactory=package.MyMBeanServerFinder
親トピック: JMX管理の構成
Oracle Coherence MBeanへのアクセス
この項には次のトピックが含まれます:
- VisualVMを使用したMBeanへのローカルでのアクセス
- JConsoleユーティリティを使用したMBeanへのローカルでのアクセス
- Oracle Coherence MBeanへのリモート・アクセスの許可
- JConsoleユーティリティを使用した実行中のCoherenceクラスタのMBeansへのアクセス
- HTMLアダプタ・アプリケーションを使用したMBeanへのアクセス
- WLSTを使用したCoherence MBeanへのアクセス
管理対象Coherenceサーバー環境のWebLogic Server内でCoherenceを実行すると、WebLogic ServerドメインのランタイムMBeanサーバーにより管理プロキシからJMX情報が収集されます。この情報には、WLSTを使用してアクセスできます。 - Oracle Coherence MBeanコネクタの設定
親トピック: JMXを使用したOracle Coherenceの管理
VisualVMを使用したMBeanへのローカルでのアクセス
VisualVMは、MBeanの表示およびMBeanとのデータのやりとりを行う機能を提供する管理ユーティリティです。MBean機能がVisualVMに対するプラグインとして提供されています。このプラグインをVisualVM Plugins Centerからインストールする必要があります。ツールから、「ツール」 -> 「プラグイン」オプションを使用してVisualVM-MBeansプラグインをインストールします。
VisualVMユーティリティを使用してCoherence MBeanにローカルでアクセスするには:
親トピック: Oracle Coherence MBeanへのアクセス
JConsoleユーティリティを使用したMBeanへのローカルでのアクセス
JConsoleは、JDK (JDK_HOME
\bin\jconsole
)に含まれる管理ユーティリティで、MBeanの表示およびMBeanとのやり取りの機能が提供されます。
JConsoleユーティリティを使用してMBeanにローカルでアクセスするには:
親トピック: Oracle Coherence MBeanへのアクセス
Oracle Coherence MBeanへのリモート・アクセスの許可
リモートJMX管理では、リモート・コンピュータ上のJMXクライアントでOracle Coherence MBeanにアクセスすることが可能です。システム・プロパティはリモート・アクセスを構成するためのもので、多くの場合、MBeanサーバーをホスティングするJVMを起動する際に設定されます。つまり、そのクラスタのMBeanサーバーをホスティングするクラスタ・メンバーを起動する際にシステム・プロパティは設定されます。『Java SEモニタリングおよび管理ガイド』の「JMXテクノロジを使用するモニタリングと管理」を参照してください。次の記述では、最低限の構成要件のみが説明されています。
セキュリティを有効化せずにOracle Coherence MBeanへのリモート・アクセスを許可するには、次のシステム・プロパティをクラスタ・メンバーの起動時に設定します。
-Dcom.sun.management.jmxremote.port=port
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
ノート:
リモートJMX接続に対するSSLの無効化は推奨されておらず、安全ではありません。リモートJMX接続に対してSSLを有効にすることをお薦めします。リモートJMX接続の保護に関する推奨事項は、JDKのドキュメントを参照してください。com.sun.management.jmxremote.port
値を、クラスタ・メンバーの使用可能なポートのいずれかに設定します。JMXクライアント(たとえば、JConsole)のホストとポートを、リモートMBeanサーバーへ接続するときに指定します。
場合によっては(仮想環境またはネットワーク・アドレス変換を使用する場合)、コンピュータのホスト名が誤って識別されたり、JMXクライアントに送信するRMIスタブでデフォルト値(127.0.0.1)が返されたりすることがあります。その結果、JMXクライアントによるMBeanサーバーへの接続が失敗します。RMIスタブに正しいIPアドレスを含めるには、java.rmi.server.hostname
システム・プロパティを使用してホストのIPアドレスを明示的に設定します。たとえば:
-Djava.rmi.server.hostname=IP_Address
詳細は、Java Platform Standard Edition 11またはJava Platform Standard Edition 17のドキュメントを参照してください。
親トピック: Oracle Coherence MBeanへのアクセス
JConsoleユーティリティを使用した実行中のCoherenceクラスタのMBeansへのアクセス
jconsole
ユーティリティを使用してMBeansにリモートでアクセスするには、次のコマンドを使用して、Coherenceディストリビューションcoherence/bin
からUnixまたはWindowsシェル・スクリプトjmxserviceurl.[sh | cmd]
を使用します:
% $JAVA_HOME/bin/jconsole `jmxserviceurl.sh <clusterName> <clusterPort> <hostName>`
clusterName
はCoherenceクラスタ名であり、必須です。<hostName>
パラメータを使用しない場合、clusterPort
はオプションです。デフォルトは7574
です。hostName
は、Coherenceクラスタ・メンバーのマシン名またはIPアドレスです。デフォルトはlocalhost
です。
% $JAVA_HOME/bin/jconsole `./jmxserviceurl.sh mycluster 7574 100.111.142.210`
ノート:
この例では、マシンIPアドレス100.111.142.210
で実行されているデフォルトのクラスタポート7574
に、クラスタmycluster
のCoherenceクラスタ・メンバーが存在することを前提としています。このマシンはCoherence管理のシニアである必要はなく、指定したクラスタポートでmycluster
のNameService
を実行することが必要です。
jxmserviceurl
シェル・スクリプトが単独で実行される場合、jconsole
がMBeanサーバーへの接続に使用するJMX RMI URLという次の出力があります。
$ ./jmxserviceurl.sh mycluster 7574 100.111.142.210
service:jmx:rmi://100.111.142.210:42788/stub/rO0ABXNyAC5qYXZheC5tYW5hZ2VtZW50LnJlbW90ZS5ybWkuUk1JU2VydmVySW1wbF9TdHViAAAAAAAAAAICAAB4cgAaamF2YS5ybWkuc2VydmVyLlJlbW90ZVN0dWLp
JConsoleアプリケーションが起動し、Coherence MBeanサーバーに自動接続します。
- 「Insecure Connection」をクリックします。
- Java Monitoring & Management Consoleウィンドウで「MBeans」タブを選択し、Coherenceノードを展開してCoherence MBeanにアクセスします。
親トピック: Oracle Coherence MBeanへのアクセス
HTMLアダプタ・アプリケーションを使用したMBeanへのアクセス
HTMLアダプタWebアプリケーションでは、キャッシュ・クライアントのOracle Coherence MBeanへのリモート・アクセスが可能で、JMXリファレンス実装の一部として同梱されているHTMLアダプタ(HtmlAdaptorServer
)を使用します。このアダプタでは、jmxri.jar
とjmxtools.jar
ライブラリを両方ともクラスパスに含める必要があります。JMXリファレンス実装は、『Java Platform Technologyダウンロード』で利用できます。
HTMLアダプタを使用してMBeanにアクセスするには:
親トピック: Oracle Coherence MBeanへのアクセス
WLSTを使用したCoherence MBeanへのアクセス
管理対象Coherenceサーバー環境のWebLogic Server内でCoherenceを実行すると、WebLogic ServerドメインのランタイムMBeanサーバーにより管理プロキシからJMX情報が収集されます。この情報には、WLSTを使用してアクセスできます。
詳細は、『Oracle WebLogic Serverクラスタの管理』のWLSTを使用したCoherence MBeanへのアクセスに関する項を参照してください。
親トピック: Oracle Coherence MBeanへのアクセス
Oracle Coherence MBeanコネクタの設定
Oracle Coherenceには、クラスタ・メンバーを専用のMBeanサーバー・ホストとして起動するためのプログラムが用意されています。このプログラムでは、Oracle Coherence MBeanへのリモート・アクセスがJMXリモートAPIのRMI、またはJMXリファレンス実装で提供されるHTTPサーバーを使用して実現されます。必要に応じてRMIとHTTPのポート設定を構成して、ファイアウォールを介したアクセスを許可します。次のコマンドを使用して、サーバーを起動します。
java -Dcoherence.management=all -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -cp coherence.jar;jmxri.jar;jmxtools.jar com.tangosol.net.management.MBeanConnector [-http -rmi]
ノート:
リモートJMX接続に対するSSLの無効化は推奨されておらず、安全ではありません。リモートJMX接続に対してSSLを有効にすることをお薦めします。リモートJMX接続の保護に関する推奨事項は、JDKのドキュメントを参照してください。JMX RMIを使用したアクセスを許可するには、-rmi
引数を含めます。HTTPおよびWebブラウザを使用したアクセスを許可するには、-http
引数を含めます。これらの引数を両方とも含めることはできますが、メンバーを起動するには少なくと1つの引数を指定する必要があります。
表2-2は、JMX RMI構成のオプションのプロパティについて説明しています。
表2-2 JMX RMIの構成に使用できるオプションのプロパティ
プロパティ | 説明 |
---|---|
|
JMXサーバーがバインドされているホスト。デフォルト値は |
|
JMX RMIのレジストリに使用するポート。デフォルト値は |
|
JMX RMI接続に使用するポート。デフォルト値は |
表2-3は、HTTPの構成に使用できるオプションのプロパティについて説明しています。
表2-3 HTTPの構成に使用できるオプションのプロパティ
プロパティ | 説明 |
---|---|
|
HTTPの接続に使用するポート。デフォルト値は |
JConsoleを使用してデフォルト設定でMBeanサーバーに接続するには、次のコマンドを使用します。
jconsole service:jmx:rmi://localhost:3000/jndi/rmi://localhost:9000/server
HTTPを使用してデフォルト設定でMBeanサーバーに接続するには、次のURLにアクセスします。
http://localhost:8888
ノート:
認証およびSecure Socket Layer (SSL)を使用したセキュアなアクセスを設定するには、次のJMXエージェントのドキュメントを参照してください。
『Java SEモニタリングおよび管理ガイド』の「JMXテクノロジを使用するモニタリングと管理」。
親トピック: Oracle Coherence MBeanへのアクセス
RESTを使用した管理情報へのアクセス
HTTPを使用して、RESTリソースとして公開されているCoherence MBeanにアクセスできます。RESTを使用すると、幅広いクライアントが管理情報にアクセスできます。
RESTサーバーを介したHTTP管理を保護するには、「RESTサーバーを介したOracle Coherence HTTP管理の保護」を参照してください。
この項には次のトピックが含まれます:
HTTP管理サーバーの有効化
REST管理は、Coherenceクラスタ上でプロキシとして稼働するHTTP管理サーバーを介して有効化されます。HTTP管理サーバーには、COHERENCE_HOME\lib\coherence.jar
ライブラリとCOHERENCE_HOME\lib\coherence-json.jar
ライブラリが必要です。management-configの<http-managed-nodes>
要素がall
またはinherit
に設定されていて、必要なライブラリがクラスパスにある場合、サーバーが起動します。ライブラリが見つからない場合、管理ライブラリが欠落しておりHTTPを介して管理できないことがCoherenceログ・メッセージに示されます。
Mavenを使用して依存関係を管理することをお薦めします。Mavenリポジトリ・マネージャの移入に関する項の説明に従って、Oracle Maven同期プラグインを使用し、最新のOracle CoherenceアーティファクトがローカルのMavenリポジトリにインストールされていることを前提とします。
サード・パーティ・ライブラリを含むクラスパスを生成するには、下のpom.xml
を使用して、次のMavenコマンドを実行します。キャッシュ・サーバーを起動するには、生成されたクラスパスを追加します。
mvn dependency:build-classpath
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<artifactId>management</artifactId>
<groupId>management</groupId>
<version>1.0.0</version>
<name>Coherence Management Over REST dependencies</name>
<packaging>pom</packaging>
<properties>
<coherence.groupId>com.oracle.coherence</coherence.groupId>
<coherence.version>14.1.1-2206-1</coherence.version>
</properties>
<dependencies>
<dependency>
<groupId>${coherence.groupId}</groupId>
<artifactId>coherence</artifactId>
<version>${coherence.version}</version>
</dependency>
<dependency>
<groupId>${coherence.groupId}</groupId>
<artifactId>coherence-json</artifactId>
<version>${coherence.version}</version>
</dependency>
</dependencies>
</project>
必要なすべての依存性が自動的にダウンロードされます。ライブラリの完全なリストを表示するには、次のMavenコマンドを実行します。
mvn dependency:list
親トピック: RESTを使用した管理情報へのアクセス
管理リソースへの接続
HTTP管理サーバーは、デフォルトでは有効化されていません。動的管理モードをinherit
に使用し、デフォルトでポート30000を選択するように構成できます。「HTTP管理サーバーのアドレスの変更」および「management-config」の<http-managed-nodes>
を参照してください。上位クラスタ・メンバーが動作していない場合、管理サーバーはその次に上位のクラスタ・メンバー上で自動的に再起動されます。Coherenceログにサーバーのホストとポートが示されます。または、com.tangosol.discovery.NSLookup
クラスを使用して、任意のクラスタ・メンバーでNameService
サービスを問い合せることができます。このクラスにはコマンドライン・インタフェースがあります。または、lookupHTTPManagementURL
メソッドを呼び出すことができます。たとえば:
java -cp %COHERENCE_HOME%\lib\coherence.jar com.tangosol.discovery.NSLookup -name management/HTTPManagementURL
Cluster MyCluster: [http://127.0.0.1:63660/management/coherence/cluster]
次の例では、cURLリクエストを使用してクラスタ情報を取得します。
curl -i -X GET http://127.0.0.1:63660/management/coherence/cluster
HTTP / 1.1 200 OK
Content - Type: application / json
content - length: 1330
connection: keep - alive
{
"links": [{
"rel": "parent",
"href": "http://127.0.0.1:63660/management/coherence"
}, {
"rel": "self",
"href": "http://127.0.0.1:63660/management/coherence/cluster"
}, {
"rel": "canonical",
"href": "http://127.0.0.1:63660/management/coherence/cluster"
}, {
"rel": "services",
"href": "http://127.0.0.1:63660/management/coherence/cluster/services"
}, {
"rel": "caches",
"href": "http://127.0.0.1:63660/management/coherence/cluster/caches"
}, {
"rel": "members",
"href": "http://127.0.0.1:63660/management/coherence/cluster/members"
}, {
"rel": "management",
"href": "http://127.0.0.1:63660/management/coherence/cluster/management"
}, {
"rel": "journal",
"href": "http://127.0.0.1:63660/management/coherence/cluster/journal"
}, {
"rel": "hotcache",
"href": "http://127.0.0.1:63660/management/coherence/cluster/hotcache"
}, {
"rel": "webApplications",
"href": "http://127.0.0.1:63660/management/coherence/cluster/webApplications"
}],
"refreshTime": "2018-12-12T18:04:34.225-05:00",
"licenseMode": "Development",
"clusterSize": 1,
"localMemberId": 1,
"version": "19.1.0.0.0",
"running": true,
"clusterName": "MyCluster",
"membersDeparted": [],
"memberIds": [1],
"membersDepartureCount": 0,
"members": ["Member(Id=1, Timestamp=2018-12-12 18:01:38.132, Address=127.0.0.1:63621, MachineId=46461, Location=site:Burlington,rack:100A,process:12124,member:COH-001, Role=Cache Server)"],
"oldestMemberId": 1,
"type": "Cluster"
}
REST APIの詳細なリファレンスは、Oracle Coherenceの管理のためのREST APIを参照してください。
親トピック: RESTを使用した管理情報へのアクセス
HTTP管理サーバーのアドレスの変更
HTTP管理サーバーのアドレスとポートを明示的に定義できます。ほとんどのユースケースでは、アドレスの変更は不要であり、動的管理モードを構成してHTTP管理を有効にすることが推奨されす。仮想コンテナの場合、coherence.management.http.port
のデフォルトの30000
を変更する必要はありません。非仮想コンテナで実行されているCoherence HTTP管理サーバーが、デフォルト・ポート30000でその他のCoherenceキャッシュ・サーバーまたはアプリケーションと競合する場合は、coherence.management.http.port
を0
に設定(エフェメラル・ポートを使用するよう指定)すると、競合する可能性を回避できます。「管理リソースへの接続」を参照してください。
ノート:
<http-managed-nodes>
要素をall
に設定して構成されたHTTP管理サーバーを持つ複数のCoherenceキャッシュ・サーバーが、同じマシン上で起動されている場合、coherence.management.http.port
は各サーバーで一意である必要があります。そうでない場合、同じcoherence.management.http.port
値を持つ後続のサーバーは、すでに使用中のアドレスを取得するため、HTTP管理サーバーの起動時にエラーが発生します。Coherenceキャッシュ・サーバーは起動しますが、HTTP管理サーバーは、そのマシン上の1つのCoherenceキャッシュ・サーバーでのみ使用できます。
<http-managed-nodes>
要素を使用してデフォルトのHTTP管理構成をオーバーライドし、値をall
に設定します。
<?xml version='1.0'?>
<coherence xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://xmlns.oracle.com/coherence/coherence-operational-config"
xsi:schemaLocation="http://xmlns.oracle.com/coherence/coherence-operational-config
coherence-operational-config.xsd">
<management-config>
<http-managed-nodes system-property="coherence.management.http">all
</http-managed-nodes>
</management-config>
</coherence>
coherence.management.http
システム・プロパティによって管理も構成されます。たとえば:
-Dcoherence.management.http=all
次のシステム・プロパティを使用して、HTTP管理サーバーのアドレスとポートを指定します。
-Dcoherence.management.http.address
-Dcoherence.management.http.port
親トピック: RESTを使用した管理情報へのアクセス
Coherence VisualVMプラグインの使用
プラグインは、Coherence MBeanデータを集約し、単一のCoherenceクラスタの簡潔な運用ビューを表示します。一定期間の管理情報が表示されるため、リアルタイム分析およびトラブルシューティングが可能になります。JMXを通じて、またはCoherenceバージョン14.1.1.0以上のRESTの管理を通じて、クラスタに接続できます。
このプラグインは、開発およびテストのライフサイクル中にCoherenceクラスタをモニターおよび管理するための理想的なツールであり、Community EditionとCommercialの両方のバージョンのCoherenceへの接続をサポートします。
ノート:
- Coherenceインストーラに同梱されているプラグインのかわりに、オープン・ソースのCoherence VisualVMプラグインを使用することをお薦めします。
- プラグインを使用して本番クラスタをモニターすることもできますが、データ・リフレッシュ時間が30秒以上の値に設定される必要があるため、Coherence管理インフラストラクチャに必要以上の圧力を不注意にかけないでください。
この項には次のトピックが含まれます:
- Coherence VisualVMプラグインのインストール
- VisualVMプラグインを使用したCoherenceクラスタのモニタリング
- 「オプション」タブを使用したプラグイン動作の変更
- プラグインの機能のモニタリング
親トピック: JMXを使用したOracle Coherenceの管理
Coherence VisualVMプラグインのインストール
Coherence VisualVMプラグインは、VisualVMバージョン2.1以上のプラグインのリストから入手できます。VisualVMは、https://visualvm.github.io/からダウンロードできます。
Coherence VisualVMプラグインをインストールするには:
親トピック: Coherence VisualVMプラグインの使用
VisualVMプラグインを使用したCoherenceクラスタのモニタリング
Coherenceクラスタは、Coherenceクラスタ・メンバーであるJVMプロセスに接続し、「Oracle Coherence」タブを使用することによって、VisualVMツールでモニターされます。管理データにアクセスする前に、Coherence JMX管理をクラスタ・メンバーで有効にする必要があります。「JMX管理の構成」を参照してください。
Coherenceクラスタには、次のいずれかの方法で接続できます。
- プロセスへの直接接続
プラグインをインストールした後、左側のペインでCoherenceクラスタ・メンバー・プロセスをダブルクリックします(通常は
DefaultCacheServer
)。その後、VisualVMウィンドウの右側のペインに、新しく選択したプロセスの「Coherence」タブが表示されます。 - REST経由の管理による接続
REST経由のCoherence管理を通じて接続することもできます。「Coherenceクラスタ」ツリーを右クリックし、Coherenceクラスタの追加を選択します。クラスタの名前を指定し、接続先のクラスタのタイプに応じて次のURLを使用します。
- スタンドアロンCoherence -
http://<host>:<management-port>/management/coherence/cluster
- WebLogicサーバー -
http://<admin-host>:<admin-port>/management/coherence/<version>/clusters
(バージョンとしてlatest
を使用)
WebLogicサーバーに接続する場合は、ドメインのユーザー名とパスワードの入力を求められます。
ノート:
スタンドアロン・クラスタに対してREST経由の管理を有効にするには、『Oracle CoherenceのマネージングのためのREST API』を参照してください。RESTを使用してWebLogicサーバーに接続することをお薦めしますが、JMXを使用して接続する場合は、管理サーバーを使用したWebLogicサーバーのCoherenceへの接続に関する項を参照してください。
- スタンドアロンCoherence -
親トピック: Coherence VisualVMプラグインの使用
「オプション」タブを使用したプラグイン動作の変更
「オプション」ペインを使用して、プラグインの動作を変更できます。オプションを開くには、プラットフォームに応じて次を選択します:
- Mac: VisualVMを選択し、「プリファレンス」をクリックして、「Coherence」タブを選択します。
- Windows/Linux: 「ツール」を選択し、「オプション」をクリックして、「Coherence」タブを選択します。
最もよく変更される値のプリファレンスがデータ・リフレッシュ時間であることがわかります。この値は、JMXまたはREST接続からのデータをプラグインがリフレッシュする頻度を決定します。
各プリファレンスにはツール・ヒントがありますが、表2-4はサマリーを示しています:
表2-4 Coherence VisualVMプリファレンス
プリファレンス | デフォルト | 用途 |
---|---|---|
データ・リフレッシュ時間 |
30 |
クラスタからのデータのリフレッシュ間隔(秒)。低い値は大きいクラスタのパフォーマンスに悪影響を及ぼす可能性があるため、この値を低く設定しすぎないでください。 |
ログ問合せ時間 |
false |
データ取得時のVisualVMログ・ファイルへの問合せ時間のロギングを有効にします。 |
MBeanチェックの無効化 |
false |
WebLogicサーバーへの接続時にMBeanチェックを無効にします。これにより、クラスタMBeanをチェックせずにプラグインを起動できます。 |
RESTリクエスト・タイムアウト |
30000 |
RESTを使用してクラスタに接続する際のリクエスト・タイムアウト(ミリ秒)。 |
RESTデバッグの有効化 |
false |
RESTを使用してクラスタに接続する際のHTTPリクエストのデバッグを有効にします。 |
SSL証明書の検証の無効化 |
false |
選択すると、SSL証明書の検証が無効になります。 ノート: このオプションは、ターゲット・サーバーを確実に識別している場合にのみ使用してください。 |
永続性リストの有効化 |
true |
スナップショット操作の実行時にスナップショットを入力する必要なしに、スナップショットのドロップダウン・リストを提供します。 |
グラフのズームの有効化 |
false |
すべてのグラフに対して追加のズーム機能を有効にします。 |
クラスタ・スナップショットの有効化タブ |
false |
実験的なクラスタ・スナップショット・タブを有効にします。このタブは、すべての関連クラスタ情報を1つのペインにテキスト形式で表示する場合に役立ちます。 |
クラスタ・ヒープ・ダンプの有効化 |
false |
「クラスタ概要」タブのクラスタ・ヒープ・ダンプ・ボタンを有効にします。 |
ログファイルの使用不可時間の分析 |
- |
Coherence 14.1.1.2206以降から生成されたログに対してパーティション・イベント・ロギングが有効になっているログ・ファイルを分析する機能を提供します。パーティション・イベントのロギングに関する項を参照してください。 ノート: 分析するCoherenceログ・ファイルを選択できます。実行中のクラスタに接続する必要はありません。 |
ノート:
設定した値は、プラグインの次回再起動時にも保持されます。親トピック: Coherence VisualVMプラグインの使用
プラグインの機能のモニタリング
すべてのCoherenceクラスタについて、次のタブが表示されます。
表2-5 すべてのCoherenceクラスタで使用可能なタブ
タブの名前 | 説明 |
---|---|
クラスタ概要 |
クラスタ名、バージョン、メンバー数、"クラスタStatusHA"などのCoherenceクラスタの概要情報が表示されます。サマリー・グラフには、使用可能および使用済のクラスタ・メモリーの合計、パケット・パブリッシャと受信者の成功率、およびCoherenceを実行するマシンの平均負荷が表示されます。 |
マシン |
Coherenceクラスタを構成する物理マシンのリスト、およびこれらのマシン上の負荷平均と使用可能メモリーに関する情報が表示されます。 |
メンバー |
個々のパブリッシャ/受信者の成功率、メモリー、送信キュー・サイズなど、Coherenceメンバー/ノードの完全なリストが表示されます。 |
サービス |
パーティション数およびstatusHA値を含む実行中のサービスの情報が表示されます。サービスを選択すると、次のデータ・リフレッシュ時に、サービスの各ノードの詳細なスレッド情報と、その情報のグラフが表示されます。 |
キャッシュ |
サイズおよびメモリー使用量情報を含むキャッシュの情報が表示されます。メモリー使用量について正しい情報を表示するには、バイナリ・ユニット・カリキュレータを使用する必要があります。キャッシュを選択すると、次のデータ・リフレッシュ時に、そのサービスおよびキャッシュをホストしている各ノードに関する詳細情報が表示されます。 |
使用しているエディションおよび機能によっては、次のオプションのタブが表示される場合があります。
表2-6 Coherenceクラスタのオプションのタブ
タブの名前 | 説明 |
---|---|
プロキシ・サーバー |
クラスタがプロキシ・サーバーを実行している場合、このタブには、プロキシ・サーバーに関する情報、および各プロキシ・サーバー間の接続数と合計接続数が表示されます。 |
HTTP Server |
クラスタがHTTPアクセプタを使用してプロキシ・サーバーを実行している場合、このタブには、HTTPサーバーに関する情報、各サーバー間の接続数、レスポンス・コードの合計接続数およびグラフ、選択したサービスの時間経過によるエラーおよびリクエストが表示されます。 |
エグゼキュータ |
クラスタがエグゼキュータ・サービスを実行するように構成されている場合、このタブには、完了済、進行中および拒否済のタスクの数に関する情報が表示されます。 |
Coherence*Web |
クラスタがCoherence*Web用に構成されている場合、このタブには、デプロイされるアプリケーションの数、格納されるHTTPセッションの数、セッション・リープに関するその他の情報が表示されます。 |
フェデレーション |
クラスタにフェデレーテッド・キャッシュが構成されている場合、このタブには各フェデレーテッド・サービスに関する情報が表示されます。サービスを選択すると、次のデータ・リフレッシュ時に、サービスの各ノードのアウトバウンド/インバウンド・フェデレーション・トラフィックの詳細と、その情報のグラフが表示されます。 |
永続性 |
クラスタに永続性が構成されている場合、このタブには、永続性が構成されている各サービスに関する情報が表示されます。使用されているアクティブな領域と発生した追加の待機時間を示すグラフも表示されます。 |
Elasticデータ |
クラスタにElasticデータが構成されている場合、このタブにはRAMジャーナルおよびフラッシュ・ジャーナルの使用状況に関するグラフおよび情報が表示されます。各使用状況バーをクリックすると、詳細なノード情報を表示できます。 |
JCache |
クラスタがJCacheキャッシュを格納するために使用されている場合、このタブには、構成済キャッシュに関するJCache "Management"および"Statistics" MBean情報が表示されます。 |
HotCache |
クラスタにHotCacheノードが含まれている場合、このタブには実行中のHotCacheインスタンスがリストされます。インスタンスを選択すると、次のデータ・リフレッシュ時に、実行された操作の統計およびグラフがコンソールに表示されます。詳細な情報を表示するには、タブおよびキャッシュ操作をクリックします。 |
gRPCプロキシ |
クラスタにgRPCプロキシが構成されている場合、このタブには、送信および受信したリクエストと、成功および失敗したリクエストに関する情報が表示されます。メッセージ・レートと期間のグラフも表示されます。このタブは、JMXを介した接続時にのみ表示され、REST接続ではサポートされません。 |
親トピック: Coherence VisualVMプラグインの使用