先日、IISを触る機会があり、IISのログについて調査したので情報をまとめた。
出力されるログの種類、格納場所、ファイル名、ログ格納場所の変更、ログローテート(ロールオーバー)設定、ログ形式設定についてざっくりと記載。
検証環境:Windows Server 2022 Datacenter(Azure 仮想マシン) & IIS 10.0
IISの出力するログの種類
IISが出力するログは2つ。IISログとHTTPERRログ。(イベントビューワーへ出力されるログについてはここでは割愛する)
IISログは、webサーバへの接続情報が記録されるログ。IISは複数のログ形式をサポートしており、管理者にて形式を選択することが可能。ログ形式の詳細については”IISログの形式について”にて後述する。
HTTPERRログはエラーログ、webサーバへの接続エラー情報などが記録される。
IISの各ログの格納場所とファイル名
IISログファイルの格納先
IISログの格納先フォルダは、既定では %SystemDrive%\inetpub\logs\LogFiles である。ここに W3SVC1 フォルダが作成され、このフォルダ配下にIISログファイルが格納されている。ログの格納先ディレクトリは管理者にてIISの管理コンソール(IISマネージャー)にて変更可能となっている。
IISログのファイル名
IISログのファイル名は、既定では u_exyymmdd.log である。
このファイルの命名規則は、選択されたログ形式設定とログファイルロールオーバー設定、エンコード設定などの条件によって決定される。
ログファイルのエンコード方式がUTF8となっている場合は、ファイル名の冒頭に”u_”の文字列が付加される。ANSIの場合は”u_”は付加されない。
ログファイル名の”ex”はログ形式がW3C形式であること、”nc”はNCSA形式であること、”in”はIIS形式であることを示す模様(ざっくり確認した程度、かつ、この規則に当てはまらない出力も確認しているため別途、検証が必要)。
“yymmdd”部分についても、選択されたログファイルロールオーバーのスケジュールによって命名が異なる。ロールオーバー設定で[毎時]を選択した場合は、”yyyymmddhh”の命名則となり、それ以外([毎月]、[毎週]、[毎日])を選択した場合は”yyyymmdd”の命名則でファイル名が決定される。
HTTPERRログファイルの格納先
HTTPERRログファイルの既定の格納場所は C:\Windows\System32\LogFiles\HTTPERR となっている。
ログの格納場所については、IISの管理コンソール(IISマネージャー)からは変更できないが、レジストリキーを作成することで変更できる。
HTTPERRログのファイル名
ファイル名は既定では httperr1.log となっている。
ログの各種設定について
IISログの格納先フォルダの変更
IISマネージャーから変更可能。
[スタート]メニュー→[Windows管理ツール]から[インターネットインフォメーションサービス(IIS)マネージャー]を選択、IISマネージャーを起動する。
IISマネージャーのトップ画面から対象のサーバを選択しダブルクリック、画面中央の機能ビューより、[ログ記録]を選択する。
ログファイル – ディレクトリ(Y):項目を変更する。
IISログのログ形式の変更
IISマネージャーから変更可能。
1.フォルダの変更同様、IISマネージャーにて[ログ記録]画面を表示させる。
2.ログファイル – 形式(M):からログ形式を選択する。
3.(W3C限定)出力するログフィールドを選択する。
IISログの形式について
W3C形式、IIS形式、NCSA形式の違いについては以下を参照。
https://learn.microsoft.com/ja-jp/windows/win32/http/w3c-logging
https://learn.microsoft.com/ja-jp/windows/win32/http/iis-logging
https://learn.microsoft.com/ja-jp/windows/win32/http/ncsa-logging
(注意)IIS形式およびNCSA形式はOSで設定したタイムゾーンでログ出力されるが、W3CはUTC/協定世界時間で出力される。
IISログのログファイル ロールオーバーの設定変更
IISマネージャーから変更可能。
フォルダの変更同様、IISマネージャーにて[ログ記録]画面を表示させる。
ログファイル ロールオーバー からロールオーバーの方式を選択する。[スケジュール](毎月、毎週、毎日次、毎時間)切り替えか、[ファイル最大サイズ]切り替えか、[新しいログファイルを作成しない](1つのファイルにログ出力し続ける)か、選択する。
[スケジュール]方式を選択した場合は、切り替えスケジュールを、毎月、毎週、毎日次、毎時間のいずれかから選択する。
[ファイル最大サイズ]方式を選択した場合、切り替えが行われるファイルサイズを選択する。ここで設定できる最少ファイルサイズは1048576バイトとなっている。
HTTPERRログの格納先フォルダ変更
レジストリエディタを使用し、以下のレジストリキーに、レジストリ値を登録することでログ格納先を変更することが可能。
\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP\Parameters
ErrorLoggingDir というレジストリ値を作成、データとして変更先格納フォルダを入力する。
参照サイト:https://learn.microsoft.com/ja-jp/troubleshoot/developer/webapps/aspnet/site-behavior-performance/error-logging-http-apis#configure-http-api-error-logging
コメント