Log Parserを利用してIISのログからエラーのレスポンス数を取得する - Windows Server
Log Parserを利用してIISのログからエラーのレスポンス数を取得するクエリを紹介します。
概要
Log Parserを利用して、IISのログから、エラーのレスポンス数を取得する手順を紹介します。
408 Request Timeout レスポンスがあれば、サーバーの過負荷やレスポンスに時間のかかるページを見つけられます。
503 Service Unavailable, 504 Gateway Timeout はアプリケーションのエラーがある、または、高負荷の可能性があるページを見つけられます。
事前準備
Log Parserをインストールします。インストール手順は
こちらの記事を参照して下さい。
クエリ
以下のクエリファイルを用意します。
Select
LogRow as [Line Number],
date as [Date],
time as [Time],
c-ip as [Client-IP],
s-ip as [Server IP],
s-port as [Server Port],
cs-method as [Request Verb],
cs-uri-stem as [Request URI],
sc-bytes as [Bytes sent],
sc-status as [Status],
sc-substatus as [Sub-status],
sc-win32-status as [Win 32 Status],
time-taken as [Time Taken]
From
(IISのログファイル)
where sc-status=(取得したいHTTPステータスコード)
Select
LogRow as [Line Number],
date as [Date],
time as [Time],
c-ip as [Client-IP],
s-ip as [Server IP],
s-port as [Server Port],
cs-method as [Request Verb],
cs-uri-stem as [Request URI],
sc-bytes as [Bytes sent],
sc-status as [Status],
sc-substatus as [Sub-status],
sc-win32-status as [Win 32 Status],
time-taken as [Time Taken]
From
(IISのログファイル)
where sc-status=408
Select
LogRow as [Line Number],
date as [Date],
time as [Time],
c-ip as [Client-IP],
s-ip as [Server IP],
s-port as [Server Port],
cs-method as [Request Verb],
cs-uri-stem as [Request URI],
sc-bytes as [Bytes sent],
sc-status as [Status],
sc-substatus as [Sub-status],
sc-win32-status as [Win 32 Status],
time-taken as [Time Taken]
From
(IISのログファイル)
where sc-status=503
Select
LogRow as [Line Number],
date as [Date],
time as [Time],
c-ip as [Client-IP],
s-ip as [Server IP],
s-port as [Server Port],
cs-method as [Request Verb],
cs-uri-stem as [Request URI],
sc-bytes as [Bytes sent],
sc-status as [Status],
sc-substatus as [Sub-status],
sc-win32-status as [Win 32 Status],
time-taken as [Time Taken]
From
(IISのログファイル)
where sc-status=504
コマンド
次のコマンドを実行してLogParserを起動します。
.\LogParser.exe -i:IISW3C file:(クエリファイル名) -o:DataGrid -q:off
クエリの具体例
Select
LogRow as [Line Number],
date as [Date],
time as [Time],
c-ip as [Client-IP],
s-ip as [Server IP],
s-port as [Server Port],
cs-method as [Request Verb],
cs-uri-stem as [Request URI],
sc-bytes as [Bytes sent],
sc-status as [Status],
sc-substatus as [Sub-status],
sc-win32-status as [Win 32 Status],
time-taken as [Time Taken]
From
C:\inetpub\logs\LogFiles\W3SVC2\u_ex210908.log
where sc-status=408
Select
LogRow as [Line Number],
date as [Date],
time as [Time],
c-ip as [Client-IP],
s-ip as [Server IP],
s-port as [Server Port],
cs-method as [Request Verb],
cs-uri-stem as [Request URI],
sc-bytes as [Bytes sent],
sc-status as [Status],
sc-substatus as [Sub-status],
sc-win32-status as [Win 32 Status],
time-taken as [Time Taken]
From
C:\inetpub\logs\LogFiles\W3SVC2\u_ex2108*.log
where sc-status=503
実行結果
ログに指定したレスポンスに該当する行があれば結果に出力されます。
下図は503レスポンスを抽出した結果の例です。
著者
iPentec.com の代表。ハードウェア、サーバー投資、管理などを担当。
Office 365やデータベースの記事なども担当。