第17章 管理ツール
Red Hat Data Grid インスタンスの管理はすべて関連する統計情報を公開し、管理者が各 Red Hat Data Grid インスタンスの状態を確認できるようにします。1 つのインストールで数十万または数百の Red Hat Data Grid インスタンスを使用でき、効率的な方法で明確かつ簡潔な情報を提供することは必須です。以下のセクションでは、Red Hat Data Grid が提供する管理ツールの範囲を説明します。
17.1. JMX
これまでは、JMX はミドルウェアの管理および管理のためのデファクト標準となっています。その結果、Red Hat Data Grid チームは、管理情報や統計情報を公開するために、この技術を標準としています。
17.1.1. 公開される MBean について
JConsole や VisualVM などの標準の JMX GUI で Red Hat Data Grid が実行されている仮想マシンに接続すると、以下の MBean を見つける必要があります。
- CacheManager レベルの JMX 統計については、CacheManager MBean に よって指定されたプロパティーを持つ org.infinispan:type=CacheManager,name="DefaultCacheManager" という MBean が表示されるはずです。
- globalJmxStatistics XML 要素で cacheManagerName 属性を使用するか、対応する GlobalJmxStatisticsConfigurationBuilder.cacheManagerName(String cacheManagerName)呼び出しを使用すると、JMX オブジェクト名の一部として名前が使用されるようにキャッシュマネージャーに名前を付けることができます。そのため、名前が「Hibernate2LC」であった場合、キャッシュマネージャーの JMX 名は org.infinispan:type=CacheManager,name="Hibernate2LC" になります。これにより、JMX のベストプラクティス に従って複数のキャッシュマネージャーがデプロイされる環境を管理する優れたクリーン方法が提供されます。
-
キャッシュレベルの JMX 統計では、どの設定オプションが有効になっているかによって、いくつかの異なる MBean が表示されるはずです。たとえば、キャッシュストアの背後で書き込みを設定している場合、キャッシュストアコンポーネントに属する MBean を公開するプロパティーが表示されるはずです。すべてのキャッシュレベル MBean は、
org.infinispan:type=Cache,name="${name-of-cache}(${cache-mode})",manager="${name-of-cache-manager}",component=${component-name}
と同じ形式に従います。 -
${name-of-cache} は実際のキャッシュ名に置き換えられました。このキャッシュがデフォルトのキャッシュを表す場合は、その名前が
defaultCache
になります。 - ${cache-mode} はキャッシュのキャッシュモードに置き換えられました。キャッシュモードは、に示される可能な列挙値の小文字バージョンで表されます。https://access.redhat.com/webassets/avalon/d/red-hat-data-grid/7.3/api/org/infinispan/configuration/cache/CacheMode
-
${name-of-cache-manager} が、このキャッシュが属するキャッシュマネージャーの名前に置き換えられました。名前は
globalJmxStatistics
要素の cacheManagerName 属性値から取得されます。 - ${component-name} は、JMX 参照ドキュメント の JMX コンポーネント名の 1 つに置き換えられました。
たとえば、同期ディストリビューションで設定されたデフォルトキャッシュのキャッシュストア JMX コンポーネント MBean の名前は、org.infinispan:type=Cache,name="___defaultcache(dist_sync)",manager="DefaultCacheManager",component=CacheStore
になります。
キャッシュおよびキャッシュマネージャー名は、これらのユーザー定義の名前で使用される不正な文字から保護するために引用符で囲まれることに注意してください。
17.1.2. JMX 統計の有効化
前のセクションで説明した MBean は常に MBeanServer に作成および登録されるため、キャッシュを管理できますが、一部の属性では統計のコレクションを有効にする追加の手順がない限り、意味のある値が公開されません。JMX による統計の収集およびレポートは、2 つの異なるレベルで有効にできます。
CacheManager レベル
CacheManager は、そこから作成されたすべてのキャッシュインスタンスを管理するエンティティーです。CacheManager 統計コレクションの有効化は、設定スタイルによって異なります。
XML で CacheManager を設定する場合は、以下の XML を <
cache-container /> 要素の下に追加し
てください。<cache-container statistics="true"/>
CacheManager をプログラム的に設定する場合は、以下のコードを追加するだけです。
GlobalConfigurationBuilder globalConfigurationBuilder = ... globalConfigurationBuilder.globalJmxStatistics().enable();
キャッシュレベル
このレベルでは、各キャッシュインスタンスによって生成された管理情報を受信します。キャッシュ統計コレクションの有効化は、設定スタイルによって異なります。
XML で Cache を設定する場合は、<
local-cache /> などの最上位のキャッシュ要素の下に以下の XML を追加して
ください。<local-cache statistics="true"/>
キャッシュをプログラム的に設定する場合は、以下のコードを追加するだけです。
ConfigurationBuilder configurationBuilder = ... configurationBuilder.jmxStatistics().enable();
17.1.3. クラスターの正常性のモニタリング
JMX を使用して Red Hat Data Grid クラスターの正常性を監視することもできます。CacheManager には、CacheContainerHealth
と呼ばれる追加のオブジェクトがあります。これには、以下の属性が含まれます。
- cacheHealth: キャッシュと対応するステータス(HEALTHY、UNHEALTHY、REBALANCING)の一覧
- clusterHealth - cluster health
- clusterName - クラスター名
- freeMemoryKb: KB で測定される JVM ランタイムから取得した空きメモリー
- numberOfCpus: JVM ランタイムから取得した CPU の数
- numberOfNodes: クラスター内のノード数
- totalMemoryKb: KB で測定された JVM ランタイムから取得した合計メモリー
17.1.4. 複数の JMX ドメイン
単一の仮想マシンに複数の CacheManager インスタンスが作成されるか、同じ仮想マシンのクラッシュ下で異なる CacheManager に属する Cache 名が作成される可能性があります。
マルチキャッシュマネージャー環境に異なる JMX ドメインを使用することは、最後にすべきです。代わりに、キャッシュマネージャーに名前を付けて、監視ツールにより簡単に識別し、使用できるようになりました。以下に例を示します。
- XML 経由:
<cache-container statistics="true" name="Hibernate2LC"/>
- プログラムで行う:
GlobalConfigurationBuilder globalConfigurationBuilder = ... globalConfigurationBuilder.globalJmxStatistics() .enable() .cacheManagerName("Hibernate2LC");
これらのオプションのいずれかを使用すると、CacheManager MBean 名が org.infinispan:type=CacheManager,name="Hibernate2LC"
になります。
その間は、ドメインが重複している場合や、JMX 名を重複させる必要がある場合は、独自の jmxDomain を設定できますが、同じ JVM 内の異なるキャッシュマネージャーの名前が同等になる特殊なケースに限定する必要があります。
17.1.5. 非デフォルト MBean サーバーでの MBean の登録
Red Hat Data Grid がこれらすべての MBean を登録する場所を説明しましょう。デフォルトでは、Red Hat Data Grid は 標準の JVM MBeanServer プラットフォーム に登録します。ただし、これらの MBean を異なる MBean インスタンスに登録する場合があります。たとえば、アプリケーションサーバーは、デフォルトのプラットフォームとは別の MBeanServer インスタンスと連携する場合があります。このような場合、Red Hat Data Grid が提供する MBeanServerLookup インターフェース を実装する必要があります。これにより、getMBeanServer()メソッド は管理 MBean を登録する MBeanServer を返します。実装の準備ができたら、このクラスの完全修飾名で Red Hat Data Grid を設定するだけです。以下に例を示します。
- XML 経由:
<cache-container statistics="true"> <jmx mbean-server-lookup="com.acme.MyMBeanServerLookup" /> </cache-container>
- プログラムで行う:
GlobalConfigurationBuilder globalConfigurationBuilder = ... globalConfigurationBuilder.globalJmxStatistics() .enable() .mBeanServerLookup(new com.acme.MyMBeanServerLookup());
17.1.6. 利用可能な MBean
利用可能な MBean の完全リストは、JMX リファレンスドキュメントを参照してください。