サイトの利用状況のログ収集について

サイトの利用状況のログ収集について

Web サイトまたは FTP サイトを構成して、ユーザーとサーバーの利用状況についてのログ エントリを記録することができます。IIS のログ データは、コンテンツへのアクセスの規制、コンテンツの人気の評価、セキュリティ要件の計画、Web サイトまたは FTP サイトの潜在的な問題への対応に役立ちます。IIS サイトの利用状況のログ収集は、イベント ログの収集とは異なります。イベント ログは、Windows 2000 によって行われ、イベント ビューアで表示します。IIS のログ機能ではさらに広範な情報が収集されます。ここでは、IIS のログ機能について説明します。

  • ログの収集
  • ログ ファイルの形式
  • プロセス総計
  • ログ ファイルのサイズと新しいログ ファイルの作成
  • ログ ファイルの名前

ログの収集

Web サイトや FTP サイトのログの収集は、サーバーのほかの機能とは独立して動作するモジュールによって行われます。収集するログの形式は、Web サイトや FTP サイトごとに指定できます。ログの収集がサイトに対して有効になっている場合は、そのサイトにある各ディレクトリに対してもログの収集を有効または無効にできます。サイトやディレクトリのログの収集を有効または無効にする手順については、「ログの収集を有効にする」を参照してください。

IIS で作成されたログは、テキスト エディタで表示することもできますが、通常はレポート生成ソフトウェア ツールにログ ファイルをロードして表示します。ODBC ログでは、ログはデータベースに記録されます。このデータベースはレポートの生成に使用することができます。プロセス総計ログは、Web サイトごとに通常の W3C 拡張ログ ファイル形式で記録されます。

各ログ形式では、ログに表示される時刻の基準として異なるタイム ゾーンを使用します。W3C 拡張ログ ファイル形式では、以前は "グリニッジ標準時 (GMT)" と呼ばれていた協定世界時 (UTC) を使用します。そのほかの形式では現地時間が使用されます。ログ ファイルに表示される時刻には、サーバーが要求および応答の処理に要した時間が反映されています。この時間には、クライアントへのデータ転送にかかった時間やクライアントでの処理時間は含まれません。

ログ ファイルの形式

Web サーバーがユーザーの利用状況を記録する際に使用する形式は、選択することができます。利用できる形式は以下のとおりです。

  • W3C 拡張ログ ファイル形式
  • Microsoft IIS ログ形式
  • NCSA 共通ログ ファイル形式
  • ODBC ログ

W3C 拡張ログ ファイル形式、Microsoft IIS ログ ファイル形式、および NCSA 共通ログ ファイル形式は、いずれも ASCII テキスト形式で、データの年の形式を 4 桁で記録します。必要なフィールドのみを含むように、カスタマイズしたログ形式を作成することもできます。

W3C 拡張ログ ファイル形式

W3C 拡張ログ ファイル形式は、さまざまなフィールドがあり、カスタマイズが可能な ASCII 形式です。重要なフィールドのみを含め、必要のないフィールドは省略してログのサイズを抑えることができます。フィールドはスペースで区切られます。時刻は UTC で記録されます。W3C 拡張ログ形式のカスタマイズ方法については、「W3C 拡張形式のログ収集をカスタマイズする」を参照してください。W3C 拡張ログ形式の仕様の詳細については、W3C のサイト http://www.w3.org を参照してください。

次の例は、[時間]、[クライアント IP アドレス]、[メソッド]、[URI Stem]、[プロトコルの状態]、および [プロトコル バージョン] の各チェック ボックスをオンにした場合にファイルに書き込まれる行を示しています。

  #Software: Microsoft Internet Information Services 5.0
#Version: 1.0
#Date: 1998-05-02 17:42:15
#Fields: time c-ip cs-method cs-uri-stem sc-status cs-version
17:42:15 172.16.255.255 GET /default.htm 200 HTTP/1.0

このエントリは、UTC の 1998 年 5 月 2 日の午後 5 時 42 分に、HTTP Version 1.0 を使用し、 IP アドレス 172.16.255.255 のユーザーが Default.htm ファイルを要求する HTTP GET コマンドを発行したことを示しています。この要求でエラーは発生しませんでした。[#Date] フィールドは、最初のログ エントリが作成された日付、つまりログが作成された日付を示します。[#Version] フィールドは W3C ログ フォーマットが使用されていることを示しています。

任意のフィールドを選択できますが、要求によっては記録する情報がないフィールドもあります。選択されていても記録する情報がないフィールドには、プレースホルダとしてダッシュ (-) が表示されます。

Microsoft IIS ログ形式

Microsoft IIS ログ形式は、固定の ASCII 形式で、カスタマイズはできません。NCSA 共通ログ形式より多くの情報項目が記録されます。Microsoft IIS ログ形式では、ユーザーの IP アドレス、ユーザー名、要求が出された日時、HTTP のステータス コード、受信バイト数などの基本項目に加え、経過時間、送信バイト数、利用の種類 (たとえば、GET コマンドで実行されたダウンロード)、利用の対象ファイルなどの詳細項目が記録されます。項目はカンマで区切られているので、セパレータにスペースを使うほかの ASCII 形式のログより、簡単に解析できます。記録される時刻は、現地時間です。

テキスト エディタで Microsoft IIS 形式のファイルを開くと、次の例に示すようなエントリが表示されます。

  192.168.114.201, -, 03/20/98, 7:55:20, W3SVC2, SALES1, 172.21.13.45, 4502, 163, 3223, 200, 0, GET, DeptLogo.gif 

FakePre-e201a3d7331e40029042cabf66ff0ff1-0a276fff14404db388d2fb0ae410068a

この例のエントリは、次の表のとおりに解釈できます。どちらの表の場合も、上の行は Web サイト の 2 つ目のインスタンス (サービスに "W3SVC2" と示される) のもので、下の行は FTP サイトの 1 つ目のインスタンス (サービスに "MSFTPSVC" と示される) のものです。ページの幅に制約があるため、2 つの表に分けて示します。

ユーザーの IP アドレス ユーザー名 日付 時刻 サービスとインスタンス コンピュータ名 サーバーの IP アドレス
  192.168.114.201
-
  03/20/98
  7:55:20
  W3SVC2
  SALES1
  172.21.13.45
  172.16.255.255
  anonymous
  03/20/98
  23:58:11
  MSFTPSVC
  SALES1
  192.168.114.201
所要時間 受信バイト数 送信バイト数 サービスのステータス コード Windows 2000 のステータス コード 要求の種類 操作の対象
  4502
  163
  3223
  200
  0
  GET
  DeptLogo.gif
  60
  275
  0
  0
  0
  PASS 
  intro.htm

この例の最初のエントリは、1998 年 3 月 20 日の午前 7 時 55 分に、IP アドレス 192.168.114.201 の匿名ユーザーが、IP アドレス 172.21.13.45 の SALES1 という名前のサーバーに、画像ファイル DeptLogo.gif を要求する HTTP GET コマンドを発行したことを示しています。163 バイトの HTTP 要求に対して、処理が完了するまでの経過時間は 4502 ミリ秒 (4.5 秒) で、エラーは発生せず、3223 バイトのデータが匿名ユーザーに返されました。

ログ ファイルのすべてのフィールドはカンマ (,) で区切られています。有効な値がないフィールドには、プレースホルダとしてダッシュ (-) が表示されます。

NCSA 共通ログ ファイル形式

NCSA 共通ログ ファイル形式は、カスタマイズできない固定の ASCII 形式です。この形式は、Web サイトでは利用できますが、FTP サイトでは利用できません。このログには、リモート ホスト名、ユーザー名、日付、時刻、要求の種類、HTTP のステータス コード、サーバーが受信したバイト数など、ユーザーの要求についての基本情報が記録されます。項目はスペースで区切られます。時刻は、現地時間で記録されます。

テキスト エディタで NCSA 共通ログ形式のファイルを開くと、次の例に示すようなエントリが表示されます。

  172.21.13.45 - REDMOND\fred [08/Apr/1998:17:39:04 -0800] "GET /scripts/iisadmin/ism.dll?http/serv HTTP/1.0" 200 3401

   このエントリでは、ユーザーのリモート ログ名を表す 2 番目のフィールドは空欄です。IP アドレス 172.21.13.45 の後のダッシュ (-) は、記録する情報がないことを示しています。

この例のエントリは、次の表のとおりに解釈できます。ページの幅に制約があるため、2 つの表に分けて示します。

リモート ホスト名 ユーザー名 日付 時刻と GMT オフセット
  172.21.13.45
  REDMOND\fred
  08/Apr/1998
  17:39:04 -0800
要求の種類 サービスのステータス コード 送信バイト数
  GET /scripts/iisadmin/ism.dll?http/serv HTTP/1.0
  200
  3401

このエントリは、IP アドレスが 172.21.13.45 の Fred という REDMOND ドメインのユーザーが、1998 年 4 月 8 日の午後 5 時 39 分に、HTTP GET コマンド (ファイルのダウンロード) を発行したことを示しています。エラーは発生せず、3401 バイトのデータが Fred に送り返されています。

ODBC ログ

ODBC ログ形式は、Microsoft Access や Microsoft SQL Server などの ODBC に準拠したデータベースの固定データ フィールドのレコードです。ログの項目には、ユーザーの IP アドレス、ユーザー名、要求が出された日時、HTTP のステータス コード、受信バイト数、送信バイト数、利用の種類 (たとえば、GET コマンドで実行されたダウンロード)、利用の対象 (たとえば、ダウンロードされたファイル) などがあります。記録される時刻は、現地時間です。ODBC ログ形式を使用する場合は、記録を格納するデータベースを指定し、データを受け取れるようにデータベースをセットアップする必要があります。

ODBC ログを使用するには、以下の準備が必要です。

  1. ログ データ用の適切なフィールドで構成されたテーブルを含むデータベースを作成します。IIS には SQL テンプレート ファイルが用意されています。このテンプレート ファイルを SQL データベースで実行すると、IIS からのログ エントリを受け付けるテーブルが作成されます。このファイルは Logtemp.sql という名前で、\IISRoot ディレクトリにあります。セットアップで既定の設定をそのまま使用した場合、\IISRoot ディレクトリは \WindowsNT\System32 ディレクトリのサブディレクトリです。必要なフィールドは以下のとおりです。

    フィールド名 フィールドの型
    ClientHost varchar(255)
    username varchar(255)
    LogTime datetime
    service varchar(255)
    machine varchar(255)
    serverip varchar(50)
    processingtime int
    bytesrecvd int
    bytessent int
    servicestatus int
    win32status int
    operation varchar(255)
    target varchar(255)
    parameters varchar(255)
  2. データベースにシステム データ ソース名 (DSN) を割り当てます。この名前は、ODBC ソフトウェアがデータベースを認識するときに使用します。詳細については、Windows 2000 のマニュアルを参照してください。

  3. IIS にデータベース名とテーブル名を指定します。データベースへのアクセスにユーザー名とパスワードが必要な場合は、IIS を使用して指定します。

プロセス総計

プロセス総計は IIS の新機能です。W3C 拡張ログ ファイルにフィールドを追加して、Web サイトがサーバー上の CPU リソースをどのように使用しているかに関する情報を記録します。この情報は、サイトが CPU リソースを独占していないかどうかを調べたり、スクリプトや CGI 処理の異常を検出するために使用されます。

プロセス総計は、サイトごとに使用できます。個々のアプリケーションによる CPU の使用率の詳細は含まれず、アウトプロセス アプリケーションのみに関する情報がログに記録されます。プロセス総計は Web サイトに対してのみ利用でき、W3C 拡張ログ ファイル形式が選択されている場合にのみ記録されます。プロセス総計の情報には、ファイル内のほかのログ情報も含まれています。プロセス総計を有効にする手順については、「プロセッサの使用を追跡する」を参照してください。

プロセス総計から得た情報を使用して、Web サイトでプロセス調整を有効にする必要があるかどうかを判断することができます。プロセス調整は、Web サイトが使用できるプロセッサ時間を制限します。詳細については、「プロセッサ使用率について」を参照してください。

ログ ファイルのサイズと新しいログ ファイルの作成

既定の設定のとおり、IIS のログ収集を有効にすると、ユーザーがサーバーにアクセスするたびに、新しいログ エントリが作成されます。このため、ログ ファイルのサイズまたはログ ファイルの数は、少しずつ増えていきます。したがって、詳細データの収集を調節し、ログ ファイルのサイズと数を扱いやすい範囲に抑えなければならない場合があります。IIS には、ログ データの生成と新規ログ ファイルの作成を管理するための方法が、2 つ用意されています。

ログ データを管理する 1 つの方法は、W3C 拡張ログ形式を使用して、必要なデータのみを収集するようにカスタマイズする方法です。手順については、「W3C 拡張形式のログ収集をカスタマイズする」を参照してください。ログ ファイルを管理するもう 1 つの方法は、ログ ファイルを作成する頻度を変更して、ログのサイズを制限する方法です。間隔のオプションの詳細については、「ログ ファイルを保存する」を参照してください。ログ オプションを選択する際に、現在のログ ファイルにアクセスできるのは、サイトを停止した後のみであることに注意してください。

ログ ファイルは単純な ASCII テキスト形式ファイルです。作成された大量の小さなファイルを 1 つの大きなファイルにまとめる場合は、ASCII ファイルどうしを結合します。copy コマンドによるファイルの結合に関する情報は、コマンド プロンプトで「copy /?」と入力し、表示します。

IIS がファイルにログ エントリを追加するときに、サーバーの空きディスク容量が不足していると、IIS のログ収集は停止します。同時に、Windows イベント ビューアのアプリケーション ログに、イベントが記録されます。ディスク容量に再び余裕ができると、IIS のログ収集は再開します。このイベントは、Windows イベント ビューアのアプリケーション ログに記録されます。

ログ ファイルの名前

ログ ファイルの名前は、最初にログの形式を示すアルファベットがあり、その後にログを収集した時間フレームまたは順番を示す数字が続きます。詳細は、次の表を参照してください。斜体の文字は数字を示します。nn はシーケンシャル番号、yy は年、mm は月、ww は週、dd は日、hh は 24 時間形式の時間 (たとえば、午後 5 時 は 17) をそれぞれ表します。

形式 新規ログの条件 ファイル名のパターン
Microsoft IIS ログ ファイル形式 ファイル サイズ inetsv nn .log
毎時間 in yymmddhh .log
毎日 in yymmdd .log
毎週 in yymmww .log
毎月 in yymm .log
NCSA 共通ログ ファイル形式 ファイル サイズ ncsa nn .log
毎時間 nc yymmddhh .log
毎日 nc yymmdd .log
毎週 nc yymmww .log
毎月 nc yymm .log
W3C 拡張ログ ファイル形式 ファイル サイズ extend nn .log
毎時間 ex yymmddhh .log
毎日 ex yymmdd .log
毎週 ex yymmww .log
毎月 ex yymm .log