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

IIS のログの収集

この手順では、Windows サーバで Microsoft インターネット インフォメーション サービス (IIS) のログを有効にして、ログを Sumo Logic に取り込む方法について説明します。

ログ タイプ

IIS ログは、ローカル ファイルとして生成され、デフォルトで C:\inetpub\Logs\LogFiles\W3SVC1 ディレクトリに書き込まれます。

Sumo Logic のフィールド抽出ルールと IIS アプリケーションでは、次のフィールドが含まれる W3C フォーマット (https://msdn.microsoft.com/en-us/library/ms525807(v=vs.90).aspx) を想定しています。

  • Date
  • Time (時間)
  • ServerIP
  • メソッド
  • UriStem
  • UriQuery
  • Server Port
  • UserName
  • ClientIP
  • UserAgent
  • Referer
  • Protocol Status
  • Protocol Substatus
  • Win32Status
  • TimeTaken

IIS のログ フォーマットの詳細については、https://www.iis.net/learn/manage/provisioning-and-managing-iis/configure-logging-in-iis を参照してください。

前提条件/要件

IIS イベントのログの準備をするには、以下の手順を実行します。

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

  1. サーバ マネージャ コンソールを開きます。
  2. [役割] を選択します。
  3. [Web サーバー (IIS)] を選択します。
  4. IIS ログを収集するホストを選択します。
  5. 右側のペインで [ログ記録] を選択します。
  6. [ログ ファイルの作成単位] オプションで [サイト] を選択します。
  7. ログするフィールドを選択できるように、[ログ ファイル] の [形式] で [W3C] を選択します。
  8. [フィールドの選択] をクリックし、次の項目のチェックボックスをオンにします (Sumo Logic の IIS アプリケーションとフィールド抽出ルールでは、デフォルトで IIS ログの次の項目を想定しています)。
    • Date
    • Time (時間)
    • ServerIP
    • メソッド
    • UriStem
    • UriQuery
    • Server Port
    • UserName
    • ClientIP
    • UserAgent
    • Referer
    • Protocol Status
    • Protocol Substatus
    • Win32Status
    • TimeTaken
  9. [OK] をクリックして、設定を保存します。

ログ ファイルが作成されていることの確認

  1. コマンドライン ウィンドウを開き、ディレクトリを C:\inetpub\Logs\LogFiles に変更します。これは、これらのファイルを収集するソースの設定時に入力するパスになります。
  2. \W3SVC1 ディレクトリで、.log という拡張子のファイルが 1 つ以上表示されます。ファイルが存在していれば、そのファイルを収集できます。

コレクタの設定

インストール済みコレクタ (Windows) を設定します。コレクタは、ログがホストされるシステムにインストールすることをお勧めします。

ソースの設定

IIS からログを収集するには、インストール済みコレクタとローカル ファイル ソースを使用します。リモート ファイル ソースを設定することもできますが、設定はさらに複雑になります。Sumo Logic では、可能であればローカル ファイル ソースを使用することをお勧めします。

  1. ローカル ファイル ソースを設定します。
  2. ローカル ファイル ソース フィールドを次のように設定します。
    1. Name (名前): 必須 (「IIS」など)
    2. Description (説明)。(省略可能)
    3. File Path (ファイル パス) (必須): C:\inetpub\Logs\LogFiles\W3SVC1\*.log
    4. Collection start time (収集開始時間): ログ履歴の収集をどこまで遡って開始するかを選択します。たとえば、最終変更日が過去 7 日間に含まれるログを収集するには、7 日前を選択します。
    5. Source Host (ソース ホスト): デフォルトでは、オペレーティング システムが割り当てたホスト名が使用されますが、別のホスト名を入力することもできます。
    6. Source Category (ソース カテゴリ) (必須): たとえば、「IIS_prod」です。[Source Category (ソース カテゴリ)] メタデータ フィールドは、ソースを整理してラベル付けするための基本的な構成要素です。詳細については、「ベスト プラクティス」を参照してください。
  3. [Advanced (詳細)] セクションを設定します。
    1. Timestamp Parsing Settings (タイムスタンプ パース設定): 設定がログ ファイルのタイムゾーンと一致していることを確認します。
    2. Enable Timestamp Parsing (タイムスタンプ パースの有効化): [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 (保存)] をクリックします。

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

フィールド抽出ルール

  • Name (名前): Microsoft IIS ログ
  • Scope (範囲): 上記で設定したソース カテゴリ (「IIS_prod」など) を使用
  • Parse Expression (パース式):
parse regex "^[^#].*?(?<s_ip>\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}) (?<cs_method>\S+?)
(?<cs_uri_stem>\S+?) (?<cs_uri_query>\S+?) (?<s_port>\d+?) (?<cs_username>\S+?)
(?<c_ip>.+?) (?<cs_User_Agent>\S+?) (?<cs_Referer>\S+?) (?<sc_status>\d+?)
(?<sc_substatus>\d+?) (?<sc_win32_status>\d+?) (?<time_taken>\d+?)$"

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

2016-11-17 22:34:34 10.0.0.167 GET /favicon.ico - 80 - 12.177.21.34 Mozilla/5.0+(Macintosh;+Intel+Mac+OS+X+10_7_5)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/27.0.1453.110+Safari/537.36 404 0 2 1405 547 78
2016-11-17 22:34:34 10.0.0.98 GET /Trade/Images/VS-ConfigWeb.png - 80 - 156.74.250.7 Mozilla/5.0+(Windows+NT+6.1;+WOW64;+rv:14.0)+Gecko/20100101+Firefox/14.0.1 304 0 0 209 748 7

クエリ サンプル (IIS アプリケーション)

IIS - すべての HTTP 応答コードとその数
_sourceCategory=IIS*
| 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+?) (?<sc_status>\S+?) (?<sc_substatus>\S+?) 
(?<sc_win32_status>\S+?) (?<time_taken>\S+?)$" nodrop
| 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+?) (?<sc_bytes>\S+?) (?<cs_bytes>\S+?) 
(?<time_taken>\S+?)$" nodrop
| parse regex "(?<s_sitename>\S+?) (?<cs_computername>\S+?) 
(?<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_version>\S+?) (?<cs_User_Agent>\S+?) (?<cs_cookie>\S+?) 
(?<cs_referer>\S+?) (?<cs_host>\S+?) (?<sc_status>\S+?) (?<sc_substatus>\S+?) 
(?<sc_win32_status>\S+?) (?<sc_bytes>\S+?) (?<cs_bytes>\S+?) (?<time_taken>\S+?)$" nodrop
| count by sc_status
| sort by _count
IIS - 数別の上位の URL
_sourceCategory=IIS*
| 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+?) (?<sc_status>\S+?) (?<sc_substatus>\S+?) 
(?<sc_win32_status>\S+?) (?<time_taken>\S+?)$" nodrop
| 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+?) (?<sc_bytes>\S+?) (?<cs_bytes>\S+?) 
(?<time_taken>\S+?)$" nodrop
| parse regex "(?<s_sitename>\S+?) (?<cs_computername>\S+?) 
(?<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_version>\S+?) (?<cs_User_Agent>\S+?) (?<cs_cookie>\S+?) (?<cs_referer>\S+?) 
(?<cs_host>\S+?) (?<sc_status>\S+?) (?<sc_substatus>\S+?) (?<sc_win32_status>\S+?) 
(?<sc_bytes>\S+?) (?<cs_bytes>\S+?) (?<time_taken>\S+?)$" nodrop
| count_frequent cs_uri_stem
| limit 100
  • この記事は役に立ちましたか?