失敗した要求に関するトレース規則を使用した Application Request Routing (ARR) のトラブルシューティング

公開日: 2008 年 7 月 2 日 (作業者: pharr (英語))

更新日: 2009 年 5 月 12 日 (作業者: pharr (英語))

概要

失敗した要求トレース規則は、IIS 7.0 での要求処理が失敗した場合にトラブルシューティングを行うための強力なツールです。このトピックでは、失敗した要求トレース規則を有効にして、Application Request Routing で障害をデバッグし、手順をトレースする手順について説明しています。失敗した要求トレース規則の詳細については、この記事 を参照してください。

目標

失敗した要求トレース規則を構成すること、および Application Request Routing のトラブルシューティングを行う際に注目すべき点を理解すること。

必要条件

このチュートリアルの必要条件は次のとおりです。

  • IIS 用にインストールされたトレース役割サービスを持つ Windows 2008 (任意の SKU) 以降の IIS 7.0。
  • Microsoft Application Request Routing Version 1 および依存モジュール。
  • 運用中のサイトとアプリケーションが含まれているアプリケーション サーバー (少なくとも 2 台)。

Application Request Routing Version 1 をインストールしていない場合は、以下からダウンロードして入手できます。

Application Request Routing をインストールするには、このドキュメントに記載されている手順に従います。

もう 1 つの必要条件として、他のチュートリアルを参照し、Application Request Routing の構成を済ませていることが必要です。このチュートリアルを開始する前に、Application Request Routing が正常に動作していることを確認します。

Step 1 – 失敗した要求トレース規則を構成する

この手順では、失敗した要求トレース規則を Application Request Routing に対して定義します。

UI を使用して、失敗した要求トレース規則を構成するには

1.  IIS マネージャー (inetmgr) を起動します。

2.  [Default Web Site] を選択します。

Ee886281.default site(ja-jp,TechNet.10).jpg

3.  [操作] ウィンドウの [構成] で、[失敗した要求トレース...] をクリックします。

Ee886281.failed request tracing action(ja-jp,TechNet.10).jpg

4.  [Web サイトの失敗した要求トレース設定の編集] ダイアログ ボックスで、[有効にする] チェック ボックスをオンにします。

Ee886281.edit web site failed request tracing settings(ja-jp,TechNet.10).jpg

5.  [OK] をクリックして、変更を保存します。

6.  [Default Web Site] を選択します。

7.  [失敗した要求トレース規則] をダブルクリックします。

8.  [操作] ウィンドウで、[追加...] をクリックします。

Ee886281.freb 1(ja-jp,TechNet.10).jpg

[すべてのコンテンツ (*)] を選択して、[次へ] をクリックします。

9.  [状態コード:] を選択して、「200-399」と入力します。

Ee886281.freb 2(ja-jp,TechNet.10).jpg

[次へ] をクリックします。上記の構成により、状態コードが 200 から 399 の範囲内にある場合にトレースを書き込む失敗した要求トレース規則が作成されました。

10. [ASP]、[ASPNET]、[ISAPI 拡張機能] のチェック ボックスをオフにします。[WWW サーバー] チェック ボックスをオンにしたら、[領域:] で、[書き換え] と [RequestRouting] 以外のチェック ボックスはすべてオフにします。Application Request Routing では受信要求の検査を URL 書き換えモジュールに依存しているため、Application Request Routing ([RequestRouting]) および URL 書き換えモジュール ([書き換え]) の両方のトレースを有効にしておくことをお勧めします。

Ee886281.freb 3(ja-jp,TechNet.10).jpg

URL 書き換えモジュールのトレースに関する追加情報については、https://technet.microsoft.com/ja-jp/library/dd939103.aspx を参照してください。

11. [完了] をクリックします。

コマンド ラインを使用して、失敗した要求トレース規則を構成するには

1.  管理者権限で、コマンド プロンプトを開きます。

2.  %windir%\system32\inetsrv に移動します。

3.  既定の Web サイト上で失敗した要求トレース規則を有効にするには、「appcmd set site "Default Web Site" -traceFailedRequestsLogging.enabled:"true" /commit:apphost」と入力します。

4.  上記の UI を使用した手順に示すように、失敗した要求トレース規則を構成するには、以下のコマンドを入力します。

  • appcmd.exe set config "Default Web Site" -section:system.webServer/tracing/traceFailedRequests /+"[path='*']"
  • appcmd.exe set config "Default Web Site" -section:system.webServer/tracing/traceFailedRequests /+"[path='*'].traceAreas.[provider='WWW Server',areas='Rewrite,RequestRouting',verbosity='Verbose']"
  • appcmd.exe set config "Default Web Site" -section:system.webServer/tracing/traceFailedRequests /[path='*'].failureDefinitions.statusCodes:"200-399" 

Step 2 – 失敗した要求トレース ログを解析する

この手順では、Application Request Routing に要求を送信して、失敗した要求トレース ログを解析します。

失敗した要求トレース ログを表示するには

1.   失敗した要求トレース ログが書き込まれたディレクトリに移動します。既定では、%SystemDrive%\inetpub\Logs\FailedReqLogFiles\ にあります。

2.   "Default Web Site" に一致するフォルダーにディレクトリを変更します。既定では、"W3SVC1" となります。不明な場合は、IIS マネージャーで、[Default Web Site] を選択し、[操作] ウィンドウの [詳細設定'] を選択します。[ID] の値は、対応するフォルダーを示します (つまり、 ID 1 は "W3SVC1" に対応します)。

3.   xml ファイルがある場合は、以下を入力して削除します。

            del *.xml

4.       Application Request Routing に要求を送信します。Application Request Routing が正しく機能していれば、手順 1 で指定した 200 から 399 の範囲内にある状態コード 200 で応答が返されます。したがって、ログは上記の場所に書き込まれます。

5.       ディレクトリ内のファイルを一覧表示し、新しい xml ファイルが書き込まれていることを確認します。

6.       xml ファイルを開きます。[要求の詳細] をクリックします。[完全な要求トレース] を選択して、[すべて展開] をクリックします。以下は、Application Request Routing の失敗した要求トレース ログの例です。 

Ee886281.freb log(ja-jp,TechNet.10).jpg

7.       以下のセクションによく注目してください。

  • GENERAL_REQUEST_HEADERS:
    •  Headers: Application Request Routing が受信した HTTP ヘッダーを示します。
  •  ARR_REQUEST_ROUTED:
    • WebFarm: 要求のルーティング先のサーバー グループの名前を示します。
    • Server: 要求のルーティング先のサーバーを示します。
    • Algorithm: 使用される負荷分散アルゴリズムを示します。
    • RoutingReason: そのサーバーを選択した背景にある決定理由を示します。
  • ARR_SERVER_STATS:
    • State: ルーティング先のサーバーの可用性です。
    • TotalRequests: このサーバーに送信された要求の数を示すランタイム統計です。
    • CurrentRequests: このサーバーに送信された HTTP 同時要求の数を示すランタイム統計です。
    • BytesSent: このサーバーに送信されたデータのサイズ (KB) を示すランタイム統計です。
    • BytesReceived: このサーバーから受信したデータのサイズ (KB) を示すランタイム統計です。
    • ResponseTime: このサーバーの応答速度 (ms) を示すランタイム統計です。

 

  • GENERAL_RESPONSE_HEADERS
    •  Headers: ルーティング先のサーバーからの応答 HTTP ヘッダーを示します。

 

  • GENERAL_RESPONSE_ENTITY_BUFFER
    • Buffer: ルーティング先のサーバーからの応答エンティティを示します。

 

  • 以下のイベント コードがタイムスタンプと共に追加され、対応するイベントの開始時間と終了時間を示し、Application Request Routing のパフォーマンスをプロファイルします。
    • ARR_REQUEST_HEADERS_START
    • ARR_REQUEST_HEADERS_END
    • ARR_RESPOSE_HEADERS_START
    • ARR_RESPONSE_HEADERS_END
    • ARR_RESPONSE_ENTITY_START
    • ARR_RESPONSE_ENTITY_END
    • ARR_RESPONSE_ENTITY_START
    • ARR_RESPONSE_ENTITY_END

Server Core 上で失敗した要求トレース ログを収集する場合、freb.xsl スタイルシートと共に、ブラウザーを使用できるコンピューターにログをコピーする必要があります。

まとめ

これで、Application Request Routing の失敗した要求トレース規則を正常に構成することができました。失敗した要求トレース規則を使用すると、Application Request Routing のトラブルシューティングやデバッグを行うことができるほか、負荷分散アルゴリズムを含め、特定の要求に対してルーティング先のサーバーを選択する際に行うルーティングの決定について把握できます。

関連コンテンツ

記事