Share via


IIS の詳細ログ - カスタム ログ

作成者: Vishal Sood

IIS 詳細ログを使用すると、ユーザー要求とクライアント データをログに記録する柔軟性が大幅に向上します。 詳細ログでは、ユーザーにとって何が重要であるかは想定されません。 代わりに、重要なフィールドを指定したり、フィールドを簡単に追加したり、ログ ファイルのロールオーバーと要求のフィルター処理に関するポリシーを提供したりするのに十分なコントロールが提供されます。 IIS マネージャーでは、HTTP 要求/応答ヘッダー、IIS サーバー変数、クライアント側フィールドを単純な構成でログに記録できます。

インストール

IIS 詳細ログは、インターネット インフォメーション サービス (IIS) 7 の拡張機能で、使用できなくなりました。 IIS 8.5 の拡張ログをお勧めします。

IIS 詳細ログをインストールするには、次の前提条件を満たす必要があります。

  • 次のいずれかのオペレーティング システムで実行されている IIS 7 を使用する必要があります。

    • Windows Server 2008
    • Windows Server 2008 R2
    • Windows Vista SP1
    • Windows 7
  • IIS マネージャーのユーザー インターフェイスを使用して IIS 詳細ログを管理するには、IIS 向けに IIS 管理コンソールをインストールする必要があります。

IIS 詳細ログのインストールには、次のオプションを使用できます。

  • Windows インストーラー ファイル (選択したオペレーティング システムの 32 ビット バージョンと 64 ビット バージョン用)

概念

ログ定義。 Web サーバーで生成された各ログ ファイルに記録されるフィールドを定義します。 また、ログ ファイルのロールオーバー間隔、ベース ログ ファイル名などの追加オプションも設定します。

グローバル ログ フィールド。 詳細ログでは、管理者が IIS マネージャーでログ定義に追加できるログ フィールドのマスター リスト (グローバル ログ フィールド リスト) が保持されます。 カスタム ログ フィールドは、IIS 管理インターフェイスを使用して、グローバル ログ フィールドの一覧に (拡張機能を使用した場合、ログ定義に) 追加できます。 カスタム ログ フィールドは、次のソースの種類から追加できます。

  • モジュール。 他の IIS モジュールによって公開されたログ フィールド。 クライアント側のフィールドでは、このオプションを使用します。
  • 要求ヘッダー。 要求に含まれる標準およびカスタム HTTP ヘッダー。
  • 応答ヘッダー。 要求応答に含まれる標準およびカスタム HTTP ヘッダー。
  • サーバー変数IIS サーバー変数

詳細ログ ユーザー インターフェイスについて

このセクションには、IIS 詳細ログの UI に関する次のトピックが含まれています。

詳細ログを開く

IIS 詳細ログは、IIS マネージャーのサーバー、Web サイト、ディレクトリに対して構成できます。 詳細ログ機能を開くには、[接続] ウィンドウでサーバー、Web サイト、またはディレクトリをクリックし、[ホーム] ページの [詳細ログ] アイコンをダブルクリックします。
[I I S] セクションの [詳細ログ] オプションを強調表示した [既定の Web サイト ホーム] 画面のスクリーンショット。

サーバー ログの有効化と無効化

既定では、IIS 詳細ログはインストール後に無効になります。 この機能を有効にして、他の Web サーバー コンポーネントからのログ メッセージを処理できるようにするには、IIS マネージャーのサーバー レベルで機能を開き、[操作] ウィンドウで [Enable Advanced Logging]\(詳細ログの有効化\) をクリックします。

[高度なログ記録を有効にする] オプションが強調表示されている [アクション] セクション。

後で機能を無効にするには、IIS マネージャーのサーバー レベルで機能を開き、[操作] ウィンドウで [Disable Advanced Logging]\(詳細ログの無効化\) をクリックします。
[詳細ログを無効にする] オプションが強調表示されている [アクション] セクション。

クライアント ログの有効化と無効化

既定では、詳細ログ機能のクライアント ログは、インストール後に無効になります。 詳細ログ機能でクライアント ログを有効にして、HTTP POST メッセージを介して XML データとして受信されたクライアント ログ メッセージを処理できるようにするには、IIS マネージャーのサーバー レベルで詳細ログ機能を開き、[操作] ウィンドウで [Enable Client Logging]\(クライアント ログの有効化\) をクリックします。
[クライアント ログの有効化] オプションが強調表示されている [操作] ウィンドウ。

後でクライアント ログを無効にするには、IIS マネージャーのサーバー レベルで詳細ログ機能を開き、[操作] ウィンドウで [Disable Client Logging]\(クライアント ログの無効化\) をクリックします。
[クライアント ログの無効化] オプションが強調表示されている [操作] ウィンドウ。

Note

クライアント ログの使用方法の詳細については、IIS の詳細ログ - クライアント ログに関する説明を参照してください。

ログ定義について

詳細ログ機能は、IIS マネージャーのサーバーの [ホーム] ページに、サーバーで使用できるすべてのログ定義を表示します。 次の図は、既定でインストールされ、コンテンツ配信の観点から関心のあるいくつかのフィールドをキャプチャするログ定義 %COMPUTERNAME%-Server を示しています。
ログ定義 %COMPUTERNAME%-Server が表示されている [詳細ログ] 画面のスクリーンショット。

このログ定義に含まれるフィールドを表示するには、ログ定義名をクリックし、[操作] ウィンドウで [Edit Log Definition]\(ログ定義の編集\) をクリックします。 このようにすると、次の図に示すように、選択したログ定義の [ログ定義] 機能ページが開きます。

[ログ定義] 機能ページの [機能] ビューのスクリーンショット。

グローバル ログ フィールド リストについて

グローバル ログ フィールドの一覧には、ログ定義に追加できるすべてのログ フィールドが含まれています。 グローバル ログ フィールドの一覧を表示するには、IIS マネージャーでサーバー、Web サイト、ディレクトリ、またはアプリケーション レベルで詳細ログ機能を開き、[操作] ウィンドウで [Edit Logging Fields]\(ログ フィールドの編集\) をクリックします。
[ログ フィールドの編集] オプションが強調表示されている [操作] ウィンドウのスクリーンショット。

この操作により、[Edit Logging Fields]\(ログフィールドの編集\) ダイアログ ボックスが開き、IIS 詳細ログの既定のインストールに含まれるログ フィールドが表示されます。
[ログ フィールドの編集] ダイアログ ボックスのスクリーンショット。

グローバル ログ フィールドの一覧にカスタム ログ フィールドを追加する方法の詳細については、「カスタム ログ フィールドを追加する」を参照してください。

カスタム ログ フィールドの追加

このセクションでは、グローバル ログ フィールド リストにカスタム ログ フィールドを追加する方法について説明します。 次の例では、カスタム HTTP 応答ヘッダーの author をカスタム ログ フィールドとして使用します。 このカスタム応答ヘッダーは、クライアントへの応答で Web ページ作成者の名前を返します。

グローバル ログ フィールドの一覧にカスタム ログ フィールドを追加するには、次の操作を行います。

  1. IIS マネージャーで、サーバー、Web サイト、仮想ディレクトリ、またはアプリケーション レベルで詳細ログ機能を開きます。
  2. [操作] ウィンドウで、[Edit Logging Fields]\(ログフィールドの編集\) をクリックして、[Edit Logging Fields]\(ログフィールドの編集\) ダイアログ ボックスを開きます。 ダイアログ ボックスには、既定で使用できるログ フィールドが表示されます。
  3. [Edit Logging Fields]\(ログフィールドの編集\) ダイアログ ボックスで、[フィールドの追加] ボタンをクリックします。
    [フィールドの追加] ボタンが強調表示されている [ログ フィールドの編集] ダイアログ ボックスのスクリーンショット。
  4. [Add Logging Field]\(ログ フィールドの追加\) ダイアログ ボックスで、カスタム ログ フィールドの設定と値を指定します。
    [ログ フィールドの追加] ダイアログ ボックスのスクリーンショット。
  • [フィールド ID]。 ログ定義に含めてグローバル ログ フィールドの一覧に表示されるフレンドリ名 (「Author」など) を入力します。
  • [ソースの種類][応答ヘッダー] を選択します。
  • [ソース名]。 ログに記録する HTTP 応答として「author」と入力します。

ログ定義の追加

このセクションでは、前のセクションで新しいログ ファイルに追加したカスタム ログ フィールドの [Author] を使用する方法について説明します。 これを行うには、新しいログ定義を作成する必要があります。

  1. IIS マネージャーで、サーバー、Web サイト、仮想ディレクトリ、またはアプリケーション レベルで詳細ログ機能を開きます。

  2. [操作] ウィンドウで、[Add Log Definition]\(ログ定義の追加\) をクリックして [ログ定義] ページを開きます。

  3. [ログ定義] ページで、新しいログ定義の設定と値を指定します。

    1. [ベース ファイル名]。 生成されるログ ファイルのファイル名には、指定したベース ファイル名とタイムスタンプが、Basefilename_timestamp.log の形式で使用されます。 環境変数は、ベース ファイル名として使用でき、詳細ログ機能によって拡張されます。 この例では、TestLog を使用します。

    2. Enabled。 このチェック ボックスがオンになっていると、新しいログ定義が有効になります。 無効にするには、チェック ボックスをオフにします。 この例では、有効のままにします。

    3. [Publish real-time events]\(リアルタイム イベントの発行\)。 このオプションを使用すると、詳細ログ機能を使用して、リアルタイムのログ記録と分析のために他の IIS モジュールで使用できるイベントを発行できます。 イベントにはすべてのデータが含まれ、データがログ ファイルに書き込まれる直前に発生します。 この例では、オフのままにします。 リアルタイム ログの詳細については、IIS の詳細ログ - リアルタイム ログに関する説明を参照してください。

    4. [ログ ファイル ロールオーバー]。 ログ ファイルのロールオーバー オプションでは、新しいログ ファイルを生成する頻度を指定します。 この例では、既定の [スケジュール] オプションの [日単位] を選択します。これにより、毎日、協定世界時 (UTC) の午前 0 時に新しいログ ファイルが生成されます。

    5. [選択されたフィールド][フィールドの選択] ボタンをクリックして [ログ フィールドの選択] ダイアログ ボックスを開きます。このダイアログ ボックスでは、前のセクションのグローバル ログ フィールド リストに追加したカスタム ログ フィールドの Author を含めて、このログ定義に対してログ記録するフィールドを選択できます。 カスタムの Author ログ フィールドを追加するには、一覧で選択します。
      [ログ フィールドの選択] ダイアログ ボックスのスクリーンショット。[要求ヘッダー] セクションと [応答ヘッダー] セクションが表示されています。

      ログ定義にログ フィールドを追加するには、名前の横にあるチェック ボックスをクリックして、追加のログ フィールドを選択します。 完了したら [OK]をクリックします。

    6. (省略可能) ログ フィールドをログ ファイルに書き込む順序を指定するには、一覧でログ フィールド名を選択し、[移動] ボタンのいずれかをクリックしてリスト内の位置を更新します。
      [選択したフィールド] セクションの [最初に移動]、[上へ移動]、[下へ移動]、および [最後に移動] ボタンが強調表示されている [ログ定義] 画面のスクリーンショット。

    7. フィルター。 IIS 詳細ログのログ フィルタリングを使用すると、管理者はすべての Web サイト トラフィックをキャプチャして、すべてのデータを調べて必要なものを見つける代わりに、目的の Web サイト トラフィック情報のみを収集できます。 この例では、ログ フィルターは作成しません。 ログ フィルター処理の詳細については、IIS の詳細ログ - ログ フィルターに関する説明を参照してください。

  4. 新しい TestLog ログ定義を保存するには、[操作] ウィンドウで [適用] をクリックします。

ログ ファイルの格納

サーバーによってホストされている Web ページにアクセスすると、作成されたログ ファイルに、前のセクションで選択した他のログ フィールドとともに Author がログに記録されていることがわかります。 既定では、サーバーとすべての Web サイトのログ ファイルは %SystemDrive%\inetpub\logs\AdvancedLogs に格納されます。 サーバーと Web サイトのこの "グローバル" ログ ディレクトリを変更できます。また、サーバー上の各 Web サイトに一意のログ ディレクトリを指定することもできます。

このセクションでは、次の手順を説明します。

サーバーと Web サイトのグローバル ログ ディレクトリを指定するには

  1. IIS マネージャーで、サーバー レベルで詳細ログ機能を開きます。
  2. [操作] ウィンドウで、[Edit Log Directory]\(ログ ディレクトリの編集\) をクリックします。
    [ログ ディレクトリの編集] オプションが強調表示されている [操作] ウィンドウのスクリーンショット。
  3. [Edit Log Directory]\(ログ ディレクトリの編集\) ダイアログ ボックスで、ログ ディレクトリのパス情報を更新します。
    サーバー ログ ディレクトリのパス情報が強調表示されている [ログ ディレクトリの編集] ダイアログ ボックスのスクリーンショット。
  • [Server log directory]\(サーバー ログ ディレクトリ\)。 サーバーのログ ファイル ディレクトリを指定します。
  • [Default site log directory]\(既定のサイト ログ ディレクトリ\)。 サーバー上のすべての Web サイトの既定のログ ファイル ディレクトリを指定します。 特定の Web サイトのログ ファイル ディレクトリを変更するには、次の手順を参照してください。

Web サイトのログ ディレクトリを指定するには

  1. IIS マネージャーで、ログ ファイル ディレクトリを変更する Web サイト レベルで詳細ログ機能を開きます。
  2. [操作] ウィンドウで、[Edit Log Directory]\(ログ ディレクトリの編集\) をクリックします。
    [操作] ウィンドウのスクリーンショット。[ログ ディレクトリの編集] オプションが強調表示されています。
  3. [Edit Log Directory]\(ログ ディレクトリの編集\) ダイアログ ボックスで、Web サイトのログ ディレクトリ パス情報を更新します。
    サイト ログ ディレクトリのパス情報を示す [ログ ディレクトリの編集] ダイアログ ボックスのスクリーンショット。
  • [Site log directory]\(サイト ログ ディレクトリ\)。 Web サイトのログ ファイル ディレクトリを指定します。

まとめ

このチュートリアルでは、詳細ログ機能を確認し、グローバル ログ フィールドの一覧にカスタム ログ フィールドを追加する方法と、それを使用して新しいログ ファイルを作成する方法、ログ ファイルの保存場所を指定する方法について説明しました