Share via


Application Diagnostics を使用したイベントの処理

 

適用対象: System Center 2012 R2 Operations Manager,System Center 2012 - Operations Manager,System Center 2012 SP1 - Operations Manager

アラートへの対応は、System Center 2012 – Operations Manager を使用する場合に基本となる作業です。 .NET アプリケーションの監視のアラートには、一般的な情報、製品ナレッジなどの他のアラートにも表示される情報が示されます。 ただし、.NET アプリケーションのアラートでは、アラートの説明にリンクが含まれています。 このリンクを使用すると、アラートが発生したイベントがアプリケーション診断に表示されます。 ここでは、問題のトラブルシューティングを行い、ソリューションを見つけるための情報を参照できます。

[!メモ]

アプリケーション パフォーマンス監視から詳細レベルのトラブルシューティングを行うには、アプリケーション ソース コードへのアクセスや、開発者からの情報の提供が必要となることもあります。 Team Foundation Server 作業項目同期管理パックをインストールして、開発チームが使用している Team Foundation Server にアラートを転送できます。 Team Foundation Server 作業項目同期管理パックは、Team Foundation Server の作業項目への変更および関連付けられた Operations Manager のアラートへの変更を追跡して同期します。

.NET アプリケーションのアラートの調査

問題の特定、割り当て、および解決にかかる時間を減らすことが、Operations Manager におけるアプリケーション監視の主要な目的です。 アラートが表示されたら、その原因 (アプリケーションをホストしているシステム、またはコード) を特定し、その結論を裏付けるデータを示すことができる必要があり、さらに問題を解決する担当者を明確にする必要もあります。 システムの問題であるかどうかを確認するには、そのイベントが発生したときのシステムの状態を知る必要があります。 問題の根本原因が発生した場所を調べるには、実行された呼び出しのチェーンを確認します。 さらに詳しく調査するには、類似イベント、および同時に発生した関連イベントを比較します。 また、イベントの詳細、パフォーマンス カウンター、および分散チェーンの情報を使用すると、この問題に最初に対処する担当者を決めるために役立ちます。 システムのエラーである場合は、ホスト システムの利用可能なリソースまたは構成を調整することにより、ホスト レベルで問題に対処できます。 アプリケーションのエラーである場合は、エラーが発生した場所のコード行を特定して、問題をアプリケーション チームに送る必要があります。 根本原因を特定し、解決方法を見つけて、問題解決にあたる担当者を決定するために、アプリケーション診断のビュー、フィルター、および設定を使用する方法を次に示します。

アラートからアプリケーション診断を開くには

  1. ここでは、構成済みの特定のアプリケーション グループに関連するアラートに対応するため、アクティブなアラートのスコープを指定して、アプリケーション グループごとに表示すると便利です。Operations Manager コンソールのナビゲーション ウィンドウで、[監視] ボタンをクリックして、[アプリケーションの監視] を展開し、[.NET 監視] を展開して、監視用に構成済みのアプリケーション グループのうち、アラートを調査するグループの名前の付いたフォルダーをクリックし、[アクティブなアラート] をクリックします。

  2. 表示するアラートをダブルクリックします。

  3. [アラートのプロパティ] ページで、[アラートの説明] ウィンドウにあるリンクをクリックします。 これにより、Operations Manager の新しい監視機能である Application Diagnostics が Web ブラウザーに開きます。 [イベントのプロパティ] タブで、パフォーマンス指標、コール スタック、およびアラートに関する収集のメモなどの情報を確認できます。 このタブを使用すると、類似イベント、関連イベント、イベントのチェーン、およびパフォーマンス カウンターを表示できます。 これは、アプリケーションで発生したパフォーマンス イベントまたは例外イベントに関する詳細な情報であり、問題がアプリケーション自体、Web サービスへの呼び出し、またはデータベースへの呼び出しのいずれに由来するものなのかを診断するために役立ちます。 [イベントのプロパティ] タブの詳細については、「パフォーマンス イベントの詳細」をご覧ください。 イベント情報が読み込まれたら、[はい] をクリックしてメイン ウィンドウを閉じます。

    [!メモ]

    この Application Diagnostics へのリンクは、[アラートのコンテキスト] タブにもあります。

次の手順を使用して、アラートを調査します。 IT 担当者は、通常、[イベントのプロパティ]、[パフォーマンス カウンター]、および [分散チェーン] タブの情報を使用して発生した事象を確認し、問題の原因がシステムの問題であるかどうかを判断し、根本原因が発生した場所を調査します。 開発者は、通常、コードの問題に関連する具体的なコンテキストを理解するために、[分散チェーン]、[類似イベント]、および [関連イベント] タブの情報を必要とします。

アプリケーション診断の例外イベントのプロパティを使用してトラブルシューティングを行うには

  1. 調査している例外アラートの Application Diagnostics ウィンドウで、[イベントのプロパティ] タブをクリックして、アラートに関する主要な詳細を表示します。 アラートの問題が明らかなものかどうかを確認するには、この情報を最初に確認します。 [イベントのプロパティ] ページに表示される情報の主なカテゴリのいくつかを次に示します。

    - **ソース**: 左上隅にある **\[ソース\]** リンクをクリックすると、アプリケーションの負荷と応答時間が表示されます。 この情報は、システムが例外イベントのエラーのコンテキストの状況であったときの負荷を示します。 パフォーマンス カウンターを表示して、システムの状態をさらに評価するには、\[ソース\] ページで、\[傾向レポート\] タブをクリックします。 このアプリケーションが動作していたコンピューター、およびコンピューター間で負荷分散の問題があったかどうかを表示するには、\[コンピューター\] タブをクリックします。 関連する呼び出しのブレークダウン、またはチェーン内のイベントが発生した場所を表示するには、\[トポロジ\] タブをクリックします。
    
    - **例外チェーン**: これは、例外イベントを表示します。 実際に発生した例外を表示するには、\[例外チェーン\] を展開します。
    
    - **例外データ**: これは、例外イベントの場合に表示され、例外に関連するクラスに設定されているパラメーターおよび変数を示します。
    
    - **スタック**: これは、コール スタック (呼び出しが発生した順序) です。 \[実行ツリー ビュー\] では、ノードを展開して、呼び出しを調査できます。 \[リソース グループ ビュー\] をクリックして、時間がかかった箇所に関する要約を表示します。 これにより、システム内で問題が存在している階層、または問題が発生している場所がわかります。
    
    - **モジュールの一覧**: これは、例外イベントの場合に表示され、例外が発生したときに読み込まれていたモジュールを示します。
    
    - **収集のメモ**: これは、イベントに関するメモを表示します。
    
    System_CAPS_tipヒント

    [例外イベント] で使用したのと同じトラブルシューティングの手順を [パフォーマンス イベント]、[類似イベント]、[関連イベント]、[分散チェーン]、および [パフォーマンス カウンター] に対して使用します。

アプリケーション診断のパフォーマンス イベントのプロパティを使用してトラブルシューティングを行うには

  1. 調査しているパフォーマンス アラートの Application Diagnostics ウィンドウで、[イベントのプロパティ] タブをクリックして、アラートに関する主要な詳細を表示します。 アラートの問題が明らかなものかどうかを確認するには、この情報を最初に確認します。 [パフォーマンスのプロパティ] ページに表示される情報の主なカテゴリのいくつかを次に示します。

    - **ソース**: 左上隅にある **\[ソース\]** リンクをクリックすると、アプリケーションの負荷と応答時間が表示されます。 この情報は、システムが例外イベントのエラーのコンテキストの状況であったときの負荷を示します。 パフォーマンス カウンターを表示して、システムの状態をさらに評価するには、\[ソース\] ページで、\[傾向レポート\] タブをクリックします。 このアプリケーションが動作していたコンピューター、およびコンピューター間で負荷分散の問題があったかどうかを表示するには、\[コンピューター\] タブをクリックします。 関連する呼び出しのブレークダウン、またはチェーン内のイベントが発生した場所を表示するには、\[トポロジ\] タブをクリックします。
    
    - **最も遅いノード**: これは、\[実行ツリー ビュー\] 内の最も遅いノードの一覧であり、アプリケーションのパフォーマンスの問題の原因である可能性があります。
    
    - **スタック**: これは、コール スタック (呼び出しが発生した順序) です。 \[実行ツリー ビュー\] では、ノードを展開して、呼び出しを調査できます。 \[リソース グループ ビュー\] をクリックして、時間がかかった箇所に関する要約を表示します。 これにより、システム内で問題が存在している階層、または問題が発生している場所がわかります。
    
    - **収集のメモ**: これは、イベントに関するメモを表示します。
    

パフォーマンス カウンターを使用してシステムの状態のトラブルシューティングを行うには

  1. 主要なパフォーマンス カウンターの表またはダイアグラムを表示するには、[パフォーマンス カウンター] タブをクリックします。

    [!メモ]

    監視対象システムでは、15 分間のパフォーマンス データが収集およびキャッシュされます。 パフォーマンス イベントまたは例外イベントが発生すると、パフォーマンス データがイベントとともに Operations Manager に送信されます。

  2. 情報に含めるパフォーマンス カウンターのチェック ボックスをオンにして、[適用] をクリックします。

  3. ここに表示される情報を使用して、調査しているイベントの周辺でのシステム パフォーマンスの状態を評価します。 たとえば、イベントが発生したときのパフォーマンスが一定して遅い場合は、アラートはシステムのパフォーマンスの問題が原因である可能性があります。

分散チェーンを使用して根本的な問題を見つけるには

  1. [分散チェーン] タブをクリックして、呼び出しの順序 (イベントがその一部であるイベントのチェーン) を表示します。 これは、調査しているイベントがアプリケーションまたは関連するアプリケーションの他のイベントから受けている影響を理解するために役立ちます。

  2. [分散チェーン] ビューで、チェーン内の呼び出しまたはリンクのいずれかをクリックします。 同じオブジェクトに対して複数のイベントがある場合は、チェーン ウィザードが開きます。 このウィザードでは、候補となるイベントを選択して、イベントのチェーンに関連付けることができます。 ウィザードを開始するには、[次へ] をクリックします。

    [!メモ]

    次のページでこの呼び出しをイベントに関連付けるので、選択した呼び出しのタイム スタンプを取得します。

  3. [候補のチェーン イベントの選択] ページで、調査するイベントを選択します。 [分散チェーン] ビューで選択した呼び出しに最も近いタイム スタンプを持つイベントであることが理想的です。

  4. 次に表示される内容は、調査している問題の種類によって異なります。 たとえば、サーバーが見つからないトランザクションを選択した場合、そのイベントの [イベントのプロパティ] ページに移動することがあります。 これにより、最初に調査していたイベントとサーバー エラーを関連付けることができます。 サーバー エラーの問題なので、問題がクライアント側ではなくサーバー側にあることがわかっています。 選択したイベントのグラフが表示され、ページの読み込み時間についてパフォーマンス イベントをブレークダウンできる場合があります。

  5. [イベントのプロパティ] で、サーバー側の呼び出しをクリックし、[パフォーマンス カウンター] タブをクリックして詳細を表示します。

類似イベントを表示してトラブルシューティングを行うには

  1. [類似イベント] タブをクリックして、類似するアラートが他にも発生していたかどうかを確認します。発生していた場合は、アプリケーションに問題があることを意味する可能性があります。

  2. 類似イベントをフィルター処理する方法はいくつかあります。[類似点] ドロップダウン メニューをクリックして、類似イベントをグループ化する方法を選択します。これには、問題、アクション、例外クラス、失敗した関数のいずれかを選択できます。[開始] および [終了] テキスト ボックスで、類似イベントを表示する日付の範囲を設定できます。 [類似イベント] タブを使用して、類似するアラートが他にも発生していたかどうかを確認します。発生していた場合は、アプリケーションに問題があることを意味する可能性があります。

    - **問題別のフィルタリング**: 同じ種類の類似イベントを表示します。 たとえば、オブジェクト参照がオブジェクトのインスタンスに設定されていないすべての類似イベントを表示できます。 \[ダイアグラム ビュー\] をクリックすると、現在の問題のイベントの合計数と他の問題のイベントの合計数の比率を表示できます。 この情報により、特定のイベントの問題の重大性をおおまかにつかむことができます。 類似イベントの現在の合計数のうち多くに共通する問題が見られる場合は、その問題を優先的に解決することで、アラートの発生件数を大幅に減らすことができる場合があります。
    
    - **アクション別のフィルタリング**: 類似イベントを特性 (セキュリティ、パフォーマンス、接続、およびアプリケーションのエラー) ごとにグループ化します。 \[ダイアグラム ビュー\] をクリックすると、これらの特性のカテゴリごとに類似イベントの数が表示され、問題に関係しているカテゴリをより簡単に確認できます。
    
    - **例外クラス別のフィルタリング**: 構成時の名前付け規則に従って類似イベントをグループ化します。 これらのクラスには、例外の種類の識別に役立つ名前が付けられているはずです (**System.NullReferenceException** クラスなど)。
    
    - **失敗した関数別のフィルタリング**: 例外をスローしている関数ごとに類似イベントをグループ化します。 これは、エントリ ポイントに問題があることを意味する場合があります。
    

    これらはすべて定義によって関連付けられた類似イベントであり、これらのフィルターによって、類似イベントの正確な関係をつかむことができます。 類似イベントのフィルターを使用すると、合計イベント数のほとんどが調査しているイベントと同じ問題を持っていること、パフォーマンスの問題であること、構成した例外クラスに属していること、類似イベントの半数が同じ関数で失敗していることなどがわかる場合があります。 アクション:関数により、関数コードを修正担当の開発者が特定されます。

関連イベントを表示してトラブルシューティングを行うには

  1. [関連イベント] タブをクリックして、関連するイベントを時系列で表示します。 これらは、他のイベントと関連している例外であり、問題を理解する上で役立つことがあります。

  2. 一覧にあるイベントの詳細を表示するには、[説明] 列にあるリンクをクリックします。

    関連イベントを確認すると、特定の時間のすべてのイベントの応答時間が非常に遅いことがわかる場合があります。 このような場合は、コードではなくシステムの問題を示唆している可能性があるため、解決するには IT 担当者にご連絡ください。