ここでは、分散アプリケーションのパフォーマンス・モニタリングに関連する問題やタスクについて説明します。
モジュラ開発と動的バインディングを特徴とするサービス志向の分散アプリケーションでは、1点集中管理が不可欠です。ユーザーはそこからアプリケーション全体の動作をモニターし、実際の問題や潜在的な問題を特定し、是正措置をとることができます。
この章の内容は次のとおりです。
分散アプリケーションのパフォーマンスをモニターするには、次のことが実行できる必要があります。
ユーザー・エクスペリエンスを検証して提供されるサービスの質を評価し、使用パターンを理解する。
アプリケーションを構成するコンポーネントを検出し、重要なリクエスト・フローを特定し、フローのどこでパフォーマンス問題やエラーが発生するかを判別する。
論理アプリケーションをサポートしているインフラストラクチャを調べることにより、または、より詳細な情報を取得することにより、低パフォーマンスおよび障害の根本原因を見つける。
このガイドで説明されている製品は組み合せて使用することにより、上述の機能を提供します。お使いのアプリケーションのパフォーマンスについて知るために、これらすべての製品を使用する必要はありません。たとえば、エンドユーザー・エクスペリエンスのモニタリングからスタートし、後でトランザクション・モニタリングを追加することも可能です。次のセクションでは、利用できる様々なモニタリング・オプションについて説明します。
エンドツーエンド・パフォーマンス・モニタリングには複数のビューとディメンションが必要です。
ルーティング・スキームとデータベース・アクセスを含む、論理アプリケーションのトポロジの完全なビュー
基盤となるインフラストラクチャの完全なビュー
使用されている分散アプリケーションに関する様々な詳細
Webベースのアプリケーションの場合は、ユーザーが訪問するWebページのhtmlソースへアクセスする機能
Java仮想マシンで実行されているアプリケーション・コンポーネントのマシンレベルの実行詳細へのアクセス
アプリケーションの論理ビューから物理ビューへ移動する機能
RUEI、JVMD、BTMおよび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がさらに役立つようになります。
Seleniumビーコン、Enterprise Manager
Seleniumは、Webアプリケーション・テスト用のフレームワークです。これを使用して、Enterprise Managerに「汎用サービス - テスト・ベース」として統合できるテストを作成できます。サービス・テストの作成の詳細はOracle Enterprise Manager Cloud Control管理者ガイド、「Seleniumトランザクション」テスト・タイプの詳細はオンライン・ヘルプを参照してください。
ビジネス・アプリケーション、Enterprise Manager
ビジネス・アプリケーションを定義できます。この定義のコンテキストでユーザーはRUEIおよびBTM情報を表示、分析し、より詳細なモニタリング情報にアクセスできます。
Enterprise Manager 13cでは、RUEIアプリケーション/スイートそれぞれに対応して自動的に作成されるエンド・ユーザー・サービス(EUS)という新しいサービス・レベル・ターゲットがあります。1つのエンド・ユーザー・サービス(RUEIアプリケーション・スイート)のモニターが目的である場合は、ビジネス・アプリケーションを作成しなくてもかまいません。ただし、ビジネス・アプリケーションを使用すると様々なターゲットを組み合せることができます(複数のエンド・ユーザー・サービスやBTM、システムおよびEUSターゲットの組合せなど)。
Business Transaction Management (BTM)
アプリケーションを構成するコンポーネントを検出し、特別に重要な操作を含むトランザクションをユーザーが定義できるようにします。ユーザーはアプリケーションが様々なサーバーを介して実行する作業(多層実行)を追跡でき、さらに、分散アプリケーションのトポロジを表示できます。BTMが最も有効なのは、JVMがデータベースと連動しない場合、または複雑なWebサービスの相互作用がある環境です(それ以外の場合は、環境のモニターはJVMD、Selenium、RUEIのいずれかまたは組合せによって対処できます)。
図13-1に単純なアプリケーション構成を示します。
RUEIはWebユーザーのアクションをモニターし、様々な方法で分割されたレポートを生成します。このレポートでは、特定のセッションまたはユーザー・フローにおいて、ページをリクエストしたユーザー、リクエストされたページ、影響を受けたサーバー、レスポンス時間、スループット率などが示されます。
JVMDは、各JVMで実行しているコードの洞察を提供し、Javaアプリケーションのリアルタイム診断および履歴診断が実現します。
注意: このリリースのEnterprise Managerでは、ECIDを自動的に提供しないJavaアプリケーションのECIDヘッダーが自動的に追加されます。第13.2.1項「Oracle Fusion Middlewareコンポーネント以外のコンポーネントのECID」で説明するように、以前はOracle Fusion Middlewareコンポーネントのみで使用可能だったトレースと診断を実行できるようになりました。 |
図13-2に示す複雑なアプリケーション構成では、BTMにより、ユーザーはバックエンド・アプリケーション・コンポーネントを検出して、アプリケーション・パフォーマンスの理解に不可欠なリクエスト・フロー(トランザクション)を定義し、モニターできます。所定の期間について、開始したトランザクションや完了したトランザクションの数、スループット、平均および最大レスポンス時間を判別できます。図13-2の例では、バックエンド・コンポーネントは、BTMを使用してトランザクションを分析する場合に最も効果的なOracle Service Busを使用しています。ただし、BTMでは多くのサード・パーティ・システムがサポートされており他の構成でも使用することができます。
エンドツーエンド・アプリケーション・パフォーマンスをモニターするためにRUEI、BTMおよびJVMDを使用することに加え、Enterpriser Manager (EM)コンソールを使用してもRUEIアプリケーションやBTMトランザクションを含むビジネス・アプリケーションをモニターできます。詳細は、第17章「ビジネス・アプリケーションのモニタリング」を参照してください。
RUEI、BTMおよびJVMDは、それぞれターゲットとしているものと監視の詳細度が異なっているため、共有のIDを持つことで、診断における処理や要素の共有を実現していくことができます。
実行コンテキストID (ECID)は、Oracleテクノロジ・スタックでコンポーネントに対するリクエストを追跡するために使用される識別子です。通常、ECIDはリクエストを処理する最も外側のOracleコンポーネントによって生成され、場合によってはサーバーの境界を越えて、そのリクエストを処理する他のOracleコンポーネントへと伝播されていきます。
注意: このリリースのEnterprise Managerでは、ECIDを自動的に提供しないJavaアプリケーションのECIDヘッダーが自動的に追加されます。第13.2.1項「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を、特定のページに対する履歴に表示します。
BTM側で受信メッセージにECIDが付いているのを検出すると、そのECIDをそのメッセージの固有プロパティとして割り当てます。その後、ユーザーは特定のECIDを持つメッセージを検索し、表形式で表示された各操作を見れば、どの操作に同じECIDが付いているかを判別できます。(同じ操作のリクエスト・メッセージとレスポンス・メッセージは、異なるECIDを持つ場合があります。)
また、ECIDを最も詳細レベルで使用すると、Java仮想マシンで実行中のスレッドまで特定することもできます。
さらに、Oracle Diagnostic Logging (ODL)フレームワークを使用するOracle Fusion Middlewareコンポーネントのログ・エントリと連携して、ECIDを使用することもできます。
HTTPサーバーまたはWebLogicサーバーにより、デフォルトでECIDが生成されるようにするには、My Oracle Supportのナレッジのドキュメント1527091.1の説明を参照してください。
このリリースの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の生成が実行されるのは次の環境のみです。
|
エンドツーエンド・モニタリングを得るためには、第13.1項「モニタリング・ビューおよびモニタリング・ディメンション」に説明されている製品をインストール、構成し、接続する必要があります。すべての製品を一度にデプロイする必要はありません。必要な機能を提供する製品から始めて、後で別の製品を追加することができます。
この項ではパフォーマンス・モニタリングの各ディメンションについて、エンドツーエンド・アプリケーション・パフォーマンス・モニタリングを設定するために必要な手順について説明します。各手順の目的を説明し、参照できる関連資料をあげています。この項には、次が含まれます。
設定の説明に進む前に、次の図を見て、デプロイによりエンドツーエンド・モニタリングを可能にする製品群のトポロジを理解してください。
図13-3は、RUEIコレクタ、EMエージェント、BTMオブザーバおよびJVMDエージェントが、モニター対象環境においてどのようにデプロイされるかを示しています。
EMエージェントは、分散アプリケーションにより使用されるアプリケーション・サーバーとデータベース・サーバーをホストするマシン上にデプロイする必要があります。
BTMエージェントとJVMDエージェントは、アプリケーション・コンポーネントがデプロイされるアプリケーション・サーバーにデプロイする必要があります。
もちろん、これらのうちどれをデプロイするかは、必要とするビューによって異なります。たとえば、マシンレベルのランタイム情報に関心がない場合は、JVMDエージェントをデプロイする必要はありません。
図13-4はRUEI、OMS、JVMDおよびBTMが相互に、そして該当するデータ収集点にどのように接続されるかを示しています。
各処理エンジンはそれぞれのコンソールに接続し、それによって管理者はモニター対象オブジェクトを作成、更新できることが示されています。
RUEI、JVMDおよびBTMがOracle Management Serverにどのように接続され、ビジネス・アプリケーションの作成とモニタリングを可能にするデータ共有を実現しているかが示されています。
最小のユーザー環境は管理レイヤーの下に表示されています。
ビジネス・アプリケーションを作成し、モニターするためにはEnterprise Managerが必要です。マシンレベルのパフォーマンス・データを調査することにより、深層診断を行う場合にもEnterprise Managerは必要です。このオプションの詳細は、第13.3.2項「Java仮想マシン診断の設定」を参照してください。
Enterprise Managerを設定するには、次の手順を実行します。
Enterprise Managerをインストールし、構成します。詳細は、『Oracle Enterprise Manager Cloud Control基本インストレーション・ガイド』を参照してください。
RUEIまたはBTMによりモニターされるターゲットおよびアプリケーション・コンポーネントが実行されているホストに、Oracle Management Agentをインストールします。『Oracle Enterprise Manager Cloud Control基本インストレーション・ガイド』のOracle Management Agentのインストールに関する説明を参照してください。
Enterprise Managerを起動し、Enterprise Managerコンソールを使用して、ビジネス・アプリケーションを作成、モニターします。「Business Transaction Managementの設定」を参照してください。
JVMDまたはRIDビューを使用してマシンレベルのパフォーマンス・データにアクセスするには、JVMDマネージャおよびJVMDエージェントをインストールする必要があります。JVMDはEnterprise Managerにとって欠かすことのできない構成員であるため、JVMDのインストールの前にEnterprise Managerをインストールしておくことが必要です。
Java仮想マシン診断を設定するには、次の手順を実行します。
Enterprise ManagerにJVMDマネージャをデプロイ(JVM診断エンジン)します。この手順はJVMモニタリング・データにアクセスするために必要です。詳細は、『Oracle Enterprise Manager Cloud Control基本インストレーション・ガイド』のJVM診断のインストールに関する説明を参照してください。
RUEIおよびBTMによりモニターされるターゲットおよびサービスが稼働しているすべてのノードにJVMDエージェントをインストールします。この手順は所定のサーバーのJVMデータを収集するために必要です。詳細は、『Oracle Enterprise Manager Cloud Control基本インストレーション・ガイド』のJVM診断のインストールに関する説明を参照してください。
ユーザー・エクスペリエンスについての情報を取得するには、RUEIをインストールして構成し、その後にこれをEnterprise Managerに登録する必要があります。
RUEIをインストールし、構成します。この手順には次のタスクが含まれます。
モニター対象環境にコレクタ、プロセッサおよびレポータをインストールします。
レポータ・データベースをインストールします。
RUEIレポータを構成します。
RUEIを構成し、ユーザーの識別、アプリケーションを構成するページ集合の指定、モニタリング範囲の指定、メール通知の構成、およびセキュリティ・オプションの提供ができるようにします。また、この時点でOracle Enterprise Managerへの接続も設定します。詳細は、適切なRUEIドキュメント・ライブラリからOracle Real User Experience Insightインストレーション・ガイドを参照してください。
http://www.oracle.com/technetwork/documentation/realuserei-091455.html
RUEIをEnterprise Managerに登録します。レポータ・システムへのアクセスが可能で、アクセス資格証明の指定ができるポートを指定します。この手順はRUEIとEMとの通信を確立するために必要です。詳細は、第17章「ビジネス・アプリケーションのモニタリング」を参照してください。
アプリケーション・コンポーネントを検出し、トランザクションを定義し、それらのモニタリング・オプションを定義するには、Business Transaction Managementを使用する必要があります。ビジネス・アプリケーションのモニタリングのコンテキストでは、BTMは多層間トランザクションのモニターに使用され、単一層アプリケーションには必要とされません。
Business Transaction Managementを設定するには、次の手順を実行します。
BTMをインストールし、構成します。この手順には次のタスクが含まれます。
セントラル・サーバーのインストールと構成。(この時点で、Oracle Enterprise Managerサーバーへの接続も構成できます。)
モニターのインストールと構成。これにより、モニターとオブザーバ間の通信が定義されます。
モニター対象のサービスをホストしている各サーバーへのオブザーバのインストール。
詳細は、『Oracle Business Transaction Managementインストレーション・ガイド』を参照してください。
JVMDへのアクセスを有効にします。この手順はBTMからJVMDビューおよびRIDビューにアクセスするために必要です。詳細は、Oracle Business Transaction Managementオンライン・ヘルプの「JVMDおよびRIDビューへのアクセスの有効化」に関する説明を参照してください。
BTMでトラフィックを待ち、サービスを検出し、トランザクションを定義します。BTMでの検出は常に動的です。本番環境ではトラフィックを待ってから、アプリケーション・コンポーネントを検出できます。テスト環境では、検出を有効化するためにトラフィックを実行する必要があります。詳細は、Oracle Business Transaction Managementオンライン・ヘルプを参照してください。
BTMをEnterprise Managerに登録します。Sphereへのアクセスが可能で、アクセス資格証明の指定ができるポートを指定します。この手順はBTMとEMとの通信を確立するために必要です。詳細は、第17章「ビジネス・アプリケーションのモニタリング」を参照してください。
エンドツーエンド・モニタリングでは、RUEIアプリケーション(エンド・ユーザー・サービス)、BTMトランザクション、およびそれらをサポートするシステムを組み込んだビジネス・アプリケーションを作成します。使用するビジネス・アプリケーションは徐々に構築することができます。まずRUEIアプリケーションのみを含めることから始め、その後、関連するトランザクションを追加していくことができます。最初はRUEIアプリケーションもBTMトランザクションも含めずに、分散アプリケーションをサポートするシステムをつぶさに調べることから始めることもできます。
ビジネス・アプリケーションを作成するには、次の手順を実行します。
モニター対象アプリケーション・コンポーネントが稼働しているホストおよびコンテナを指定するシステムをEnterprise Manager内に作成します。これらのホストとコンテナは、ご使用の分散アプリケーションのインフラストラクチャです。この手順は、基盤となっているインフラストラクチャの状態についての情報を、Enterprise Managerが収集し、戻すために必要です。詳細は、Enterprise Managerコンソールのオンライン・ヘルプを参照してください。
Enterprise Managerコンソールを使用してビジネス・アプリケーションを作成します。この手順は、ビジネス・アプリケーションに含めるRUEIアプリケーション(エンド・ユーザー・サービス)とBTMトランザクションを指定し、どのシステムが(ステップ1)ビジネス・アプリケーションをサポートするかを指定します。詳細は、第17章「ビジネス・アプリケーションのモニタリング」を参照してください。
注意: Enterprise Manager 13cでは、RUEIアプリケーション/スイートそれぞれに対応するエンド・ユーザー・サービス(EUS)という新しいサービス・レベル・ターゲットがあります。EUSは、RUEIアプリケーション/スイートと同じ名前が付けられ、ビジネス・アプリケーションを作成するために使用されます。 |
ビジネス・アプリケーションをモニターします。Enterprise Managerコンソールを使用して、ビジネス・アプリケーションのパフォーマンスをモニターします。詳細は、第17章「ビジネス・アプリケーションのモニタリング」を参照してください。
必要に応じてRUEIアプリケーションを編集します。
RUEIアプリケーションを定義してあったが、データを別の形で切り分けるように、またはキー・パフォーマンス・インジケータを再設定するように定義を変更する必要があることが、Enterprise Managerでのモニタリング結果からわかった場合は、RUEIコンソールを使用してアプリケーションの定義を変更する必要があります。詳細は、次のURLで、対応する『Oracle Real User Experience Insightユーザーズ・ガイド』を参照してください。
http://www.oracle.com/technetwork/documentation/realuserei-091455.html
Enterprise Managerは新しい定義により自動的に更新されます。
必要に応じてBTMトランザクションを編集します。
トランザクションを定義してあったが、モニタリング結果から、トランザクション定義を変更して収集するデータ量の増減、プロパティや条件の追加、またはキー・パフォーマンス・インジケータの再設定を行う必要があることがわかった場合は、BTMコンソールを使用してトランザクションの定義を変更する必要があります。詳細は、Oracle Business Managementオンライン・ヘルプを参照してください。
EMは新しい定義により自動的に更新されます。
ユーザー・ロールと権限はコンポーネントの機能へのアクセス性を定義します。次のガイドラインは、アプリケーションのパフォーマンスをモニターするためにコンポーネントの操作を行う際に当てはまります。
全般的に、RUEIおよびBTMでエンティティを作成するには、それらのエンティティをEMでモニターするよりも高い権限が必要です。
あるコンポーネントから別のコンポーネントへのクリックスルーでは、各コンソールのネイティブな認証システムに遭遇します。作業を行うために各コンポーネントについて必要な権限を持っていることを確認してください。
admin
およびsuperAdmin
ルールを例外として、EM内ではロールが必ずターゲットと関連付けられています。EMコンソールでユーザーに何が表示されるかは、特定のターゲットに関するそのユーザーのロールに依存します。
BTMまたはRUEIシステムをEMに登録するには、super admin
ロールが必要です。いったんRUEIやBTMシステムがEMに登録されると、ビジネス・アプリケーションを作成するためにsuper admin
ロールは必要ありません。
EMがRUEIおよびBTMと対話するために使用する資格証明にアクセスするには、RUEIまたはBTMシステムに対する「任意のターゲットの作成」
権限と「任意のターゲットの表示」
権限が必要です。
「ビジネス・アプリケーションの管理」
および「ビジネス・アプリケーション」
のメニュー・アイテム・アプリケーション・パフォーマンス監視リソース権限が必要です。
JVM診断データを表示するには「JVM診断ユーザー」
権限が必要です。
ヒープやスレッドのスナップショットの作成および分析、スレッドのトレースなどのJVM診断操作を管理するには、JVM診断管理者
権限が必要です。