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ステータスコード)
408 レスポンス (408 Request Timeout) を取得する
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
503 レスポンス (503 Service Unavailable) を取得する
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
504 レスポンス (504 Gateway Timeout) を取得する
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

クエリの具体例

例1
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

例2
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レスポンスを抽出した結果の例です。


このページのキーワード
  • Log Parser IIS エラー
著者
iPentec.com の代表。ハードウェア、サーバー投資、管理などを担当。
Office 365やデータベースの記事なども担当。
掲載日: 2021-09-10
iPentec all rights reserverd.