12 パフォーマンスのモニタリング
モジュラ開発と動的バインディングを特徴とするサービス志向の分散アプリケーションでは、1点集中管理が不可欠です。ユーザーはそこからアプリケーション全体の動作をモニターし、実際の問題や潜在的な問題を特定し、是正措置をとることができます。
この章の内容は次のとおりです。
分散アプリケーションのパフォーマンスをモニターするには、次のことが実行できる必要があります。
-
ユーザー・エクスペリエンスを検証して提供されるサービスの質を評価し、使用パターンを理解する。
-
アプリケーションを構成するコンポーネントを検出し、重要なリクエスト・フローを特定し、フローのどこでパフォーマンス問題やエラーが発生するかを判別する。
-
論理アプリケーションをサポートしているインフラストラクチャを調べることにより、または、より詳細な情報を取得することにより、低パフォーマンスおよび障害の根本原因を見つける。
このガイドで説明されている製品は組み合せて使用することにより、上述の機能を提供します。お使いのアプリケーションのパフォーマンスについて知るために、これらすべての製品を使用する必要はありません。たとえば、エンドユーザー・エクスペリエンスのモニタリングからスタートし、後でトランザクション・モニタリングを追加することも可能です。次のセクションでは、利用できる様々なモニタリング・オプションについて説明します。
モニタリング・ビューおよびモニタリング・ディメンション
エンドツーエンド・パフォーマンス・モニタリングには複数のビューとディメンションが必要です。
-
ルーティング・スキームとデータベース・アクセスを含む、論理アプリケーションのトポロジの完全なビュー
-
基盤となるインフラストラクチャの完全なビュー
-
使用されている分散アプリケーションに関する様々な詳細
-
Webベースのアプリケーションの場合は、ユーザーが訪問するWebページのhtmlソースへアクセスする機能
-
Java仮想マシンで実行されているアプリケーション・コンポーネントのマシンレベルの実行詳細へのアクセス
-
アプリケーションの論理ビューから物理ビューへ移動する機能
RUEI、JVMDおよびEnterprise Managerは、エンドツーエンド・パフォーマンス・モニタリングに必要な機能を提供します。前述のように、これらすべてをインストールし、構成する必要はありません。最もさしせまった問題に対処する製品をまず使用し、後でまた別に追加できます。
-
Real User Experience Insight (RUEI)
ユーザー・インタフェースでの問題を特定し、提供されるサービスの質を評価し、使用パターンを理解、予測するのを助けます。Enterprise Manager 13cでは、RUEIシステムを登録すると、各RUEIアプリケーション/スイートに対応するエンド・ユーザー・サービス(EUS)が自動的に作成されます。EUSは、RUEIアプリケーション/スイートと同じ名前が付けられ、ビジネス・アプリケーションを作成するために使用できます。
-
Java仮想マシン診断(JVMD)、Enterprise Manager
Java仮想マシンで実行されるサービスについて、リクエスト・フローおよびアプリケーション実行環境の内部メカニズムに関するサーバー・レベルのビューを提供します。JVMDが使用する実行コンテキストID (ECID)によって、ユーザーはイベントを互いに関連付けることができます。Fusion Middlewareは、トランザクション操作(メッセージ)を追跡するために使用できるECIDをインジェクトします。Enterprise Manager 13cでは、ECIDがまだない場合に、JVMDがECIDをデータストリームに設定できます。これによって、オラクル社以外のミドルウェア製品を使用する環境でJVMDがさらに役立つようになります。
-
ビジネス・アプリケーション、Enterprise Manager
ビジネス・アプリケーションを定義できます。この定義のコンテキストでユーザーはRUEI情報を表示、分析し、より詳細なモニタリング情報にアクセスできます。
Enterprise Manager 13cでは、RUEIアプリケーション/スイートそれぞれに対応して自動的に作成されるエンド・ユーザー・サービス(EUS)という新しいサービス・レベル・ターゲットがあります。1つのエンド・ユーザー・サービス(RUEIアプリケーション・スイート)のモニターが目的である場合は、ビジネス・アプリケーションを作成しなくてもかまいません。ただし、ビジネス・アプリケーションを使用すると様々なターゲットを組み合せることができます(複数のエンド・ユーザー・サービスおよびEUSターゲットの組合せなど)。
図12-1に単純なアプリケーション構成を示します:
-
RUEIはWebユーザーのアクションをモニターし、様々な方法で分割されたレポートを生成します。このレポートでは、特定のセッションまたはユーザー・フローにおいて、ページをリクエストしたユーザー、リクエストされたページ、影響を受けたサーバー、レスポンス時間、スループット率などが示されます。
-
JVMDは、各JVMで実行しているコードの洞察を提供し、Javaアプリケーションのリアルタイム診断および履歴診断が実現します。
注意:
このリリースのEnterprise Managerでは、ECIDを自動的に提供しないJavaアプリケーションのECIDヘッダーが自動的に追加されます。「Oracle Fusion Middlewareコンポーネント以外のコンポーネントのECID」で説明するように、以前はOracle Fusion Middlewareコンポーネントのみで使用可能だったトレースと診断を実行できるようになりました。
図12-1 RUEIおよびJVMDによるモニタリング
図12-2に示す複雑なアプリケーション構成では、アプリケーション・パフォーマンスの理解に不可欠なリクエスト・フロー(トランザクション)を定義し、モニターできます。開始されたトランザクション数、完了したトランザクション数、スループット、平均および最大レスポンス時間を一定期間について判定できます。
図12-2 RUEIおよびJVMDによるモニタリング
エンドツーエンド・アプリケーション・パフォーマンスをモニターするためにRUEIおよびJVMDを使用することに加え、Enterpriser Manager (EM)コンソールを使用してもRUEIアプリケーションのトランザクションを含むビジネス・アプリケーションをモニターできます。詳細は、「ビジネス・アプリケーションのモニタリング」を参照してください。
ECIDを使用してリクエストを追跡する
RUEIとJVMDではフォーカスおよび粒度レベルが異なるため、共有プロセスまたは共有要素を確認できるようにするために、共有された識別子を使用することは有益です。
実行コンテキストID (ECID)は、Oracleテクノロジ・スタックでコンポーネントに対するリクエストを追跡するために使用される識別子です。通常、ECIDはリクエストを処理する最も外側のOracleコンポーネントによって生成され、場合によってはサーバーの境界を越えて、そのリクエストを処理する他のOracleコンポーネントへと伝播されていきます。
注意:
このリリースのEnterprise Managerでは、ECIDを自動的に提供しないJavaアプリケーションのECIDヘッダーが自動的に追加されます。「Oracle Fusion Middlewareコンポーネント以外のコンポーネントのECID」で説明するように、以前はOracle Fusion Middlewareコンポーネントのみで使用可能だったトレースと診断を実行できるようになりました。
ECIDの作成と伝播により、コンポーネント間でのコンテキストおよび診断データの共有ができるようになります。ECIDは普遍的に使用されているわけではありませんが、使用されているところではエンドツーエンド診断の良き支えとなっています。
複数のテクノロジでメッセージ・トラフィックに対するECIDを生成しており、これにはRMI、JAX-RPC、JAX-WS、EJB、JMS、JDBC、ServletsおよびSOAが含まれています。(一部では、ECIDはWebLogicサーバー間での通信が発生する場合のみサポートされます。)
ECIDが使用される場合、ユーザーは全実行コンテキストにわたって同じオブジェクトを確かに追跡しているかどうかを判別できます。たとえば、同じECIDが共有されていれば、異なるターゲット・コンポーネントからのエラー・メッセージを関連付けることができます。
エンドツーエンド・パフォーマンス・モニタリングで使用されるコンポーネントはすべてECIDの使用をサポートしています。
-
RUEIはページ・オブジェクトに割り当てられたECIDを、特定のページに対する履歴に表示します。
-
また、ECIDを最も詳細レベルで使用すると、Java仮想マシンで実行中のスレッドまで特定することもできます。
-
さらに、Oracle Diagnostic Logging (ODL)フレームワークを使用するOracle Fusion Middlewareコンポーネントのログ・エントリと連携して、ECIDを使用することもできます。
HTTPサーバーまたはWebLogicサーバーにより、デフォルトでECIDが生成されるようにするには、My Oracle Supportのナレッジのドキュメント1527091.1の説明を参照してください。
Oracle Fusion Middlewareコンポーネント以外のコンポーネントのECID
このリリースのEnterprise Managerでは、ECIDを自動的に提供しないJavaアプリケーションのECIDヘッダーが自動的に追加されます。以前はOracle Fusion Middlewareコンポーネントのみで使用可能だったトレースと診断を実行できるようになりました。
Oracle Dynamic Monitoring Service (DMS)により、Oracle Fusion MiddlewareコンポーネントがECIDをレスポンスのX-ORACLE-DMS-ECIDヘッダーに含めることができます。Oracle Fusion Middlewareコンポーネントを使用していない場合、JVMDはダミーのECIDをX-ORACLE-DMS-ECIDヘッダーに作成します。このECIDは、Enterprise Managerがリクエストを特定できるように、DMS生成のECIDと同じ目的で使用されます。
注意:
ダミーECIDの生成が実行されるのは次の環境のみです。
-
DMSがアクティブではありません
-
JVMDがアプリケーション・サーバーにインストールされています
-
Enterprise Manager JVMターゲット構成ページでインスツルメンテーションが有効になっています
エンドツーエンド・モニタリングの設定
エンドツーエンド・モニタリングを得るためには、「モニタリング・ビューおよびモニタリング・ディメンション」に説明されている製品をインストール、構成し、接続する必要があります。すべての製品を一度にデプロイする必要はありません。必要な機能を提供する製品から始めて、後で別の製品を追加することができます。
この項ではパフォーマンス・モニタリングの各ディメンションについて、エンドツーエンド・アプリケーション・パフォーマンス・モニタリングを設定するために必要なステップについて説明します。各ステップの目的を説明し、参照できる関連資料をあげています。この項には、次の項目が含まれます。
設定の説明に進む前に、次の図を見て、デプロイによりエンドツーエンド・モニタリングを可能にする製品群のトポロジを理解してください。
図12-3は、RUEIコレクタ、EMエージェントおよびJVMDエージェントが、モニター対象環境においてどのようにデプロイされるかを示しています。
-
EMエージェントは、分散アプリケーションにより使用されるアプリケーション・サーバーとデータベース・サーバーをホストするマシン上にデプロイする必要があります。
-
JVMDエージェントは、アプリケーション・コンポーネントがデプロイされるアプリケーション・サーバーにデプロイする必要があります。
もちろん、これらのうちどれをデプロイするかは、必要とするビューによって異なります。たとえば、マシンレベルのランタイム情報に関心がない場合は、JVMDエージェントをデプロイする必要はありません。
図12-3 監視対象環境のエージェントとオブザーバ
図12-4はRUEI、OMSおよびJVMDが相互に、そして該当するデータ収集点にどのように接続されるかを示しています。
-
各処理エンジンはそれぞれのコンソールに接続し、それによって管理者はモニター対象オブジェクトを作成、更新できることが示されています。
-
Oracle Management ServerにRUEIおよびJVMDが接続する仕組みが示されています。ビジネス・アプリケーションの作成およびモニタリングを有効にするデータ共有が可能になります。
最小のユーザー環境は管理レイヤーの下に表示されています。
図12-4 モニター対象環境の処理エンジン
Enterprise Managerの設定
ビジネス・アプリケーションを作成し、モニターするためにはEnterprise Managerが必要です。マシンレベルのパフォーマンス・データを調査することにより、深層診断を行う場合にもEnterprise Managerは必要です。このオプションの詳細は、「Java仮想マシン診断の設定」を参照してください。
- Enterprise Managerをインストールし、構成します。詳細は、Oracle Enterprise Manager Cloud Control基本インストレーション・ガイドを参照してください
- RUEIによりモニターされるターゲットおよびアプリケーション・コンポーネントが実行されているホストに、Oracle Management Agentをインストールします。詳細は、Oracle Enterprise Manager Cloud Control基本インストレーション・ガイドを参照してください
- Enterprise Managerを起動し、Enterprise Managerコンソールを使用して、ビジネス・アプリケーションを作成、モニターします。
Java仮想マシン診断の設定
JVMDまたはRIDビューを使用してマシンレベルのパフォーマンス・データにアクセスするには、JVMDマネージャおよびJVMDエージェントをインストールする必要があります。JVMDはEnterprise Managerにとって欠かすことのできない構成員であるため、JVMDのインストールの前にEnterprise Managerをインストールしておくことが必要です。
Java仮想マシン診断を設定するには、次の手順を実行します。
RUEIによりモニターされるターゲットおよびサービスが稼働しているすべてのノードにJVMDエージェントをインストールします。このステップは所定のサーバーのJVMデータを収集するために必要です。詳細は、『Oracle Enterprise Manager Cloud Control基本インストレーション・ガイド』を参照してください。
ユーザー・ロールと権限
ユーザー・ロールと権限はコンポーネントの機能へのアクセス性を定義します。次のガイドラインは、アプリケーションのパフォーマンスをモニターするためにコンポーネントの操作を行う際に当てはまります。
-
一般的に、EMでのエンティティのモニターよりも、RUEIでのエンティティの作成の方が高い権限が必要です。
-
あるコンポーネントから別のコンポーネントへのクリックスルーでは、各コンソールのネイティブな認証システムに遭遇します。作業を行うために各コンポーネントについて必要な権限を持っていることを確認してください。
-
admin
およびsuperAdmin
ロールを除き、EM内のロールは必ずターゲットに関連付けられています。EMコンソールでユーザーに何が表示されるかは、特定のターゲットに関するそのユーザーのロールに依存します。 -
RUEIシステムをEMに登録するには
super admin
ロールが必要です。いったんRUEIシステムがEMに登録されると、ビジネス・アプリケーションを作成するためにsuper admin
ロールは必要ありません。 -
EMで使用される資格証明にアクセスしてRUEIと通信するには、RUEIシステム・ターゲットで
Create Any Target
権限およびView Target
権限を作成する必要があります。 -
「ビジネス・アプリケーションの管理」
および「ビジネス・アプリケーション」
メニュー・アイテムの「アプリケーション・パフォーマンス管理」リソース権限が必要です。 -
JVM診断データを表示するには
「JVM診断ユーザー」
権限が必要です。 -
ヒープやスレッドのスナップショットの作成および分析、スレッドのトレースなどのJVM診断操作を管理するには、
JVM診断管理者
権限が必要です。