メインコンテンツまでスキップ
Sumo Logic Japanese

IIS 10 アプリケーションのログの収集

このページでは、Windows Server で Microsoft インターネット インフォメーション サービス (IIS) のログと HTTP エラー ログを有効にして、これらのログを Sumo Logic に取り込む方法を実際に示します。

ログ タイプ

このセクションでは、以下の IIS 10 と IIS 8.5 のデフォルト ログ形式を使用します。

IIS 10 アプリケーションは、デフォルトのログ形式を使用します。IIS では、IIS アクセス ログに記録するフィールドを選択できます。各フィールドの意味と重要性については、こちらのリンクを参照してください。

IIS ログ ファイルはローカル ファイルとして生成されます。標準 Windows Server のデフォルトのログ保管場所は %SystemDrive%\inetpub\logs\LogFiles です。 

例: 

c:\inetpub\logs\LogFiles\

このフォルダには、IIS で設定した各サイト用のサブフォルダがあります。ログが保管されるフォルダ名は、W3SVC1、W3SVC2、W3SVC3 のように付けられます。フォルダ名の最後の数字は、サイト ID に対応します。たとえば、W3SVC2 はサイト ID 2 のフォルダです。

IIS アクセス ログ (W3C デフォルト形式) 

Sumo Logic は、FER (Field Extraction Rules) と IIS 10 アプリケーションの以下のフィールドでは、ログが W3C 形式で格納されていることを想定します。

#Fields: date time s-ip cs-method cs-uri-stem cs-uri-query s-port cs-username c-ip 
cs(User-Agent) cs(Referrer) sc-status sc-substatus sc-win32-status time-taken

IIS では、IIS アクセス ログに記録するフィールドを選択できます。各フィールドの意味と重要性については、こちらのリンクを参照してください。

HTTP エラー ログ 
#Fields: date time c-ip c-port s-ip s-port protocol_version verb cookedurl_query 
protocol_status siteId Reason_Phrase Queue_Name

HTTP エラー ログの設定方法と、各 HTTP エラー ログ フィールドの意味と重要性については、こちらのリンクを参照してください。

パフォーマンス ログ 

Installed Collector の "Windows パフォーマンス" Source で設定される Perfmon クエリの出力。

#Fields: date time s-ip cs-method cs-uri-stem cs-uri-query s-port cs-usern…” with
“IIS Access Logs (W3C format) #Fields: date time s-ip cs-method cs-uri-stem cs-uri-query
s-port cs-us…

前提条件となる作業

IIS イベントのログを準備するには、以下の作業が必要です。

IIS サーバでのログの有効化

IIS サーバのログが有効化されていない場合は以下の作業を実行します。

IIS サーバでログを有効化するには、次の手順を実行します。
  1. IIS Manager を開きます。

  2. [Connections (接続)] ペインでサイトまたはサーバを選択して [Logging (ログ)] をダブルクリックします。

  1. [Log File (ログ ファイル)] の下にある [Format (形式)] フィールドで [W3C] を選択して [Select Fields (フィールドを選択)] をクリックします。IIS 10 アプリケーションは、デフォルトで選択されるフィールドで動作します。

  2. 以下のフィールドがまだ選択されていなければ選択してください。Sumo Logic の IIS アプリケーションと FER (Field Extraction Rules) では、デフォルトで IIS ログのこれらの項目を想定します:

date time s-ip cs-method cs-uri-stem cs-uri-query s-port
cs-username c-ip cs(User-Agent) cs(Referer) sc-status
sc-substatus sc-win32-status time-taken

IIS ログ形式とログ設定については、こちらのリンクを参照してください。

ログ ファイルが作成されることの検証

以下の作業を実行して、ログ ファイルが作成されることを確認します。

ログ ファイルが作成されることを確認するには、次の手順を実行します。
  1. コマンドライン ウィンドウを開き、ディレクトリを C:\inetpub\Logs\LogFiles に変更します。これは、これらのファイルを収集する Source の設定時に入力するパスになります。

  2. \W3SVC1 ディレクトリで、.log という拡張子のファイルが 1 つ以上表示されます。ファイルが存在していれば、そのファイルを収集できます。

Windows Server での HTTP エラー ログの有効化

以下の作業を実行して、IIS サーバをホストしている Windows Server 上で HTTP エラー ログを有効化します。

IIS サーバをホストしている Windows Server 上で HTTP エラー ログを有効化するには、次の手順を実行します。
  1. HTTP エラー ログの設定については、こちらのリンク先のドキュメントを参照してください。

  2. HTTP エラー ログ形式については、こちらのリンク先のドキュメントを参照してください。

HTTP エラー ログ ファイルはローカル ファイルとして生成されます。HTTP エラー ログ ファイルのデフォルトの保管場所は C:\Windows\System32\LogFiles\HTTPERR です。

Collector の設定

IIS 10 アプリケーションのログをインストールするには、ログをホストしているサーバにローカル Collector をインストールします。

Source の設定

このセクションでは、以下のログ タイプの Source を設定する方法を実際に示します。

IIS アクセス ログの Source の設定

このセクションでは、Installed Collector で使用する IIS アクセス ログのローカル ログ ファイルを設定する方法を実際に示します。リモート ファイル Source を設定することもできますが、設定はさらに複雑になります。

IIS アクセス ログのローカル ファイル Source を設定するには、次の手順を実行します。
  1. ローカル ファイル Source を設定します。

  2. ローカル ファイル Source フィールドを次のように指定します。

    1. Name (名前): 必須 (「IIS」など)

    2. Description (説明): (省略可能)

    3. ファイル パス (必須).C:\inetpub\Logs\LogFiles\W3SVC*\*.log

    4. Collection start time (収集開始時間): ログ履歴の収集をどこまで遡って開始するかを選択します。たとえば、最終変更日が過去 7 日間に含まれるログを収集するには、7 日前を選択します。

    5. Source Host (Source ホスト): デフォルトでは、オペレーティング システムが割り当てたホスト名が使用されますが、別のホスト名を入力することもできます。

    6. Source Category (必須): 例: "Webserver/IIS/Access"。[Source Category] メタデータ フィールドは、Source を整理してラベル付けするための基本的な構成要素です。詳細については、「ベスト プラクティス」を参照)。

  3. [Advanced (詳細)] セクションを設定します。

    1. Timestamp Parsing Settings (タイムスタンプ parse 設定): 設定がログ ファイルのタイムゾーンと一致していることを確認します。

    2. Enable Timestamp Parsing (タイムスタンプ parse の有効化): [Extract timestamp information from log file entries (ログ ファイル エントリからタイムスタンプ情報を抽出する)] を選択します。

    3. Time Zone (タイム ゾーン): [Use time zone from log file (ログ ファイルのタイム ゾーンを使用)] オプションを選択します。[If none is present use (どちらも存在しない場合)]: タイムゾーンを [UTC] に設定します。

    4. Timestamp Format (タイムスタンプ形式): [Automatically detect the format (形式を自動検出)] オプションを選択します。

    5. Encoding (エンコーディング): デフォルトは UTF-8 ですが、IIS ログのエンコードが異なる場合は、メニューから他のエンコーディング形式を選択できます。

    6. Enable Multiline Processing (複数行の処理の有効化)。複数行にわたるメッセージを検出する場合は、このオプションを無効にします。IIS ログは 1 行のログ ファイルであるため、このオプションを無効にすると、収集のパフォーマンスが向上し、メッセージが正確に Sumo Logic に送信されます。

  4. [Save (保存)] をクリックします。

数分後、新しい Source が Collector に伝達され、Sumo Logic サービスへの IIS ログ ファイルの送信が開始されます。

HTTP エラー ログの Source の設定

このセクションでは、Installed Collector で使用する HTTP エラー ログのローカル ログ ファイルを設定する方法を実際に示します。リモート ファイル Source を設定することもできますが、設定はさらに複雑になります。

HTTP エラー ログのローカル ファイル Source を設定するには、次の手順を実行します。
  1. ローカル ファイル Source を設定します。

  2. ローカル ファイル Source フィールドを次のように指定します。

    1. Name (名前): 必須 (例: "HTTP Error Logs")

    2. Description (説明): (省略可能)

    3. File Path (ファイル パス) (必須)。C:\Windows\System32\LogFiles\HTTPERR\*.*

    4. Collection start time (収集開始時間): ログ履歴の収集をどこまで遡って開始するかを選択します。たとえば、最終変更日が過去 7 日間に含まれるログを収集するには、7 日前を選択します。

    5. Source Host (Source ホスト): デフォルトでは、オペレーティング システムが割り当てたホスト名が使用されますが、別のホスト名を入力することもできます。

    6. Source Category (必須): 例: "Webserver/IIS/Error"。[Source Category] メタデータ フィールドは、Source を整理してラベル付けするための基本的な構成要素です。詳細については、「ベスト プラクティス」を参照)。

  3. [Advanced (詳細)] セクションを設定します。

    1. Timestamp Parsing Settings (タイムスタンプ parse 設定): 設定がログ ファイルのタイムゾーンと一致していることを確認します。

    2. Enable Timestamp Parsing (タイムスタンプ parse の有効化): [Extract timestamp information from log file entries (ログ ファイル エントリからタイムスタンプ情報を抽出する)] を選択します。

    3. Time Zone (タイム ゾーン): [Use time zone from log file (ログ ファイルのタイム ゾーンを使用)] オプションを選択します。[If none is present use (どちらも存在しない場合)]: タイムゾーンを [UTC] に設定します。

    4. Timestamp Format (タイムスタンプ形式): [Automatically detect the format (形式を自動検出)] オプションを選択します。

    5. Encoding (エンコーディング): デフォルトは UTF-8 ですが、IIS ログのエンコードが異なる場合は、メニューから他のエンコーディング形式を選択できます。

    6. Enable Multiline Processing (複数行の処理の有効化)。複数行にわたるメッセージを検出する場合は、このオプションを無効にします。IIS エラー ログは 1 行のログ ファイルであるため、このオプションを無効にすると、収集のパフォーマンスが向上し、メッセージが正確に Sumo Logic に送信されます。

  4. [Save (保存)] をクリックします。

数分後、新しい Source が Collector に伝達され、Sumo Logic サービスへの IIS HTTP エラー ログ ファイルの送信が開始されます。

IIS パフォーマンス (Perfmom) ログの Source の設定

このセクションでは、Windows パフォーマンス Source を Installed Collector で使用するための設定方法を実際に示します。

自分の環境に合わせて適切な Source を使用してください。

IIS パフォーマンス ログの Source を設定するには、次の手順を実行します。 
  1. ローカル Windows パフォーマンス モニタ ログ Source を設定します。
  2. ローカル Windows パフォーマンス Source フィールドを次のように設定します。
  • Name (名前): 必須 (例: "IIS Performance")
  • Source Category (必須): 例: Webserver/IIS/PerfCounter.[Source Category] メタデータ フィールドは、Source を整理してラベル付けするための基本的な構成要素です。詳細については、「ベスト プラクティス」を参照)。
  • Frequency (頻度): Every Minute (毎分) (カスタム頻度を選択できます)
  • Description (説明): (省略可能)
  1. [Perfmon Queries (Perfmon クエリ)] の下で [Add Query (クエリの追加)] をクリックします。

  2. 次の 2 つのクエリを追加します。

  • クエリ 1:
  1. [Name (名前)]「WebServices」と入力します。
  2. [Query (クエリ)]「select TotalMethodRequestsPerSec、GetRequestsPerSec, PostRequestsPerSec, CurrentConnections, CurrentAnonymousUsers, CurrentNonAnonymousUsers, CGIRequestsPerSec, ISAPIExtensionRequestsPerSec, BytesReceivedPerSec, BytesSentPerSec, FilesReceivedPerSec, FilesSentPerSec, ServiceUptime, BytesTotalPerSec from Win32_PerfFormattedData_W3SVC_WebService (Win32_PerfFormattedData_W3SVC_WebService から TotalMethodRequestsPerSec、GetRequestsPerSec、PostRequestsPerSec、CurrentConnections、CurrentAnonymousUsers、CurrentNonAnonymousUsers、CGIRequestsPerSec、ISAPIExtensionRequestsPerSec、BytesReceivedPerSec、BytesSentPerSec、FilesReceivedPerSec、FilesSentPerSec、ServiceUptime、BytesTotalPerSec を選択)」と入力します。
  • クエリ 2:
  1. [Name (名前)]「HTTPServiceRequestQueues」と入力します。
  2. [Query (クエリ)]「Select ArrivalRate, CurrentQueueSize, CacheHitRate, RejectionRate, MaxQueueItemAge from Win32_PerfFormattedData_Counters_HTTPServiceRequestQueue (Win32_PerfFormattedData_Counters_HTTPServiceRequestQueue から ArrivalRate、CurrentQueueSize、CacheHitRate、RejectionRate、MaxQueueItemAge を選択)」と入力します。
  1. [Save (保存)] をクリックします。

FER (Field Extraction Rules)

このセクションでは、以下の Field Extraction Rule タイプの例を示します。

  • IIS アクセス ログ
  • HTTP エラー ログ
  • パフォーマンス ログ (W3SVC_WebService に対する Perfmon クエリ)
  • パフォーマンス ログ (Counters_HTTPServiceRequestQueues に対する Perfmon クエリ)

IIS  アクセス ログの Field Extraction Rule

_sourceCategory=Webserver/IIS/Access
| parse regex "(?<server_ip>\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}) (?<method>\S+?) 
(?<cs_uri_stem>\S+?) (?<cs_uri_query>\S+?) (?<s_port>\S+?) (?<cs_username>\S+?) 
(?<c_ip>\S+?) (?<cs_User_Agent>\S+?) (?<cs_referer>\S+?) (?<sc_status>\S+?) 
(?<sc_substatus>\S+?) (?<sc_win32_status>\S+?) (?<time_taken>\S+?)$"

HTTP エラー ログの Field Extraction Rule

_sourceCategory=Webserver/IIS/Error
| parse regex "(?<c_ip>\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}) (?<c_port>\S+?) 
(?<server_ip>\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}) (?<s_port>\S+?) (?<protocol_version>\S+?) 
(?<verb>\S+?) (?<cookedurl_query>\S+?) (?<Protocol_Status>\S+?) (?<SiteId>\S+?) 
(?<Reason_Phrase>\S+?) (?<Queue_Name>\S+?)$"

パフォーマンス ログ (W3SVC_WebService に対する Perfmon クエリ) の Field Extraction Rule

_sourceCategory=Webserver/IIS/PerfCounter Win32_PerfFormattedData_W3SVC_WebService
| parse "Name = \"*\";" as Name nodrop
| parse "BytesReceivedPersec = \"*\";" as BytesReceivedPersec nodrop
| parse "BytesSentPersec = \"*\";" as BytesSentPersec nodrop
| parse "BytesTotalPersec = \"*\";" as BytesTotalPersec nodrop
| parse "CGIRequestsPersec = *;" as CGIRequestsPersec nodrop
| parse "CurrentAnonymousUsers = *;" as CurrentAnonymousUsers nodrop
| parse "CurrentConnections = *;" as CurrentConnections nodrop
| parse "CurrentNonAnonymousUsers = *;" as CurrentNonAnonymousUsers nodrop
| parse "FilesReceivedPersec = *;" as FilesReceivedPersec nodrop
| parse "FilesSentPersec = *;" as FilesSentPersec nodrop
| parse "GetRequestsPersec = *;" as GetRequestsPersec nodrop
| parse "ISAPIExtensionRequestsPersec = *;" as GetRequestsPersec nodrop
| parse "PostRequestsPersec = *;" as PostRequestsPersec nodrop
| parse "ServiceUptime = *;" as ServiceUptime nodrop
| parse "TotalMethodRequestsPersec = *;" as TotalMethodRequestsPersec nodrop

パフォーマンス ログ (Counters_HTTPServiceRequestQueues に対する Perfmon クエリ) の Field Extraction Rule

_sourceCategory=Webserver/IIS/PerfCounter Win32_PerfFormattedData_Counters_HTTPServiceRequestQueues
| parse "Name = \"*\";" as Name nodrop
| parse "ArrivalRate = \"*\";" as ArrivalRate nodrop
| parse "CacheHitRate = \"*\";" as CacheHitRate nodrop
| parse "CurrentQueueSize = *;" as CurrentQueueSize nodrop
| parse "MaxQueueItemAge = \"*\";" as MaxQueueItemAge nodrop
| parse "RejectionRate = \"*\";" as RejectionRate nodrop

ログ メッセージのサンプル 

このセクションでは、以下のログ メッセージ タイプの例を示します。

  • IIS アクセス ログ
  • HTTP エラー ログ
  • IIS パフォーマンス ログ

IIS アクセス ログ (W3C デフォルト形式) の例

2019-03-14 07:58:10 10.0.0.104 PUT /Internal/RemoteShare/ ReturnUrl=%2fConfigWeb%2fAudit.aspx 
443 - 160.44.59.168 Mozilla/5.0+(Windows+NT+6.1;+rv:50.0)+Gecko/20100101+Firefox/50.0 
http://www.greylock.com 304 8 12030 58

2019-03-14 08:10:41 10.0.0.103 GET /welcome.png v=4.5.0 80 - 205.168.30.201 
Mozilla/5.0+(compatible;+Googlebot/2.1;++http://www.google.com/bot.html) 
http://www.bing.com/search?q=sumo%20applications&src=IE-SearchBox&FORM=IE11SR 200 8 12030 6

HTTP エラー ログの例

2019-03-14 20:10:10 10.20.190.10 45082 10.24.170.60 80 HTTP/1.1 GET 
/GlobalVilla/MySwimmingPool/images/favicons/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/etc/passwd 
403 - Forbidden -

2019-03-14 23:10:10 10.20.190.10 41095 10.24.170.60 80 HTTP/1.1 POST 
/GlobalVilla/MySwimmingPool/sumodemo/upload.php 411 - LengthRequired -

2019-03-14 23:09:41 10.20.190.10 58152 10.24.170.60 80 - - - - - Timer_ConnectionIdle -

IIS パフォーマンス ログの例

このセクションでは、2 つの異なるクエリで生成される IIS パフォーマンス ログ形式の例を示します。他の W3SVC WebServices Perfmon カウンタについては、このリンク先のドキュメントを参照してください。

A. 次の Perfmon クエリは
select TotalMethodRequestsPerSec, GetRequestsPerSec, PostRequestsPerSec, CurrentConnections, 
CurrentAnonymousUsers, CurrentNonAnonymousUsers, CGIRequestsPerSec, ISAPIExtensionRequestsPerSec, 
BytesReceivedPerSec, BytesSentPerSec, FilesReceivedPerSec, FilesSentPerSec, ServiceUptime, 
BytesTotalPerSec from Win32_PerfFormattedData_W3SVC_WebService

次のログ形式を生成します。

instance of Win32_PerfFormattedData_W3SVC_WebService
{
BytesReceivedPersec = "50";
BytesSentPersec = "125";
BytesTotalPersec = "75";
CGIRequestsPersec = 0;
CurrentAnonymousUsers = 10;
CurrentConnections = 9;
CurrentNonAnonymousUsers = 8;
FilesReceivedPersec = 0;
FilesSentPersec = 0;
GetRequestsPersec = 6;
ISAPIExtensionRequestsPersec = 0;
Name = "_Total";
PostRequestsPersec = 2;
ServiceUptime = 2398147;
TotalMethodRequestsPersec = 0;
};
B. 次の Perfmon クエリは
Select ArrivalRate, CurrentQueueSize, CacheHitRate, RejectionRate, MaxQueueItemAge from 
Win32_PerfFormattedData_Counters_HTTPServiceRequestQueues

次のログ形式を生成します。

instance of Win32_PerfFormattedData_Counters_HTTPServiceRequestQueues
{
ArrivalRate = "100";
CacheHitRate = "27";
CurrentQueueSize = 0;
MaxQueueItemAge = "0";
Name = "GlobalVillage";
RejectionRate = "0";
}; 

クエリのサンプル 

次のクエリ例は、[IIS 10 - Server Operations - Error (IIS 10 - サーバ操作 - エラー)] ダッシュボードの [Top Server Errors by Server (サーバ別の上位サーバ エラー)] パネルから引用されています。

_sourceCategory=Webserver/IIS/Access 5*
| parse regex "(?<server_ip>\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}) (?<method>\S+?) 
(?<cs_uri_stem>\S+?) (?<cs_uri_query>\S+?) (?<s_port>\S+?) (?<cs_username>\S+?) 
(?<c_ip>\S+?) (?<cs_User_Agent>\S+?) (?<cs_referer>\S+?) (?<sc_status>\S+?) 
(?<sc_substatus>\S+?) (?<sc_win32_status>\S+?) (?<time_taken>\S+?)$"
| where sc_status matches "5*"
| count by server_ip, cs_uri_stem, sc_status, sc_substatus, sc_win32_status | sort - _count

次のクエリ例は、[IIS 10 - HTTP Error (IIS 10 - HTTP エラー)] ダッシュボードの [Top Reason Phrase (上位の理由句)] パネルから引用されています。

_sourceCategory=Webserver/IIS/Error
| parse regex "(?<c_ip>\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}) (?<c_port>\S+?) 
(?<server_ip>\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}) (?<s_port>\S+?) (?<protocol_version>\S+?) 
(?<verb>\S+?) (?<cookedurl_query>\S+?) (?<Protocol_Status>\S+?) (?<SiteId>\S+?) 
(?<Reason_Phrase>\S+?) (?<Queue_Name>\S+?)$"
| count by Reason_Phrase
| top 10 Reason_Phrase by _count, Reason_Phrase

次のクエリ例は、[IIS 10 - Overview (IIS 10 - 概要)] ダッシュボードの [IIS Site Uptime (IIS サイトのアップタイム)] パネルから引用されています。

_sourceCategory=Webserver/IIS/PerfCounter
Win32_PerfFormattedData_W3SVC_WebService ServiceUptime
| parse "Name = \"*\";" as Name
| parse "ServiceUptime = *;" as ServiceUptime
| withtime ServiceUptime
| most_recent(ServiceUptime_withtime) as ServiceUptime by Name
| ServiceUptime / (60*60*24) as ServiceUptimeDays
| sort by ServiceUptimeDays, Name asc
| fields -ServiceUptime