第21章 JBoss Data Grid の管理ツール
21.1. JMX (Java Management Extensions) リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
21.1.1. Java Management Extensions (JMX) について リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
Java Management Extensions (JMX) は、アプリケーション、デバイス、システムオブジェクト、およびサービス指向ネットワークを管理および監視するツールを提供する Java ベースの技術です。これらの各オブジェクトは
MBeans によって管理および監視されます。
JMX はミドルウェア管理の事実上の業界標準です。そのため、JBoss Data Grid では管理および統計情報を公開するために JMX が使用されます。
21.1.2. JBoss Data Grid における JMX の使用 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
JBoss Data Grid インスタンスの管理は、関連する統計情報をできるだけ多く公開することを目的としています。この統計情報により、管理者は各インスタンスの状態を確認することができます。1 つのインストールは数十または数百のインスタンスを構成することがあるため、各インスタンスの統計情報を明確で簡潔に公開し、表示する必要があります。
このような統計情報を公開し、管理者に対して適切な情報を見やすく表示するため、JBoss Data Grid では、JMX は JBoss Operations Network (JON) と共に使用されます。
21.1.3. JMX 統計レベル リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
JMX 統計は、次の 2 つのレベルで有効にすることが可能です。
- 個別のキャッシュインスタンスによって管理情報が生成されるキャッシュレベル。
CacheManagerレベル。このレベルでは、CacheManagerエンティティーがCacheManagerより作成されたすべてのキャッシュインスタンスを管理します。そのため、管理情報は個別のキャッシュではなく、これらすべてのキャッシュインスタンスに対して生成されます。
21.1.4. キャッシュインスタンスに対して JMX を有効にする リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
キャッシュレベルでは、次のように宣言的またはプログラムを用いて JMX 統計を有効にすることができます。
キャッシュレベルで JMX を宣言的に有効にする
デフォルトキャッシュインスタンスに対する <default> 要素内または特定の名前付きキャッシュに対するターゲット <namedCache> 要素下に、次のスニペットを追加します。
<jmxStatistics enabled="true"/>
<jmxStatistics enabled="true"/>
キャッシュレベルでプログラムを用いて JMX を有効にする
プログラムを用いて JMX をキャッシュレベルで有効にするには、以下のコードを追加します。
Configuration configuration = ... configuration.setExposeJmxStatistics(true);
Configuration configuration = ...
configuration.setExposeJmxStatistics(true);
21.1.5. CacheManagers に対して JMX を有効にする リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
CacheManager レベルでは、次のように宣言的またはプログラムを用いて JMX 統計を有効にすることができます。
CacheManager レベルで JMX を宣言的に有効にする
次の <global> 要素を追加して、CacheManager レベルで JMX を宣言的に有効にします。
<globalJmxStatistics enabled="true"/>
<globalJmxStatistics enabled="true"/>
CacheManager レベルでプログラムを用いて JMX を有効にする
次のコードを追加して、プログラムを用いて JMX を CacheManager で有効にします。
GlobalConfiguration globalConfiguration = ... globalConfiguration.setExposeGlobalJmxStatistics(true);
GlobalConfiguration globalConfiguration = ...
globalConfiguration.setExposeGlobalJmxStatistics(true);
21.1.6. 複数の JMX ドメイン リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
複数の
CacheManager インスタンスが 1 つの仮想マシンに存在したり、キャッシュインスタンスの名前が CacheManager クラスと異なる場合に、JMX ドメインが複数使用されます。
この問題を解決するには、JMX や JBoss Operations Network などの監視ツールが簡単に識別および使用できるような名前を各
CacheManager に付けるようにします。
CacheManager の名前を宣言的に設定する
次のスニペットを関係する CacheManager 設定に追加します。
<globalJmxStatistics enabled="true" cacheManagerName="Hibernate2LC"/>
<globalJmxStatistics enabled="true" cacheManagerName="Hibernate2LC"/>
CacheManager の名前をプログラミングで設定する
次のコードを追加し、プログラムを用いて CacheManager の名前を設定します。
GlobalConfiguration globalConfiguration = ...
globalConfiguration.setExposeGlobalJmxStatistics(true);
globalConfiguration.setCacheManagerName("Hibernate2LC");
GlobalConfiguration globalConfiguration = ...
globalConfiguration.setExposeGlobalJmxStatistics(true);
globalConfiguration.setCacheManagerName("Hibernate2LC");
21.1.7. MBean について リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
MBean は、サービス、コンポーネント、デバイス、またはアプリケーションなどの管理可能なリソースを表します。
JBoss Data Grid は複数の側面を監視および管理する
MBeans を提供します。例えば、トランスポート層で統計を提供する MBeans などが提供されます。JBoss Data Grid サーバーは、JMX 統計で設定されます。JMX 統計はホスト名、ポート、読み取りバイト、書き込みバイト、およびワーカースレッドの数を提供する MBean で、次の場所に存在します。
jboss.infinispan:type=Server,name=<Memcached|Hotrod>,component=Transport
jboss.infinispan:type=Server,name=<Memcached|Hotrod>,component=Transport
21.1.8. MBean を理解する リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
キャッシュマネージャーまたはキャッシュレベルで JMX レポートが有効になっている場合、JConsole や VisualVM などの標準的な JMX GUI を使用して JBoss Data Grid を実行する Java 仮想マシンに接続します。接続した場合、次の
MBean を使用できます。
- キャッシュマネージャーレベルの JMX 統計が有効になっている場合、
jboss.infinispan:type=CacheManager,name="DefaultCacheManager"という名前のMBeanが存在し、キャッシュマネージャーMBeanによってプロパティーが指定されます。 - キャッシュレベルの JMX 統計が有効になっている場合、使用される設定に応じて複数の
MBeanが表示されます。例えば、ライトビハインドキャッシュストアが設定されている場合、キャッシュストアコンポーネントに属するプロパティーを公開するMBeanが表示されます。すべてのキャッシュレベルMBeansは同じ形式を使用します。jboss.infinispan:type=Cache,name="<name-of-cache>(<cache-mode>)",manager="<name-of-cache-manager>",component=<component-name>
jboss.infinispan:type=Cache,name="<name-of-cache>(<cache-mode>)",manager="<name-of-cache-manager>",component=<component-name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow この形式の詳細は次の通りです。cache-container要素のdefault-cache属性を使用してキャッシュのデフォルト名を指定します。cache-modeはキャッシュのキャッシュモードに置き換えられます。可能な列挙値を小文字にしたものがキャッシュモードを表します。component-nameは、 JMX 参考ドキュメントにある JMX コンポーネント名の 1 つに置き換えられます。
例えば、同期分散に対して設定されたデフォルトキャッシュのキャッシュストア JMX コンポーネント
MBean は次のように命名されます。
jboss.infinispan:type=Cache,name="default(dist_sync)", manager="default",component=CacheStore
jboss.infinispan:type=Cache,name="default(dist_sync)", manager="default",component=CacheStore
ユーザー定義の名前でサポートされていない文字が使用されないようにするため、キャッシュおよびキャッシュマネージャーの名前は引用符で囲まれています。
21.1.9. デフォルトでない MBean サーバーでの MBean の登録 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
使用されるすべての MBean がデフォルトで登録される場所は、標準の JVM MBeanServer プラットフォームです。ユーザーは代替の MBeanServer インスタンスを設定することもできます。MBeanServerLookup インターフェースを実装して、確実に
getMBeanServer() メソッドが希望の (デフォルト以外の) MBeanServer を返すようにします。
デフォルト以外の場所を設定して MBean を登録するには、実装を作成し、クラスの完全修飾名を用いて JBoss Data Grid を設定します。例は次の通りです。
完全修飾ドメイン名を宣言的に追加する
次のスニペットを追加します。
<globalJmxStatistics enabled="true" mBeanServerLookup="com.acme.MyMBeanServerLookup"/>
<globalJmxStatistics enabled="true" mBeanServerLookup="com.acme.MyMBeanServerLookup"/>
完全修飾ドメイン名をプログラミングで追加する
次のコードを追加します。
GlobalConfiguration globalConfiguration = ...
globalConfiguration.setExposeGlobalJmxStatistics(true);
globalConfiguration.setMBeanServerLookup("com.acme.MyMBeanServerLookup")
GlobalConfiguration globalConfiguration = ...
globalConfiguration.setExposeGlobalJmxStatistics(true);
globalConfiguration.setMBeanServerLookup("com.acme.MyMBeanServerLookup")