すべてのプロダクト
Search
ドキュメントセンター

Simple Log Service:データ解析プラグイン

最終更新日:Jun 04, 2026

Log Service は、デフォルトで生ログを content フィールドに格納します。構造化されたキーと値のペアを抽出してフィールドレベルのクエリ、集約、可視化を行うには、解析プラグインを使用します。解析プラグインはどのフィールドでも機能します。ターゲットフィールドを指定し、コンテンツフォーマットに一致するプラグインを選択します。

データパースの例

一般的なアプリケーションログにおける、パース前後の例を示します。

データパースプラグインを適用しない場合

パースを行わない場合、すべての情報が単一の content フィールドに格納されるため、フィールドごとのクエリや分析が困難になります。

Content: "127.0.0.1 - - [16/Aug/2024:14:37:52 +0800] "GET /wp-admin/admin-ajax.php?action=rest-nonce HTTP/1.1" 200 41 "http://www.example.com/wp-admin/post-new.php?post_type=page" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36 Edg/127.0.0.0""

正規表現パースプラグインを適用する場合

正規表現パースプラグインは、個別にクエリおよび分析できる名前付きフィールドを抽出します。

body_bytes_sent: 41
http_referer: http://www.example.com/wp-admin/post-new.php?post_type=page
http_user_agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36 Edg/127.0.0.0
remote_addr: 127.0.0.1
remote_user: -
request_method: GET
request_protocol: HTTP/1.1
request_uri: /wp-admin/admin-ajax.php?action=rest-nonce
status: 200
time_local: 16/Aug/2024:14:37:52 +0800

データ解析プラグインの選択

  • 推奨: 専用のログフォーマット解析。
    Nginx、Apache、IIS のログには、専用の解析モード (Nginx モード解析Apache モード解析IIS モード解析) を使用してください。手動でルールを設定する必要はありません。































  • 代替: 構造化データの解析 (JSON / デリミタ)
    JSON オブジェクト、または固定のデリミタ (カンマ、パイプなど) で区切られたログには、JSON 解析またはデリミタモード解析を使用してください。設定が簡単で、解析も高速です。































  • フォールバック: 正規表現解析
    他のモードでは処理できない不規則な非構造化ログには、正規表現解析を使用してください。正規表現は汎用性が高い一方で、記述とデバッグが難しく、スループットが低下する可能性があります。































手順

Logtail 構成を作成または変更するときに、解析プラグインを追加します。

既存の構成の変更

  1. Log Serviceコンソールにログインします。

  2. [プロジェクト] セクションで、管理するプロジェクトをクリックします。

  3. ログ管理 > Logstoresタブで、目的の Logstore の横にある[>]をクリックし、データのインポート > Logtail 設定を選択します。

  4. Logtail 設定 リストから、対象の設定の アクション 列で Logtail 設定の管理 をクリックします。

  5. ページの上部にある編集をクリックします。 ページの下部にある設定の処理セクションで、Logtail プラグインを追加し、保存をクリックします。

新しい構成の作成

  1. Log Serviceコンソールにログインします。

  2. コンソールの右側にあるデータのインポート カードをクリックします。

  3. データのインポート ダイアログボックスで、データソースカードをクリックしてウィザードに従います。Logtail 設定 ステップで、Logtail 設定 セクションに Logtail プラグインを追加します。

    説明

    プラグインの設定は、Logtail 構成を変更する場合と同じです。

データ解析プラグインの使用

共通パラメータ

これらのパラメータはすべてのデータ解析プラグインで共通のため、以降のセクションでは説明を繰り返しません。

パラメータ

説明

[元のフィールド]

解析対象のログ内容が格納されているソースフィールドです。デフォルト値は、生ログ全体を格納する content です。

[解析が失敗したときに元のフィールドを残す]

推奨します。解析が失敗した場合 (フォーマット不一致など) に、ソースフィールドの元のコンテンツを保持し、デバッグ用のデータを保存します。

[解析が成功したときに元のフィールドを残す]

解析が成功した後も、元のログコンテンツを保持します。通常、データ検証に使用します。

[名前を変更する元のフィールド]

[解析失敗時に元のフィールドを保持] または [解析成功時に元のフィールドを保持] が有効な場合に、名前の競合を防ぐため、保持された元のフィールドの名前を変更します。

正規表現解析

正規表現を使用してログからフィールドを抽出し、キーと値のペアに解析します。柔軟性が高く、ほぼすべてのテキストフォーマットに対応できます。

構成

  • パラメータの詳細

    共通パラメータ に加えて、このプラグインには以下のコアパラメータがあります:

    パラメータ

    説明

    [正規表現]

    ログコンテンツとの照合に使用する正規表現です。

    • ログサンプルを提供する場合、正規表現を自動生成するか、手動で入力できます。

      • ヘルプ をクリックします。ログサンプル テキストボックスで、抽出するコンテンツをハイライト表示し、正規表現の生成 をクリックします。Simple Log Serviceは、選択した内容に基づいて正規表現を生成します。

      • 手動で入力 をクリックし、正規表現を入力します。 式を入力した後、検証 をクリックして、ログコンテンツが正しく解析されることを確認します。 詳細については、「正規表現をテストする方法」をご参照ください。

    • ログサンプルを提供しない場合は、ログフォーマットに一致する正規表現を手動で入力する必要があります。

    [ログ抽出フィールド]

    抽出されたログコンテンツ (値) に対するフィールド名 (キー) を指定します。

  • 構成例

    • 入力ログ

      127.0.0.1 - - [16/Oct/2023:12:36:49 +0800] "GET /index.html HTTP/1.1" 200 612 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36"
    • プラグイン構成

      手順に従ってプラグインを設定します。正規表現は (\S+)\s-\s(\S+)\s\[([^]]+)]\s"(\w+)\s(\S+)\s([^"]+)"\s(\d+)(\s\d+)[^-]+([^"]+)"\s"([^"]+).* です。

      [元のフィールド] を content に設定し、[ログサンプル] テキストボックスに Nginx アクセスログを入力します。正規表現でログを解析すると、[抽出されたログフィールド] セクションに、remote_addr、remote_user、time_local、request_method、request_uri、request_protocol、status、body_bytes_sent、http_referer、http_user_agent などのキーと値のペアが表示されます。[解析失敗時に元のフィールドを保持] および [解析成功時に元のフィールドを保持] オプションは選択されていません。

    • 解析結果

JSON 解析

JSON オブジェクトをキーと値のペアに解析します。

制限事項

JSON プラグインは、JSON オブジェクトの最上位レベルのキーと値のペアのみを抽出します。JSON 配列を直接解析することはできません。複雑な JSON を処理するには、複雑な JSON の処理方法をご参照ください。

構成

  • パラメータ

    このプラグインは、共通パラメータのみを使用します。

  • 構成例

    • 入力ログ

      {"url": "POST /PutData?Category=YunOsAccountOpLog&AccessKeyId=U0Ujpek********&Date=Fri%2C%2028%20Jun%202013%2006%3A53%3A30%20GMT&Topic=raw&Signature=pD12XYLmGxKQ%2Bmkd6x7hAgQ7b1c%3D HTTP/1.1", "ip": "10.200.98.220", "user-agent": "aliyun-sdk-java", "request": {"status": "200", "latency": "18204"}, "time": "05/Jan/2020:13:30:28"}
    • プラグイン構成

      手順に従ってください。[プロセッサタイプ]を JSON に、[ソースフィールド]を content に設定します。[失敗時にソースフィールドを保持]と[成功時にソースフィールドを保持]のチェックボックスをオフにします。[高度なパラメーター]は無効のままにし、[OK] をクリックします。

    • 解析結果

      url: POST /PutData?Category=YunOsAccountOpLog&AccessKeyId=U0Ujpek********&Date=Fri%2C%2028%20Jun%202013%2006%3A53%3A30%20GMT&Topic=raw&Signature=pD12XYLmGxKQ%2Bmkd6x7hAgQ7b1c%3D HTTP/1.1
      ip: 10.200.98.220
      user-agent: aliyun-sdk-java
      request: {"status": "200", "latency": "18204"}
      time: 05/Jan/2020:13:30:28

デリミタモード解析

デリミタモード解析プラグインは、デリミタを使用してログの内容を構造化し、複数のキーと値のペアに解析します。

設定

  • パラメーター

    共通パラメーターに加えて、このプラグインには次のパラメーターがあります。

    パラメーター

    説明

    [デリミタ]

    ログの内容に合ったデリミタ (パイプ「|」など) を選択します。

    説明

    デリミタとして [見えない文字] を指定するには、ASCII コード表でその 16 進値を確認し、0x<16進値> の形式で入力します。たとえば、ASCII コードが 1 の印刷できない文字は、0x01 と入力します。

    [引用符]

    ログフィールドにデリミタが含まれている場合は、そのフィールドを引用符で囲む必要があります。Simple Log Service は、引用符で囲まれた内容を単一のフィールドとして解析します。ログの形式に合った引用符を選択します。

    説明

    引用符として [見えない文字] を指定するには、ASCII コード表でその 16 進値を確認し、0x<16進値> の形式で入力します。たとえば、ASCII コードが 1 の印刷できない文字は、0x01 と入力します。

    抽出されたログフィールド

    • ログサンプルを提供する場合、Simple Log Service はサンプルと指定されたデリミタに基づいてログの内容を抽出します。Simple Log Service は内容を「値」として抽出します。各値には「キー」を割り当てる必要があります。

    • ログサンプルを提供しない場合、値のリストは生成されないため、ログデータとデリミタに基づいて手動でキーを入力する必要があります。

    キーには、文字、数字、アンダースコア (_) のみを含めることができ、文字またはアンダースコア (_) で始まる必要があります。最大長は 128 バイトです。

    [一部のフィールドを許可する]

    この設定は、抽出された値の数が指定されたキーの数より少ない場合に、ログを Simple Log Service にアップロードするかどうかを指定します。ログをアップロードするには、一部のフィールドを許可する を選択します。

    たとえば、ログが 11|22|33|44 で、デリミタがパイプ (|)、キーが ABCDE の場合を考えます。

    • 一部のフィールドを許可する を選択すると、E フィールドの値は空になり、Simple Log Service はログをアップロードします。

    • 一部のフィールドを許可する を選択しない場合、ログは破棄されます。

      説明

      デリミタモード解析の 一部のフィールドを許可する パラメーターは、Logtail for Linux 1.0.28 以降および Logtail for Windows 1.0.28.0 以降でサポートされています。

    [フィールド超過の対応方法]

    抽出された値の数が指定されたキーの数を超える場合に、ログをどのように処理するかを指定します。

    • [展開]:超過した値を保持し、__column$i__ の形式で個別のフィールドに追加します。$i は 0 から始まる超過フィールドのインデックスです。例:__column0____column1__

    • [保持]:超過したすべての値を __column0__ という名前の単一のフィールドに追加します。

    • [破棄]:超過した値を破棄します。

  • 設定例

    • 例 1:単一文字デリミタ

      • 入力ログ

        05/May/2025:13:30:28,10.10.*.*,"POST /PutData?Category=YunOsAccountOpLog&AccessKeyId=****************&Date=Fri%2C%2028%20Jun%202013%2006%3A53%3A30%20GMT&Topic=raw&Signature=******************************** HTTP/1.1",200,18204,aliyun-sdk-java
      • プラグイン設定

        手順 に従います。デリミタとしてカンマ (,)、引用符として二重引用符 (") を使用します。

        説明

        [デリミタ]:ログを分割するために、タブ (\t)、パイプ (|)、スペース、カンマ (,)、セミコロン (;)、または印刷できない文字などの単一文字を使用できます。デリミタを二重引用符 (") にすることはできません。

        フィールドに二重引用符 (") が含まれる場合、ログ内で "" としてエスケープする必要があります。Simple Log Service は、フィールドを解析する際に自動的に """ に復元します。たとえば、デリミタがカンマ (,)、引用符が二重引用符 (") の場合、カンマと二重引用符の両方を含むフィールドは、そのフィールドを引用符で囲み、二重引用符を "" としてエスケープする必要があります。その結果、ログエントリ Chevy,"Venture ""Extended Edition, Very Large""","" は、ChevyVenture "Extended Edition, Very Large"、および空のフィールドの 3 つのフィールドに解析されます。

        [引用符]:ログフィールドにデリミタが含まれている場合は、そのフィールドを引用符で囲む必要があります。Simple Log Service は、囲まれた内容を単一のフィールドとして解析します。引用符として、タブ (\t)、パイプ (|)、スペース、カンマ (,)、セミコロン (;)、または印刷できない文字などの単一文字を使用できます。

        たとえば、デリミタがカンマ (,)、引用符が二重引用符 (") の場合、Simple Log Service はログ 1997,"ac,moon",3000.001997ac,moon3000.00 の 3 つのフィールドに解析します。

      • 解析結果

        ip:10.10.*.*
        request:POST /PutData?Category=YunOsAccountOpLog&AccessKeyId=****************&Date=Fri%2C%2028%20Jun%202013%2006%3A53%3A30%20GMT&Topic=raw&Signature=******************************** HTTP/1.1
        size:18204
        status:200
        time:05/May/2025:13:30:28
        user_agent:aliyun-sdk-java
    • 例 2:複数文字デリミタ

      • 入力ログ

        05/May/2022:13:30:28&&10.200.**.**&&POST /PutData?Category=YunOsAccountOpLog&AccessKeyId=****************&Date=Fri%2C%2028%20Jun%202013%2006%3A53%3A30%20GMT&Topic=raw&Signature=******************************** HTTP/1.1&&200&&18204&&aliyun-sdk-java
      • プラグイン設定

        手順 に従います。デリミタとして && を使用し、デフォルトの引用符である二重引用符 (") を保持します。

        重要

        複数文字モードでは、デリミタには ||&&&^_^ などの 2 文字または 3 文字を含めることができます。Logtail はデリミタのマッチングに基づいてログを解析するため、フィールドを引用符で囲む必要はありません。フィールドの内容に、デリミタと完全に一致する文字列が含まれていないことを確認してください。そうしないと、Logtail がフィールドを誤って分割する可能性があります。

      • 解析結果

        ip:10.200.**.**
        request:POST /PutData?Category=YunOsAccountOpLog&AccessKeyId=****************&Date=Fri%2C%2028%20Jun%202013%2006%3A53%3A30%20GMT&Topic=raw&Signature=******************************** HTTP/1.1
        size:18204
        status:200
        time:05/May/2022:13:30:28
        user_agent:aliyun-sdk-java

Nginx モード解析

Nginx モードプラグインは、log_format の定義に基づいて、ログをキーと値のペアに解析します。

Nginx ログ

Nginx サーバーは、access_log および log_format ディレクティブに基づいてアクセスログを生成します。これらのディレクティブは、デフォルトでは次のようになります:

log_format main  '$remote_addr - $remote_user [$time_local] "$request" '
                 '$request_time $request_length '
                 '$status $body_bytes_sent "$http_referer" '
                 '"$http_user_agent"';
access_log /var/logs/nginx/access.log main

ログには次のフィールドが含まれています:

フィールド名

説明

remote_addr

クライアント IP アドレス。

remote_user

クライアントのユーザー名。

time_local

サーバー時間。角括弧 ([]) で囲む必要があります。

request

完全な元のリクエスト行。

request_time

リクエストの処理にかかる合計時間 (秒単位)。

request_length

リクエスト行、リクエストヘッダー、リクエストボディを含むリクエスト長。

status

ステータスコード。

body_bytes_sent

レスポンスヘッダーのサイズを除き、クライアントに送信されたバイト数。

http_referer

リファラー。

http_user_agent

ブラウザの種類やバージョンなど、クライアントに関する情報。

設定

  • パラメーター

    共通パラメーターに加えて、このプラグインには次のパラメーターがあります:

    パラメーター

    説明

    [NGINX ログの設定]

    Nginx 設定ファイルの log_format 定義です。

    log_format main  '$remote_addr - $remote_user [$time_local] "$request" '
                     '$request_time $request_length '
                     '$status $body_bytes_sent "$http_referer" '
                     '"$http_user_agent"';

    [ログ抽出フィールド]

    プラグインは、[NGINX ログの設定] に基づいてログフィールド (キー) を自動的に抽出します。

  • 設定例

    • 入力ログ

      192.168.*.* - - [15/Apr/2025:16:40:00 +0800] "GET /nginx-logo.png HTTP/1.1" 0.000 514 200 368 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.*.* Safari/537.36"
    • プラグイン設定

      手順に従ってください。本番環境では、log_format を Nginx 設定ファイル (通常は /etc/nginx/nginx.conf) の定義と一致させる必要があります。

      log_format main '$remote_addr - $remote_user [$time_local] "$request" '
                          '$request_time $request_length $status $body_bytes_sent '
                          '"$http_referer" "$http_user_agent"';
    • 解析結果

      body_bytes_sent: 368
      http_referer: -
      http_user_agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.*.* Safari/537.36
      remote_addr: 192.168.*.*
      remote_user: -
      request: "GET /nginx-logo.png HTTP/1.1"
      request_length: 514
      request_time: 0.000
      status: 200
      time_local: 15/Apr/2025:16:40:00 +0800

Apache パターン解析

Apache パターン解析プラグインは、Apache ログ設定ファイルの定義に基づいて、ログコンテンツをキーと値のペアに構造化します。

Apache ログ

Apache サーバーは、ログ設定ファイルで指定されたログフォーマット、パス、および名前に基づいてログを生成します。たとえば、ディレクティブ CustomLog "/var/log/apache2/access_log" combined は、combined フォーマットのログを /var/log/apache2/access_log に書き込みます。

  • Apache ログフォーマット

    • combined フォーマット

      LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
    • common フォーマット

      LogFormat "%h %l %u %t \"%r\" %>s %b" common
    • カスタムフォーマット

      LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %D %f %k %p %q %R %T %I %O" customized

    次の表にフィールドの説明を示します。完全なリファレンスについては、mod_log_config をご参照ください。

    フォーマット

    パラメーター

    説明

    %a

    client_addr

    クライアント IP アドレス。

    %A

    local_addr

    ローカル IP アドレス。

    %b

    response_size_bytes

    レスポンスサイズ (バイト単位)。null 値の場合はハイフン (-) がログに記録されます。

    %B

    response_bytes

    レスポンスサイズ (バイト単位)。null 値の場合は 0 がログに記録されます。

    %D

    request_time_msec

    リクエストの処理にかかった時間 (マイクロ秒単位)。

    %f

    filename

    ファイル名。

    %h

    remote_addr

    リモートホスト名。

    %H

    request_protocol_supple

    リクエストプロトコル。

    %I

    bytes_received

    サーバーが受信したバイト数。mod_logio モジュールが必要です。

    %k

    keep_alive

    この接続で処理されたリクエストの数。

    %l

    remote_ident

    identd からのリモートログ名 (提供されている場合)。

    %m

    request_method_supple

    リクエストメソッド。

    %O

    bytes_sent

    サーバーが送信したバイト数。mod_logio モジュールが必要です。

    %p

    server_port

    サーバーのポート番号。

    %P

    child_process

    子プロセス ID。

    %q

    request_query

    クエリ文字列。存在しない場合は空の文字列がログに記録されます。

    %r

    request

    メソッド、URI、HTTP プロトコルを含むリクエスト行。

    %R

    response_handler

    サーバー上のハンドラーのタイプ。

    %s

    status

    レスポンスの最初の HTTP ステータス。

    %>s

    status

    レスポンスの最終的な HTTP ステータス。

    %t

    time_local

    サーバー時間。

    %T

    request_time_sec

    リクエストの処理にかかった時間 (秒単位)。

    %u

    remote_user

    リクエストが認証された場合のリモートユーザー。

    %U

    request_uri_supple

    クエリ文字列を含まない、リクエストされた URI パス。

    %v

    server_name

    サーバー名。

    %V

    server_name_canonical

    UseCanonicalName ディレクティブによって決定されるサーバー名。

    %{User-Agent}i

    http_user_agent

    User-Agent HTTP リクエストヘッダー。

    %{Referer}i

    http_referer

    リクエストの発信元ページの URL。

設定

  • パラメーター

    共通パラメーター に加えて、このプラグインには次のパラメーターがあります:

    パラメーター

    説明

    [ログ形式]

    Apache ログ設定ファイルで定義されているログフォーマットを選択します。オプションには、commoncombinedcustom があります。

    [APACHE 設定フィールド]

    Apache 設定ファイルの LogFormat ディレクティブです。

    • ログ形式[common] または [combined] に設定すると、対応する設定フィールドが自動的に入力されます。フォーマットが Apache 設定ファイルで定義されているものと一致していることを確認してください。

    • ログ形式カスタム に設定した場合は、実際のフォーマット文字列を入力します。例:LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %D %f %k %p %q %R %T %I %O" customized

    [ログ抽出フィールド]

    APACHE 設定フィールド の内容に基づいて自動的に抽出されたログフィールド (キー)。

  • 設定例

    • 入力ログ

      192.168.1.10 - - [08/May/2024:15:30:28 +0800] "GET /index.html HTTP/1.1" 200 1234 "https://www.example.com/referrer" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.X.X Safari/537.36"
    • プラグイン設定

      手順 に従います。[ログフォーマット]combined に設定します。

    • 解析結果

      http_referer:https://www.example.com/referrer
      http_user_agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.X.X Safari/537.36
      remote_addr:192.168.1.10
      remote_ident:-
      remote_user:-
      request_method:GET
      request_protocol:HTTP/1.1
      request_uri:/index.html
      response_size_bytes:1234
      status:200
      time_local:[08/May/2024:15:30:28 +0800]

IIS モード解析

IIS モードプラグインは、IIS のログ形式定義に基づいてログ内容を複数のキーと値のペアに解析します。

IIS ログ

Windows Server は、選択したログ形式 (IIS、NCSA、W3C) に基づいて IIS ログを生成します。

  • ログ形式

    #Fields: date time s-sitename s-ip cs-method cs-uri-stem cs-uri-query s-port cs-username c-ip cs(User-Agent) sc-status sc-substatus sc-win32-status sc-bytes cs-bytes time-taken
    • フィールドプレフィックスの説明

      プレフィックス

      説明

      s-

      サーバーのアクション。

      c-

      クライアントのアクション。

      cs-

      クライアントからサーバーへのアクション。

      sc-

      サーバーからクライアントへのアクション。

    • フィールドの説明

      フィールド

      説明

      date

      リクエストの日付。

      time

      リクエストの時刻。

      s-sitename

      クライアントがアクセスしたサイトのインターネットサービス名とインスタンス番号。

      s-computername

      ログエントリを生成したサーバー名。

      s-ip

      ログエントリを生成したサーバーの IP アドレス。

      cs-method

      GET や POST などのリクエストメソッド。

      cs-uri-stem

      クライアントがリクエストした URI リソース。

      cs-uri-query

      URI クエリ:リクエスト内の疑問符 (?) に続く情報。

      s-port

      サーバーポート。

      cs-username

      認証されたドメインまたはユーザー名。

      • 認証ユーザーの場合、形式は Domain\Username です。

      • 匿名ユーザーの場合、ハイフン (-) が表示されます。

      c-ip

      サーバーにアクセスしたクライアントの IP アドレス。

      cs-version

      HTTP/1.0 や HTTP/1.1 などのプロトコルバージョン。

      cs(User-Agent)

      クライアントが使用したブラウザ。

      Cookie

      送受信された Cookie の内容です。 Cookie が存在しない場合は、ハイフン (-) が表示されます。

      Referer

      ユーザーが参照元としてアクセスしたサイト。

      cs-host

      ホストヘッダー情報。

      sc-status

      HTTP ステータスコード。

      sc-substatus

      HTTP サブステータスコード。

      sc-win32-status

      Windows 固有の運用ステータスコード。

      sc-bytes

      サーバーが送信したバイト数。

      cs-bytes

      サーバーが受信したバイト数。

      time-taken

      リクエストの処理に要した時間 (ミリ秒)。

設定

  • パラメーターの説明

    共通パラメーター に加えて、このプラグインには次のパラメーターがあります:

    パラメーター

    説明

    [ログ形式]

    IIS サーバーで使用されるログ形式です。 IIS、NCSA、W3C 形式がサポートされています。

    [IIS 設定フィールド]

    • ログ形式が IIS または NCSA の場合、 Log Service は IIS 構成フィールドをデフォルトで設定します。

    • ログ形式が W3C の場合、このパラメーターを IIS 設定ファイル内の logExtFileFlags パラメーターの内容に設定してください。例:

      logExtFileFlags="Date, Time, ClientIP, UserName, SiteName, ComputerName, ServerIP, Method, UriStem, UriQuery, HttpStatus, Win32Status, BytesSent, BytesRecv, TimeTaken, ServerPort, UserAgent, Cookie, Referer, ProtocolVersion, Host, HttpSubStatus"
      • IIS 5 のデフォルト設定ファイルパス:C:\WINNT\system32\inetsrv\MetaBase.bin

      • IIS 6 のデフォルト設定ファイルパス:C:\WINDOWS\system32\inetsrv\MetaBase.xml

      • IIS 7 のデフォルト設定ファイルパス:C:\Windows\System32\inetsrv\config\applicationHost.config

    [ログ抽出フィールド]

    Log Service は、[IIS 設定フィールド] パラメーターの内容に基づいて、抽出されたログフィールド (キー) を自動的に生成します。

  • 設定例

    • 入力ログ

      #Fields: date time s-sitename s-ip cs-method cs-uri-stem cs-uri-query s-port cs-username c-ip cs(User-Agent) sc-status sc-substatus sc-win32-status sc-bytes cs-bytes time-taken
      2023-10-27 08:00:00 W3SVC1 192.168.1.1 GET /index.html - 80 - 10.0.0.5 Mozilla/5.0 200 0 0 500 100 150
    • プラグイン設定

      手順 に従ってください。ログ形式W3C に設定してください。

    • 解析結果

      date: 2023-10-27
      time: 08:00:00
      s-sitename: W3SVC1
      s-ip: 192.168.1.1
      cs-method: GET
      cs-uri-stem: /index.html
      cs-uri-query: -
      s-port: 80
      cs-username: -
      c-ip: 10.0.0.5
      cs(User-Agent): Mozilla/5.0
      sc-status: 200
      sc-substatus: 0
      sc-win32-status: 0
      sc-bytes: 500
      cs-bytes: 100
      time-taken: 150

よくある質問

Log Service で正規表現が失敗する場合

次のよくある原因を確認してください:

  1. ログサンプルの不一致:Logtail 構成で使用するログサンプルが、収集したログのフォーマット (スペースや特殊文字を含む) と完全に一致していることを確認してください。

  2. ログフォーマットの混在:ログソースに複数のフォーマットが含まれる場合、1 つの正規表現ではすべてに一致しないことがあります。解析に失敗した場合に生ログを保持するには、[未一致コンテンツの保持] を有効にしてください。また、複数の Logtail 構成を使用して、フォーマットごとに個別に処理することもできます。

  3. コードとコンソールでのエスケープの違い:コードからコピーした正規表現には、\\S+ のような余分なエスケープ文字が含まれる場合があります。Log Service コンソールでは、\S+ のようにバックスラッシュを 1 つだけ使用してください。

特定ファイルのログのクエリ

Log Service は、ソースファイルのフルパスを含むメタデータフィールド __tag__:__path__ を各ログエントリに自動で追加します。このフィールドを使用して、/var/log/app/error.log などの特定ファイルのログをフィルタリングします:* AND __tag__:__path__: /var/log/app/error.log

インデックス変更後に履歴データをクエリできない場合

インデックスの変更は、新しく取り込まれたデータにのみ適用されます。新しいインデックス設定で既存の履歴データをクエリするには、[再インデックス] タスクを実行してください。

ネストされた JSON オブジェクトの処理

JSON 解析プラグインは、デフォルトではネストされた JSON オブジェクトをフラット化しません。ネストされた構造は、単一の JSON 文字列値として保持されます。

解決策:

Log Service は、ネストされた JSON オブジェクトを展開 (フラット化) するための JSON フィールド展開プラグイン を提供しています。

仕組み:展開の深さを指定すると、プラグインはネストされた JSON オブジェクトを走査し、親キーをプレフィックスとして連結してフラットなキーと値のペアを生成します。元のログの他のフィールドは保持されます。

比較例:

説明
  • この操作により、ログエントリの数が増加します。 N 個の要素を持つ配列を含む単一のログは、N 個のログエントリになります。 ログストレージとインデックス作成のコストを計画する際は、この点を考慮してください。

  • 展開の深さ:JSON オブジェクトを展開するレベルです。値が 0 (デフォルト) の場合はオブジェクト全体を完全に展開し、1 の場合は現在のレベルのみを展開します。以降も同様です。

生ログ

展開の深さ:0 (プレフィックス追加)

展開の深さ:1 (プレフィックス追加)

{"s_key":{"k1":{"k2":{"k3":{"k4":{"k51":"51","k52":"52"},"k41":"41"}}}}}
0_s_key_k1_k2_k3_k41:41
0_s_key_k1_k2_k3_k4_k51:51
0_s_key_k1_k2_k3_k4_k52:52
1_s_key:{"k1":{"k2":{"k3":{"k4":{"k51":"51","k52":"52"},"k41":"41"}}}}

テキストと埋め込み JSON を含むログの解析

複数の処理プラグインを連結し、前の出力を次の入力として使用します。

ユースケース:

アプリケーションログが、タイムスタンプ、ログレベル、埋め込み JSON メッセージを含む次のフォーマットであると仮定します。

2025-11-12 10:30:15 INFO Request details: {"trace_id": "xyz-123", "user_id": 500, "action": "login"}

解析方針: 次の 2 つのプラグインを順序どおりに追加します。2 つ目のプラグインには、正しいソースフィールドを指定してください。この連結方法は、任意の混在フォーマットのログに有効です。

  1. 正規表現解析プラグインを使用して先頭のテキストフィールドを抽出し、埋め込み JSON 文字列を別フィールドに取り込みます。結果は次のとおりです:

    {
         "log_time": "2025-11-12 10:30:15",
         "log_level": "INFO",
         "json_message": "{\"trace_id\": \"xyz-123\", \"user_id\": 500, \"action\": \"login\"}"
    }
  2. JSON 解析プラグインを追加し、ソースフィールドに json_message を設定して JSON 内容をキーと値のペアに解析します。結果は次のとおりです:

    {
         "log_time": "2025-11-12 10:30:15",
         "log_level": "INFO",
         "trace_id": "xyz-123",
         "user_id": 500,
         "action": "login"
    }

関連ドキュメント