JMX レポートの有効化

内容
apmdevops96jp
内容
このセクションでは、Java エージェントが JMX データをレポートできるようにする方法について説明します。
Java エージェントの JMX サポート
Introscope は、アプリケーション サーバまたは Java アプリケーションが JMX 互換の MBean として公開する管理データを収集できます。 Introscope は、それらの JMX データを Investigator メトリック ツリーに表示します。 Introscope は、以下のアプリケーション サーバを使用する、JMX 情報の収集をサポートしています。
注:
Introscope は、Sun JMX 仕様に組み込まれた MBean をサポートします。 Sun JMX 仕様の詳細については、「Java Management Extensions」(英語)を参照してください。
Introscope は、JMX データを Introscope のメトリック形式に変換して、Investigator 内の以下のノードの下に表示します。
<Domain>|<Host>|<Process>|AgentName|
JMX|
Introscope での WebLogic JMX メトリックのサポート
WebLogic は、JMX メトリックのソースとして以下の MBean を提供します。
  • RuntimeServiceMBean: サーバごとの実行時メトリック。アクティブで有効な設定を含みます。
  • DomainRuntimeServiceMBean: ドメイン全体の実行時メトリック。
  • EditServiceMBean: ユーザによる永続コレクションの編集を可能にします。
Introscope は、以下の理由から RuntimeServiceMBean だけをポーリングします。
  • RuntimeServiceMBean はローカル アクセスをサポートしている(効率の問題)。
  • RuntimeServiceMBean には妥当と考えられるデータのほとんどが含まれている。
デフォルトの JMX メトリック変換プロセス
Introscope では、デフォルトで Investigator に表示するために JMX メトリックが変換されます。 Introscope は、以下の場合に MBean を変換します。
注:
一致する MBean がないプライマリ キーを指定している場合、Introscope は、デフォルトの変換方法を使用します。
デフォルトの変換方法では、Introscope は、属性の名前と値の両方を表示し、このペアをメトリック ツリーにアルファベット順に一覧表示します。
<Domain>|<Host>|<Process>|AgentName|
JMX|
<domain name>|<key1>=<value1>|<key2>=<value2>:<metric>
たとえば、WebLogic MBean に以下の特性があるとします。
  • ドメイン名: WebLogic
  • キー/値のペア: category=server、type=jdbc
  • メトリック名: connections
プライマリ キーが IntroscopeAgent.profile の introscope.agent.jmx.name.primarykeys プロパティに指定されていない場合、MBean 属性は、以下の Introscope メトリックに変換されます。
<Domain>|<Host>|<Process>|AgentName|
JMX|Weblogic
|category=server|type=jdbc:connections
キー/値のペアは、Introscope メトリックではアルファベット順に表示されます。
プライマリ キーの変換を使用した JMX メトリックの簡素化
メトリックが JMX ノードの下に表示される順序を必要に応じて設定できます。 エージェント プロファイルでプライマリ キーを定義できます。 プライマリ キーは、MBean の ObjectName を識別します。
プライマリ キーの変換を設定しない場合、Introscope は JMX データの変換を行います。 デフォルト変換では、メトリックは、Investigator の JMX ノードの下にアルファベット順に一覧表示されます。 JMX データをメトリックに変換するこの方法により、簡素化されたメトリック名が作成されます。 生成されたメトリックのキー/値のペアの情報の順序を制御します。
動作は、エージェント プロファイルの introscope.agent.jmx.name.primarykeys プロパティで設定されます。 primarykeys プロパティの値は、一意に MBean を識別する MBeans JMX ObjectName の部分を指定します。 たとえば、WebLogic MBean の ObjectName には以下のキーが含まれます。
  • MBean の種類を指定する Type キー。
  • MBean が示すリソースの名前を指定する Name キー。
ObjectName のキー/値のペアは、MBean のタイプに応じてさまざまです。
Introscope は、以下の規則に従って、introscope.agent.jmx.name.primarykeys プロパティの値で識別される MBean を変換および表示します。
  • 表示されるのはキー値情報だけです。キー名は表示されません。
  • 値は primarykeys プロパティで定義された順になります。
  • 値の大文字と小文字が区別されます。
たとえば、WebLogic MBean に以下の特性があるとします。
  • ドメイン名: WebLogic
  • MBean ObjectName のキー/値のペア: category=server、type=jdbc
  • メトリック名: connections
以下のように設定するとします。
introscope.agent.jmx.name.primarykeys=type,category connections 属性は、以下の構造で Investigator ツリーに表示されます。
<IntroscopeDomain>|<Host>|<Process>|<Agent>|
JMX|Weblogic|jdbc|server:connections
JMX フィルタによるメトリックの量の管理
JMX フィルタの定義によって、Introscope で収集および表示される JMX MBean 情報が決まります。 フィルタが設定されていない場合は、
すべての
JMX MBean 情報がエージェントによって Enterprise Manager にレポートされるため、システム オーバーヘッドが増加します。
フィルタは、エージェント プロファイル ファイル IntroscopeAgent.profile の introscope.agent.jmx.name.filter プロパティで設定されます。 フィルタは、プロパティにカンマ区切りの文字列として入力されるキーワードです。 Introscope では、アスタリスク(*)および疑問符(?)のワイルドカード文字を使用したフィルタ文字列がサポートされています。
Introscope は、JMX で生成されたメトリックとフィルタ文字列を照合します。 一致するものが見つかった場合、一致するメトリックが Introscope にレポートされます。
返されるメトリックの量を制限するには、できるだけ絞り込むようにフィルタ文字列を定義します。 たとえば、1 つの MBean 属性と一致し、複数の MBean に存在するフィルタ文字列を定義します。 それらの MBean の
個々の
メトリックがレポートされます。 特定の MBean の属性だけが必要である場合は、フィルタ文字列内の MBean 名で属性名を修飾できます。
たとえば、JMSDestinationRuntime MBean の MessagesCurrentCount 属性値を取得するとします。
MessagesCurrentCount のメトリックの完全修飾名が以下の場合を考えます。
*SuperDomain*|host-name|Process|Agent-name|JMX|comp-1|
JMSDestinationRuntime|comp-2:MessagesCurrentCount
IntroscopeAgent.profile で introscope.agent.jmx.name.filter を以下のように定義します。
JMX|comp-1|JMSDestinationRuntime|comp-2:MessagesCurrentCount
WebLogic の JMX フィルタ
WebLogic 用の
IntroscopeAgent.profile
ファイルには、以下のキーワードがすでに定義されています。
  • ActiveConnectionsCurrentCount
  • WaitingForConnectionCurrentCount
  • PendingRequestCurrentCount
  • ExecuteThreadCurrentIdleCount
  • OpenSessionsCurrentCount
JMX レポートを使用するための WebSphere および WebLogic の設定
JMX をサポートするように Introscope を設定する方法は、使用するアプリケーション サーバによって異なります。 ここでは、WebLogic Server および WebSphere から JMX データを収集して表示するように Introscope を設定する方法について説明しています。
以下の手順に従います。
  1. 管理対象アプリケーションをシャットダウンします。
  2. WebSphere エージェントのみの場合は、IntroscopeAgent.profile で、introscope.agent.jmx.enable を true に設定します
    注:
    WebSphere エージェント プロファイルでのデフォルト値は false です。
  3. IntroscopeAgent.profile で、この行のコメント化を解除してプライマリ キーを設定します。
    introscope.agent.jmx.name.primarykeys
    注:
    プロパティの値を変更する場合、値では大文字と小文字を区別する必要があります。また、複数のキーはカンマで区切る必要があります。
  4. IntroscopeAgent.profile で、introscope.agent.jmx.name.filter プロパティのコメント化が解除されていることを確認します。
    注:
    フィルタには、バージョン番号などの MBean 属性を含める必要があります。 たとえば、以下の完全メトリック名があるとします。
    *SuperDomain*|MyServer01|WebSphere|WebSphere Agent|JMX|WebSphere|cell=Node03Cell|mbeanIdentifier=HAManager.thread.pool|name=HAManager.thread.pool|node=Node03|platform=dynamicproxy|process=server1|spec=1.0|type=ThreadPool|version=8.5.0.0:InactivityTimeout
    バージョン番号属性を含む、フィルタされたバージョンは以下のようになります。
    WebSphere|cell=Node03Cell|mbeanIdentifier=HAManager.thread.pool|name=HAManager.thread.pool|node=Node03|platform=dynamicproxy|process=server1|spec=1.0|type=ThreadPool|version=8.5.0.0
    または、単純に以下のようにします。
    WebSphere*|type=ThreadPool|*version*
  5. プロパティに、目的の文字列をカンマで区切って入力します。
    Introscope でフィルタ文字列を照合するには、正確なスペルで、大文字/小文字を区別して文字列を入力します。
  6. 変更を保存します。
  7. 管理対象アプリケーションを起動します。
  8. WebLogic Server の Introscope 起動クラス、または WebSphere のカスタム サービスを設定して、JMX データを有効にします。
WAS での JSR-77 データの有効化および JMX メトリックの表示
WebSphere で JSR-77 JMX MBean オブジェクトを収集、保持、およびレポートするように Introscope を設定できます。 J2EE 管理仕様である JSR-77 は、J2EE アーキテクチャの管理可能な部分を抽象化し、管理情報にアクセスするためのインターフェースを定義します。
以下の手順に従います。
  1. 管理対象アプリケーションをシャットダウンします。
  2. IntroscopeAgent.profile で、以下のプロパティが true であることを確認します。
    introscope.agent.jmx.enable=true
  3. IntroscopeAgent.profile で、以下のプロパティを設定して JSR-77 を有効にします。
    introscope.agent.jmx.name.jsr77.disable=false
  4. IntroscopeAgent.profile で以下のプロパティのコメント化を解除して、メトリック変換のプライマリ キー メソッドを設定します。
    introscope.agent.jmx.name.primaryKeys=J2EEServer,Application, j2eeType,JDBCProvider,name,mbeanIdentifier
    注:
    このプロパティ定義が含まれているのは、Introscope で提供されている WebSphere 用の IntroscopeAgent.profile のみです。
  5. レポートする JSR-77 メトリックを指定するには、以下のプロパティのコメント化を解除して設定します。
    introscope.agent.jmx.name.filter
    フィルタは必須ではありませんが、使用することを強くお勧めします。
  6. JSR-77 メトリックで、特定の Mbean 属性を除外するように指定するには、以下のプロパティのコメント化を解除し、必要に応じて更新します。
    introscope.agent.jmx.ignore.attributes=server