インターネット向けであれイントラネット向けであれ、Webサーバではログ情報の収集が必要だろう。単にアクセス状況を解析するだけでなく、エラーの有無を調べたり、セキュリティインシデントが発生した際の証拠になったりする可能性もあるからだ。ということで今回は、IISにおけるログの設定について取り上げる。
ログの設定
構成ファイルを直接編集する方法もあるが、ここでは一般的にGUIを使用する方法について解説する。
[サーバー マネージャー]で、[ツール]メニューから[インターネット インフォメーション サービス(IIS)マネージャー]管理ツールを実行する。
[インターネット インフォメーション サービス(IIS)マネージャー]管理ツールの[接続]ツリーで、ログ設定の対象にしたいWebサイトを選択する。
[機能ビュー]で[ログ記録]をダブルクリックする。
- 続いて表示する[ログ記録]の[ログ ファイル]セクションで、[形式]を使ってログファイルの形式を選択する。選択肢には以下のものがある。
[W3C]形式で記録するフィールドをカスタマイズするには、[ログ記録]ページの[フィールドの選択]をクリックする。するとW3Cログ記録フィールド]ダイアログが現れるので、そこで記録するフィールドを指定する。
ログファイルの保存場所は、[ディレクトリ]で指定する。既定値は「%SystemDrive%\inetpub\logs\LogFiles」。
[操作]画面で[適用]をクリックする。
[IIS]: IIS独自のログファイル形式で、形式は固定である。そのため、記録するフィールドのカスタマイズはできない。フィールドはカンマで区切り、時刻は現地時間を使う。
[NCSA]: NCSA(National Center for Supercomputing Applications)共通ログファイル形式で、これも記録するフィールドのカスタマイズはできない。フィールドはカンマで区切り、時刻は協定世界時(UTC)と現地時間のオフセットで記録する。
[W3C]: 集中W3Cログファイル形式で、これは記録するフィールドのカスタマイズが可能。フィールドはスペースで区切り、自国は協定世界時(UTC)で記録する。
[カスタム]: カスタムログモジュール用のカスタム形式を使用する。これを選択した場合、IIS管理ツールでカスタムログ記録を構成することはできない。
なお、[ログ ファイル ロールオーバー]については後述する。
W3Cログファイル形式を使用する際のフィールドの選択
続いて、W3Cログファイル形式を使用する際に記録するフィールドのカスタマイズ手順について解説する。
[サーバー マネージャー]で、[ツール]メニューから[インターネット インフォメーション サービス(IIS)マネージャー]管理ツールを実行する。
[インターネット インフォメーション サービス(IIS)マネージャー]管理ツールの[接続]ツリーで、ログ設定の対象にしたいWebサイトを選択する。
[機能ビュー]で[ログの記録]をダブルクリックする。
続いて表示する[ログの記録]の[ログ ファイル]セクションで、[形式]以下の[ログ ファイル]にある[フィールドの選択]をクリックする。
続いて表示する[W3Cログ記録フィールド]ダイアログで、フィールドの指定を行う。
設定が完了したら、[操作]画面で[適用]をクリックする。
設定できるフィールドの選択肢には、以下のものがある。
[日付(date)] : 要求が発生した日付
[時間 (time)]: 求が発生した時刻
[クライアントIPアドレス (c-ip)] : HTTPリクエスト要求を発行したクライアントのIPアドレス
[ユーザー名 (cs-username)] : 認証済みユーザーのユーザー名。匿名ユーザーはハイフンになる
[サービス名 (s-sitename)] : サイトインスタンス番号
[サーバー名 (s-computername)] : ログファイルのエントリを生成したサーバーの名前
[サーバーIP アドレス (s-ip)] : ログファイルのエントリを生成したサーバーのIPアドレス
[サーバー ポート (s-port)] : サーバのポート番号
[メソッド (cs-method)] : HTTPリクエストの内容。GETメソッドなど
[URIステム (cs-uri-stem)] : 操作のURI(Universal Resource Identifier)
URIクエリ (cs-uri-query)] : 動的に構成するWebページにのみ関係する項目で、クライアントが実行しようとしていたクエリがあれば記録する
[プロトコルの状態 (sc-status)] : HTTPやFTPのステータスコード
[プロトコルの副状態 ( sc-substatus )]: HTTPやFTPの副ステータスコード
[Win32の状態 (sc-win32-status)] : Windows の状態コード
[送信バイト数 (sc-bytes)] / [受信バイト数 (cs-bytes)] : サーバが送信、あるいは受信したバイト数
[所要時間 (time-taken)] : 操作にかかった時間。単位はms
[プロトコル バージョン (cs-version)] : クライアントが使用したHTTPやFTPのバージョン
[ホスト (cs-host)] : もしも存在すればホスト名を記録する
[ユーザー エージェント (cs(UserAgent))] : クライアントが使用したWebブラウザーの種類を示す文字列
[Cookie (cs(Cookie))] : Cookieのやりとりがあれば、その内容を記録
[参照者 (cs(Referer))] : いわゆるリファラ。ユーザーがどこのWebページから遷移してきたかを示す
ログファイルのロールオーバー設定
ロールオーバーとは、ログファイルの上書きのことである。ログファイルが堆積してハードディスクが埋まってしまわないように、一定の条件を満たしたときに上書きするように設定できるが、ログとして残すべき情報が消えてしまうリスクもあるので注意が必要だ。
[サーバー マネージャー]で、[ツール]メニューから[インターネット インフォメーション サービス(IIS)マネージャー]管理ツールを実行する。
[インターネット インフォメーション サービス(IIS)マネージャー]管理ツールの[接続]ツリーで、ログ設定の対象にしたいWebサイトを選択する。
[機能ビュー]で[ログの記録]をダブルクリックする。
続いて表示する[ログの記録]の[ログ ファイル ロールオーバー]で、次のいずれかのオプションを選択する。
- 設定が完了したら、[操作]画面で[適用]をクリックする。
[スケジュール] : 新しいログ ファイルを作成する頻度を指定する。[毎時間](1 時間に1回)、[毎日](1日に1回)、[毎週](1週間に1回)、[毎月](1ヶ月に1回)、のいずれかを選択できる。
[ファイルの最大サイズ (バイト)] : ログファイルのサイズ上限を指定する。ここで指定したサイズに達したら新しいログファイルを作成するもので、最小サイズは1,048,576バイト。
[新しいログ ファイルを作成しない] : 新しいログファイルに切り替えないで、ずっと同じファイルを使い続ける。データがひとつのファイルにまとまるので解析はしやすいが、サイズの肥大化に注意が必要だ。
[ファイル名およびロールオーバーに地域設定を使用する] : ロールオーバーを行う時間を、既定値の協定世界時(UTC)ではなく、サーバ設置場所の現地時間にする際に使用する選択肢。ただし、これが影響するのはロールオーバーのタイミングだけで、ログの内容は常にUTCになる。