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

Simple Log Service:フィールド処理プラグイン

最終更新日:Jun 13, 2026

フィールド処理プラグインは、フィールドの追加、削除、変更、パッキング、展開、および抽出を行います。

フィールド処理の例

この表では、SLS に保存されている生ログのデータ構造について説明し、アンカーモードでフィールド抽出プラグインを使用する場合と使用しない場合を比較します。フィールド抽出プラグインを使用すると、データが構造化され、後続のクエリが簡素化されます。

生ログ

プラグイン未使用時

アンカーモード

"time:2022.09.12 20:55:36\t json:{\"key1\" : \"xx\", \"key2\": false, \"key3\":123.456, \"key4\" : { \"inner1\" : 1, \"inner2\" : false}}"

Content: "time:2022.09.12 20:55:36\t json:{\"key1\" : \"xx\", \"key2\": false, \"key3\":123.456, \"key4\" : { \"inner1\" : 1, \"inner2\" : false}}"

アンカーモードを使用してフィールド値を抽出し、フィールド名を timeval_key1val_key2val_key3value_key4_inner1、およびvalue_key4_inner2 に設定します。

"time" : "2022.09.12 20:55:36"
"val_key1" : "xx"
"val_key2" : "false"
"val_key3" : "123.456"
"value_key4_inner1" : "1"
"value_key4_inner2" : "false"

フィールド処理プラグイン

SLS では、以下のタイプのフィールド処理プラグインを提供しています。ニーズに合ったものを選択してください。

プラグイン名

タイプ

説明

フィールド抽出

拡張

以下のモードをサポートしています。

  • 正規表現モード: 正規表現マッチングを使用してフィールドを抽出します。

  • アンカーモード: 位置またはマーカーに基づいてフィールドを抽出します。

  • CSV モード: CSV 形式でフィールドを抽出します。

  • 単一文字デリミタモード: 単一文字デリミタを使用してフィールドを抽出します。

  • 複数文字デリミタモード: 複数文字デリミタを使用してフィールドを抽出します。

  • キーと値のペアモード: キーと値のペア形式からフィールドを抽出します。

  • Grok モード: Grok 構文を使用して構造化フィールドを抽出します。

フィールド追加

拡張

ログに新しいフィールドを追加します。

フィールド削除

拡張

指定されたフィールドを削除します。

フィールド名変更

拡張

フィールドの名前を変更します。

フィールドパッキング

拡張

複数のフィールドを 1 つの JSON オブジェクトにパックします。

JSON フィールド展開

拡張

JSON 文字列フィールドを個別のフィールドに展開します。

フィールド値マッピング

拡張

マッピングテーブルに基づいてフィールド値を置き換えまたは変換します。

文字列置き換え

拡張

テキストログに対して全文置き換え、正規表現ベースの置き換え、またはエスケープ文字の削除を実行します。

エントリポイント

ログ処理に Logtail プラグインを使用するには、Logtail 構成を作成または変更する際にプラグインを追加します。詳細については、「概要」をご参照ください。

制限事項

  • テキストログおよびコンテナ標準出力はフォームベースの構成のみをサポートし、他のすべての入力ソースは JSON ベースの構成のみをサポートします。

  • 正規表現モードでフィールドを抽出する場合、以下の制限事項が適用されます。

    PCRE エンジンと比較して、RE2 をベースとした Go の正規表現エンジンには以下の制限があります。

    • 名前付きグループ構文の違い

      Go では PCRE 構文 (?<name>...) の代わりに (?P<name>...) 構文を使用します。

    • サポートされていない正規表現パターン

      • アサーション: (?=...)(?!...)(?<=...)、および (?<!...)

      • 条件式: (?(condition)true|false)

      • 再帰マッチング: (?R) および (?0)

      • サブルーチン参照: (?&name) および (?P>name)

      • アトミックグループ: (?>...)

    Regex101 などのツールで正規表現をデバッグする際は、上記のサポートされていないパターンを避けてください。これらのパターンを使用したログはプラグインで処理できません。

フィールド抽出プラグイン

正規表現モード、アンカーモード、CSV モード、単一文字デリミタモード、複数文字デリミタモード、キーと値のペアモード、または Grok モードを使用してログフィールドを抽出します。

正規表現モード

正規表現を使用してフィールドを抽出します。

フォーム

  • パラメーター

    プロセッサタイプフィールド抽出 (正規表現モード) に設定します。以下の表にパラメーターを示します。

    パラメーター

    説明

    元のフィールド

    ソースフィールドの名前。

    正規表現

    正規表現。抽出するフィールドを指定するには、括弧 () を使用する必要があります。

    結果フィールド

    抽出されたコンテンツに割り当てる名前。複数のフィールド名を追加できます。

    元のフィールド欠落のエラー報告

    生ログに指定されたソースフィールドが見つからない場合にエラーを報告するには、このオプションを選択します。

    正規表現の不一致エラー報告

    ソースフィールドの値が正規表現と一致しない場合にエラーを報告するには、このオプションを選択します。

    元のフィールドの保持

    解析済みログにソースフィールドを保持するには、このオプションを選択します。

    解析が失敗した場合、元のフィールドは保持されます

    解析に失敗した場合でも解析済みログにソースフィールドを保持するには、このオプションを選択します。

    正規表現の完全一致

    結果フィールド で定義したすべてのフィールドに対して正規表現が一致した場合にのみ値を抽出するには、このオプションを選択します。

  • 構成例

    正規表現モードを使用して content フィールドの値を抽出し、フィールド名を iptimemethodurlrequest_timerequest_lengthstatuslengthref_url、および browser に設定します。構成例は以下のとおりです。

    • 生ログ

      "content" : "10.200.**.** - - [10/Aug/2022:14:57:51 +0800] \"POST /PutData?
      Category=YunOsAccountOpLog&AccessKeyId=<yourAccessKeyId>&Date=Fri%2C%2028%20Jun%202013%2006%3A53%3A30%20GMT&Topic=raw&Signature=<yourSignature> HTTP/1.1\" 0.024 18204 200 37 \"-\" \"aliyun-sdk-java"
    • Logtail プラグイン構成: ソースフィールドcontent に設定し、正規表現を構成し、結果フィールド 名を iptimemethodurlrequest_timerequest_lengthstatuslengthref_url、および browser に設定します。ソースフィールドが見つからない場合にエラーを報告 および 正規表現が一致しない場合にエラーを報告 オプションを選択します。

    • 結果

      "ip" : "10.200.**.**"
      "time" : "10/Aug/2022:14:57:51"
      "method" : "POST"
      "url" : "/PutData?Category=YunOsAccountOpLog&AccessKeyId=<yourAccessKeyId>&Date=Fri%2C%2028%20Jun%202013%2006%3A53%3A30%20GMT&Topic=raw&Signature=<yourSignature>"
      "request_time" : "0.024"
      "request_length" : "18204"
      "status" : "200"
      "length" : "27"
      "ref_url" : "-"
      "browser" : "aliyun-sdk-java"

JSON

  • パラメーター

    typeprocessor_regex に設定します。以下の表に detail オブジェクトのパラメーターを示します。

    パラメーター

    タイプ

    必須

    説明

    SourceKey

    String

    はい

    ソースフィールドの名前。

    Regex

    String

    はい

    正規表現。抽出するフィールドを指定するには、括弧 () を使用する必要があります。

    Keys

    文字列の配列

    はい

    抽出されたコンテンツに割り当てる名前。例: ["ip", "time", "method"]。

    NoKeyError

    Boolean

    いいえ

    生ログにソースフィールドが見つからない場合にエラーを報告するかどうかを指定します。

    • true: エラーを報告します。

    • false (デフォルト): エラーを報告しません。

    NoMatchError

    Boolean

    いいえ

    ソースフィールドの値が正規表現と一致しない場合にエラーを報告するかどうかを指定します。

    • true (デフォルト): エラーを報告します。

    • false: エラーを報告しません。

    KeepSource

    Boolean

    いいえ

    解析済みログにソースフィールドを保持するかどうかを指定します。

    • true: ソースフィールドを保持します。

    • false (デフォルト): ソースフィールドを保持しません。

    FullMatch

    Boolean

    いいえ

    抽出時に完全一致を必要とするかどうかを指定します。

    • true (デフォルト値): Regex パラメーターの正規表現が、ソースフィールド値内の Keys パラメーターで指定されたすべてのフィールドと一致した場合にのみ、フィールド値が抽出されます。

    • false: 部分一致が見つかった場合でもフィールド値が抽出されます。

    KeepSourceIfParseError

    Boolean

    いいえ

    解析に失敗した場合に解析済みログにソースフィールドを保持するかどうかを指定します。

    • true (デフォルト): ソースフィールドを保持します。

    • false: ソースフィールドを保持しません。

  • 構成例

    この例では、正規表現モードを使用して content フィールドから値を抽出し、iptimemethodurlrequest_timerequest_lengthstatuslengthref_url、および browser 結果フィールドに割り当てます。

    • 生ログ

      "content" : "10.200.**.** - - [10/Aug/2022:14:57:51 +0800] \"POST /PutData?
      Category=YunOsAccountOpLog&AccessKeyId=<yourAccessKeyId>&Date=Fri%2C%2028%20Jun%202013%2006%3A53%3A30%20GMT&Topic=raw&Signature=<yourSignature> HTTP/1.1\" 0.024 18204 200 37 \"-\" \"aliyun-sdk-java"
    • Logtail プラグイン構成

      {
          "type" : "processor_regex",
          "detail" : {"SourceKey" : "content",
               "Regex" : "([\\d\\.]+) \\S+ \\S+ \\[(\\S+) \\S+\\] \"(\\w+) ([^\\\"]*)\" ([\\d\\.]+) (\\d+) (\\d+) (\\d+|-) \"([^\\\"]*)\" \"([^\\\"]*)\" (\\d+)",
               "Keys"   : ["ip", "time", "method", "url", "request_time", "request_length", "status", "length", "ref_url", "browser"],
               "NoKeyError" : true,
               "NoMatchError" : true,
               "KeepSource" : false
          }
      }
    • 結果

      "ip" : "10.200.**.**"
      "time" : "10/Aug/2022:14:57:51"
      "method" : "POST"
      "url" : "/PutData?Category=YunOsAccountOpLog&AccessKeyId=<yourAccessKeyId>&Date=Fri%2C%2028%20Jun%202013%2006%3A53%3A30%20GMT&Topic=raw&Signature=<yourSignature>"
      "request_time" : "0.024"
      "request_length" : "18204"
      "status" : "200"
      "length" : "27"
      "ref_url" : "-"
      "browser" : "aliyun-sdk-java"

アンカーモード

開始キーワードと終了キーワードを指定してフィールドを抽出します。フィールドが JSON 形式の場合、JSON 展開も実行できます。

コンソール

  • パラメーター

    プロセッサタイプフィールド抽出 (校正モード) に設定します。以下の表にパラメーターを示します。

    パラメーター

    説明

    元のフィールド

    元のフィールドの名前。

    校正項目リスト

    フィールド抽出のためのアンカー設定リスト。

    開始キーワード

    抽出するテキストの開始を示すキーワード。空の場合は、元のフィールド値の先頭から抽出を開始します。

    終了キーワード

    抽出するテキストの終了を示すキーワード。空の場合は、元のフィールド値の末尾まで抽出を続けます。

    結果フィールド

    抽出されたコンテンツを格納するフィールドの名前。

    フィールドのタイプ

    フィールドのデータ型。有効な値は string および json です。

    JSON 拡張

    JSON 展開を実行するかどうかを指定します。

    JSON 拡張連結文字

    JSON 展開中にキーを結合するために使用する文字。デフォルトはアンダースコア (_) です。

    JSON 最大拡張度

    JSON 展開の最大再帰深さ。デフォルト値は 0 で、制限なしを示します。

    元のフィールド欠落のエラー報告

    有効にすると、生ログに指定された元のフィールドが見つからない場合にエラーを報告します。

    校正項目欠落のエラー報告

    有効にすると、生ログに一致するアンカーが見つからない場合にエラーを報告します。

    元のフィールドの保持

    有効にすると、解析済みログに元のフィールドを保持します。

  • 構成例

    この例では、アンカーモードを使用して content フィールドから値を抽出し、結果フィールドとして timeval_key1val_key2val_key3value_key4_inner1、および value_key4_inner2 を作成します。

    • 生ログ

      "content" : "time:2022.09.12 20:55:36\t json:{\"key1\" : \"xx\", \"key2\": false, \"key3\":123.456, \"key4\" : { \"inner1\" : 1, \"inner2\" : false}}"
    • Logtail プラグイン構成: 2 つのルールを構成します。最初のルールでは、ソースフィールド名time開始デリミタ\t送信先フィールド名time送信先タイプstring に設定します。2 番目のルールでは、ソースフィールド名json送信先フィールド名val送信先タイプjson に設定し、JSON 展開 を有効にします。

    • 結果

      "time" : "2022.09.12 20:55:36"
      "val_key1" : "xx"
      "val_key2" : "false"
      "val_key3" : "123.456"
      "value_key4_inner1" : "1"
      "value_key4_inner2" : "false"

JSON

  • パラメーター

    typeprocessor_anchor に設定します。detail パラメーターを以下の表に示します。

    パラメーター

    タイプ

    必須

    説明

    SourceKey

    String

    はい

    元のフィールドの名前。

    Anchors

    Anchor オブジェクトの配列

    はい

    アンカー設定のリスト。

    Start

    String

    はい

    開始キーワード。空の場合は、文字列の先頭からマッチングを開始します。

    Stop

    String

    はい

    終了キーワード。空の場合は、文字列の末尾までマッチングを拡張します。

    FieldName

    String

    はい

    抽出されたコンテンツのフィールド名。

    FieldType

    String

    はい

    フィールドのデータ型。有効な値は string および json です。

    ExpandJson

    Boolean

    いいえ

    JSON 展開を実行するかどうかを指定します。

    • true: JSON 展開を実行します。

    • false (デフォルト): JSON 展開を実行しません。

    FieldTypejson の場合にのみ有効です。

    ExpandConnector

    String

    いいえ

    JSON 展開中にキーを結合するために使用する文字。デフォルトはアンダースコア (_) です。

    MaxExpandDepth

    Int

    いいえ

    JSON 展開の最大深さ。デフォルト値は 0 で、制限なしを示します。

    NoAnchorError

    Boolean

    いいえ

    一致するアンカーが見つからない場合にエラーを報告するかどうかを指定します。

    • true: エラーを報告します。

    • false (デフォルト): エラーを報告しません。

    NoKeyError

    Boolean

    いいえ

    生ログに指定された元のフィールドが見つからない場合にエラーを報告するかどうかを指定します。

    • true: エラーを報告します。

    • false (デフォルト): エラーを報告しません。

    KeepSource

    Boolean

    いいえ

    解析後に元のフィールドを保持するかどうかを指定します。

    • true: 元のフィールドを保持します。

    • false (デフォルト): 元のフィールドを破棄します。

  • 構成例

    アンカーモードを使用して content フィールドの値を抽出し、フィールド名を timeval_key1val_key2val_key3value_key4_inner1、および value_key4_inner2 に設定します。以下に構成例を示します。

    • 生ログ

      "content" : "time:2022.09.12 20:55:36\t json:{\"key1\" : \"xx\", \"key2\": false, \"key3\":123.456, \"key4\" : { \"inner1\" : 1, \"inner2\" : false}}"
    • Logtail プラグイン構成

      {
         "type" : "processor_anchor",
         "detail" : {"SourceKey" : "content",
            "Anchors" : [
                {
                    "Start" : "time:",
                    "Stop" : "\t",
                    "FieldName" : "time",
                    "FieldType" : "string",
                    "ExpandJson" : false
                },
                {
                    "Start" : "json:",
                    "Stop" : "",
                    "FieldName" : "val",
                    "FieldType" : "json",
                    "ExpandJson" : true 
                }
            ]
        }
      }
    • 結果

      "time" : "2022.09.12 20:55:36"
      "val_key1" : "xx"
      "val_key2" : "false"
      "val_key3" : "123.456"
      "value_key4_inner1" : "1"
      "value_key4_inner2" : "false"

CSV モード

CSV モードを使用して CSV 形式のログを解析します。

フォーム

  • パラメーター

    プロセッサタイプフィールド抽出 (CSV モード) に設定します。以下の表にパラメーターを示します。

    パラメーター

    説明

    元のフィールド

    ソースフィールドの名前。

    結果フィールド

    抽出された値のフィールド名を 1 つ以上指定します。

    重要

    結果フィールド のフィールド数よりも分割されるフィールド数が少ない場合、結果フィールド の余分なフィールドは無視されます。

    区切りモード

    値を区切るために使用されるデリミタ。デフォルトはカンマ (,) です。

    超過部分の保持

    このオプションを選択し、分割されるフィールド数が 結果フィールド のフィールド数よりも多い場合、システムは余分な部分を保持します。

    超過部分の解析

    このオプションを選択して余分なコンテンツを解析します。超過部分のフィールドプレフィックス を使用して、余分なフィールドの名前プレフィックスを指定します。

    超過部分の保持 を選択しても 超過部分の解析 を選択しない場合、余分なコンテンツは _decode_preserve_ フィールドに保存されます。

    説明

    余分なコンテンツが CSV 形式に準拠していない場合は、ストレージ前に正規化する必要があります。

    超過部分のフィールドプレフィックス

    余分なフィールドの名前プレフィックス。たとえば、このパラメーターを expand_ に設定すると、フィールド名は expand_1、expand_2 などになります。

    フィールドの前のスペースを無視する

    このオプションを選択して、フィールド値の先頭にあるスペースをトリミングします。

    元のフィールドの保持

    このオプションを選択して、解析済みログにソースフィールドを保持します。

    元のフィールド欠落のエラー報告

    ソースフィールドが見つからない場合にエラーを報告するには、このオプションを選択します。

  • 構成例

    以下の例では、csv フィールドから値を抽出する方法を示します。

    • 生ログ

      {
          "csv": "2022-06-09,192.0.2.0,\"{\"\"key1\"\":\"\"value\"\",\"\"key2\"\":{\"\"key3\"\":\"\"string\"\"}}\"",
          ......
      }
    • Logtail プラグイン構成: ソースフィールドcsvデリミタ をカンマ (,)、結果フィールドdateip、および content に設定します。

    • 結果

      {
          "date": "2022-06-09",
          "ip": "192.0.2.0",
          "content": "{\"key1\":\"value\",\"key2\":{\"key3\":\"string\"}}"
          ......
      
      }

JSON

  • パラメーター

    typeprocessor_csv に設定します。detail を以下の表に示します。

    パラメーター

    タイプ

    必須

    説明

    SourceKey

    String

    はい

    ソースフィールドの名前。

    SplitKeys

    文字列の配列

    はい

    結果フィールドの名前。例: ["date", "ip", "content"]。

    重要

    分割されるフィールド数が SplitKeys パラメーターのフィールド数よりも少ない場合、SplitKeys パラメーターの余分なフィールドは無視されます。

    PreserveOthers

    Boolean

    いいえ

    SplitKeys で指定されたフィールド数よりも多くの値がソースフィールドに含まれている場合に、余分な部分を保持するかどうかを指定します。

    • true: 余分な部分を保持します。

    • false (デフォルト): 余分な部分を保持しません。

    ExpandOthers

    Boolean

    いいえ

    余分な部分を解析するかどうかを指定します。

    • true: 余分な部分を解析します。

      ExpandOthers パラメーターを使用して余分な部分を解析し、その後 ExpandKeyPrefix パラメーターを使用して余分な部分のフィールドの名前付けプレフィックスを指定できます。

    • false (デフォルト): 余分な部分を解析しません。

      PreserveOthers を true に設定し、ExpandOthers を false に設定した場合、余分なコンテンツは _decode_preserve_ フィールドに保存されます。

      説明

      余分なコンテンツが CSV 形式に準拠していない場合は、ストレージ前に正規化する必要があります。

    ExpandKeyPrefix

    String

    いいえ

    余分なフィールドの名前プレフィックス。たとえば、このパラメーターを expand_ に設定すると、フィールド名は expand_1、expand_2 などになります。

    TrimLeadingSpace

    Boolean

    いいえ

    フィールド値の先頭にあるスペースをトリミングするかどうかを指定します。

    • true: 先頭のスペースをトリミングします。

    • false (デフォルト): 先頭のスペースをトリミングしません。

    SplitSep

    String

    いいえ

    値を区切るデリミタ。デフォルトはカンマ (,) です。

    KeepSource

    Boolean

    いいえ

    解析済みログにソースフィールドを保持するかどうかを指定します。

    • true: ソースフィールドを保持します。

    • false (デフォルト): ソースフィールドを保持しません。

    NoKeyError

    Boolean

    いいえ

    生ログにソースフィールドが見つからない場合にエラーを報告するかどうかを指定します。

    • true: エラーを報告します。

    • false (デフォルト): エラーを報告しません。

  • 構成例

    以下の例では、csv フィールドから値を抽出する方法を示します。

    • 生ログ

      {
          "csv": "2022-06-09,192.0.2.0,\"{\"\"key1\"\":\"\"value\"\",\"\"key2\"\":{\"\"key3\"\":\"\"string\"\"}}\"",
          ......
      }
    • Logtail プラグイン構成

       {
          ......
          "type":"processor_csv",
          "detail":{
              "SourceKey":"csv",
              "SplitKeys":["date", "ip", "content"],
          }
          ......
      }
    • 結果

      {
          "date": "2022-06-09",
          "ip": "192.0.2.0",
          "content": "{\"key1\":\"value\",\"key2\":{\"key3\":\"string\"}}"
          ......
      
      }

単一文字デリミタモード

説明

単一文字デリミタを使用してフィールドを抽出します。このモードでは、デリミタを含むフィールドを囲むために引用符文字を使用できます。

フォーム

  • パラメーター

    プロセッサタイプフィールド抽出 (単一文字デリミタモード) に設定します。以下の表にパラメーターを示します。

    パラメーター

    説明

    元のフィールド

    ソースフィールドの名前。

    区切りモード

    デリミタ。これは単一文字である必要があり、\u0001 のような印刷不能文字に設定できます。

    結果フィールド

    抽出されたコンテンツのフィールドを作成するための名前を指定します。

    引用符の使用

    引用符文字を使用するかどうかを指定します。

    引用符

    引用符文字。これは単一文字である必要があり、\u0001 のような印刷不能文字に設定できます。

    元のフィールド欠落のエラー報告

    生ログに指定されたソースフィールドが見つからない場合にエラーを報告するかどうかを指定します。

    デリミタ不一致のエラー報告

    生ログに指定されたデリミタが見つからない場合にエラーを報告するかどうかを指定します。

    元のフィールドの保持

    解析済みログにソースフィールドを保持するかどうかを指定します。

  • 縦棒 (|) をデリミタとして使用して content フィールドの値を抽出し、フィールド名を iptimemethodurlrequest_timerequest_lengthstatuslengthref_url、および browser に設定します。以下に構成例を示します。

    • 生ログ

      "content" : "10.**.**.**|10/Aug/2022:14:57:51 +0800|POST|PutData?
      Category=YunOsAccountOpLog&AccessKeyId=<yourAccessKeyId>&Date=Fri%2C%2028%20Jun%202013%2006%3A53%3A30%20GMT&Topic=raw&Signature=<yourSignature>|0.024|18204|200|37|-|
      aliyun-sdk-java"
    • Logtail プラグイン構成: デリミタ は縦棒 (|) に設定され、結果フィールド には iptimemethodurlrequest_timerequest_lengthstatuslengthref_url、および browser が含まれます。

    • 結果

      "ip" : "10.**.**.**"
      "time" : "10/Aug/2022:14:57:51 +0800"
      "method" : "POST"
      "url" : "/PutData?Category=YunOsAccountOpLog&AccessKeyId=<yourAccessKeyId>&Date=Fri%2C%2028%20Jun%202013%2006%3A53%3A30%20GMT&Topic=raw&Signature=<yourSignature>"
      "request_time" : "0.024"
      "request_length" : "18204"
      "status" : "200"
      "length" : "27"
      "ref_url" : "-"
      "browser" : "aliyun-sdk-java"

JSON

  • パラメーター

    typeprocessor_split_char に設定します。以下の表に detail パラメーターを示します。

    パラメーター

    タイプ

    必須

    説明

    SourceKey

    String

    はい

    ソースフィールドの名前。

    SplitSep

    String

    はい

    デリミタは単一文字である必要があり、\u0001 のような印刷不能文字に設定できます。

    SplitKeys

    文字列の配列

    はい

    新しいフィールドの名前を指定する文字列の配列。例: ["ip", "time", "method"]。

    PreserveOthers

    Boolean

    いいえ

    SplitKeys パラメーターのフィールド数よりも分割されるフィールド数が多い場合に、余分な部分を保持するかどうかを指定します。

    • true: 余分な部分を保持します。

    • false (デフォルト): 余分な部分を保持しません。

    QuoteFlag

    Boolean

    いいえ

    引用符文字を使用するかどうかを指定します。

    • true: 引用符文字を使用します。

    • false (デフォルト): 引用符文字を使用しません。

    Quote

    String

    いいえ

    引用符文字。これは単一文字である必要があり、\u0001 のような印刷不能文字に設定できます。

    このパラメーターは、QuoteFlag が true に設定されている場合にのみ有効です。

    NoKeyError

    Boolean

    いいえ

    生ログに指定されたソースフィールドが見つからない場合にエラーを報告するかどうかを指定します。

    • true: エラーを報告します。

    • false (デフォルト): エラーを報告しません。

    NoMatchError

    Boolean

    いいえ

    生ログに指定されたデリミタが見つからない場合にエラーを報告するかどうかを指定します。

    • true: エラーを報告します。

    • false (デフォルト): エラーを報告しません。

    KeepSource

    Boolean

    いいえ

    解析済みログにソースフィールドを保持するかどうかを指定します。

    • true: ソースフィールドを保持します。

    • false (デフォルト): ソースフィールドを保持しません。

  • 縦棒 (|) デリミタを使用して content フィールドの値を抽出し、フィールド名を iptimemethodurlrequest_timerequest_lengthstatuslengthref_url、および browser に設定します。以下に構成例を示します。

    • 生ログ

      "content" : "10.**.**.**|10/Aug/2022:14:57:51 +0800|POST|PutData?
      Category=YunOsAccountOpLog&AccessKeyId=<yourAccessKeyId>&Date=Fri%2C%2028%20Jun%202013%2006%3A53%3A30%20GMT&Topic=raw&Signature=<yourSignature>|0.024|18204|200|37|-|
      aliyun-sdk-java"
    • Logtail プラグイン構成

      {
         "type" : "processor_split_char",
         "detail" : {"SourceKey" : "content",
            "SplitSep" : "|",
            "SplitKeys" : ["ip", "time", "method", "url", "request_time", "request_length", "status", "length", "ref_url", "browser"]     
        }
      }
    • 結果

      "ip" : "10.**.**.**"
      "time" : "10/Aug/2022:14:57:51 +0800"
      "method" : "POST"
      "url" : "/PutData?Category=YunOsAccountOpLog&AccessKeyId=<yourAccessKeyId>&Date=Fri%2C%2028%20Jun%202013%2006%3A53%3A30%20GMT&Topic=raw&Signature=<yourSignature>"
      "request_time" : "0.024"
      "request_length" : "18204"
      "status" : "200"
      "length" : "27"
      "ref_url" : "-"
      "browser" : "aliyun-sdk-java"

複数文字デリミタモード

説明

複数文字のセパレータを使用してフィールドを抽出できます。このモードでは、引用符で囲んでセパレータをエスケープすることはサポートされていません。

コンソール

  • パラメーター

    プロセッサタイプフィールド抽出 (複数文字デリミタモード) に設定します。以下の表にパラメーターを示します。

    パラメーター

    説明

    元のフィールド

    元のフィールドの名前。

    区切り文字列

    セパレータ。印刷不能文字(例: \u0001\u0002)を指定できます。

    結果フィールド

    抽出されたフィールドの名前。

    重要

    結果フィールドの数が 結果フィールド のフィールド数よりも少ない場合、結果フィールド の余分なフィールドは無視されます。

    元のフィールド欠落のエラー報告

    指定された元のフィールドがログに見つからない場合にエラーを報告するには、このオプションを選択します。

    デリミタ不一致のエラー報告

    元のフィールドに指定されたセパレータが見つからない場合にエラーを報告するには、このオプションを選択します。

    元のフィールドの保持

    このオプションを選択して、解析済みログに元のフィールドを保持します。

    超過部分の保持

    結果フィールド で指定された名前の数よりも多くの値が分割結果に含まれる場合に、余分なコンテンツを保持するには、このオプションを選択します。

    超過部分の解析

    結果フィールド で指定された名前の数よりも多くの値が分割結果に含まれる場合に、余分なコンテンツを新しいフィールドに解析するには、このオプションを選択します。その後、超過部分のフィールド命名プレフィックス を使用して、これらの新しいフィールドの名前のプレフィックスを指定できます。

    超過部分のフィールド命名プレフィックス

    余分なフィールドの名前のプレフィックス。たとえば、このパラメーターを expand_ に設定すると、余分なフィールドの名前は expand_1expand_2 などになります。

  • 構成例

    セパレータ |#| を使用して content フィールドから値を抽出し、フィールド iptimemethodurlrequest_timerequest_lengthstatusexpand_1expand_2、および expand_3 を作成します。以下に構成例を示します。

    • 生ログ

      "content" : "10.**.**.**|#|10/Aug/2022:14:57:51 +0800|#|POST|#|PutData?
      Category=YunOsAccountOpLog&AccessKeyId=<yourAccessKeyId>&Date=Fri%2C%2028%20Jun%202013%2006%3A53%3A30%20GMT&Topic=raw&Signature=<yourSignature>|#|0.024|#|18204|#|200|#|27|#|-|#|
      aliyun-sdk-java"
    • Logtail プラグイン構成: デリミタ文字列|#|余分な部分のフィールド名プレフィックスexpand_ に設定し、新規フィールドiptimemethodurlrequest_timerequest_length、および status を追加します。

    • 結果

      "ip" : "10.**.**.**"
      "time" : "10/Aug/2022:14:57:51 +0800"
      "method" : "POST"
      "url" : "/PutData?Category=YunOsAccountOpLog&AccessKeyId=<yourAccessKeyId>&Date=Fri%2C%2028%20Jun%202013%2006%3A53%3A30%20GMT&Topic=raw&Signature=<yourSignature>"
      "request_time" : "0.024"
      "request_length" : "18204"
      "status" : "200"
      "expand_1" : "27"
      "expand_2" : "-"
      "expand_3" : "aliyun-sdk-java"

JSON

  • パラメーター

    typeprocessor_split_string に設定します。detail のパラメーターについては、次の表で説明します。

    パラメーター

    タイプ

    必須

    説明

    SourceKey

    String

    はい

    元のフィールドの名前。

    SplitSep

    String

    はい

    セパレータ。印刷不能文字(例: \u0001\u0002)を指定できます。

    SplitKeys

    文字列の配列

    はい

    抽出されたフィールドの名前を文字列の配列として指定します。例: ["key1","key2"]

    説明

    分割されるフィールド数が SplitKeys パラメーターのフィールド数よりも少ない場合、SplitKeys パラメーターの余分なフィールドは無視されます。

    PreserveOthers

    Boolean

    いいえ

    SplitKeys 配列のキー数よりも多くの値が分割結果に含まれる場合に、余分な部分を保持するかどうかを指定します。

    • true: 余分な部分を保持します。

    • false (デフォルト): 余分な部分を保持しません。

    ExpandOthers

    Boolean

    いいえ

    SplitKeys 配列のキー数よりも多くの値が分割結果に含まれる場合に、余分な部分を解析するかどうかを指定します。

    • true: 余分な部分を解析します。

      ExpandOthers パラメーターを使用して余分な部分を解析し、その後 ExpandKeyPrefix パラメーターを使用して余分な部分のフィールドの名前付けプレフィックスを指定できます。

    • false (デフォルト): 余分な部分を解析しません。

    ExpandKeyPrefix

    String

    いいえ

    余分なフィールドの名前のプレフィックス。たとえば、このパラメーターを expand_ に設定すると、余分なフィールドの名前は expand_1expand_2 などになります。

    NoKeyError

    Boolean

    いいえ

    SourceKey で指定されたフィールドが生ログに見つからない場合にエラーを報告するかどうかを指定します。

    • true: エラーを報告します。

    • false (デフォルト): エラーを報告しません。

    NoMatchError

    Boolean

    いいえ

    SplitSep で指定されたセパレータが SourceKey フィールドの値に見つからない場合にエラーを報告するかどうかを指定します。

    • true: エラーを報告します。

    • false (デフォルト): エラーを報告しません。

    KeepSource

    Boolean

    いいえ

    解析済みログに元のフィールドを保持するかどうかを指定します。

    • true: 元のフィールドを保持します。

    • false (デフォルト): 元のフィールドを保持しません。

  • 構成例

    セパレータ |#| を使用して content フィールドから値を抽出し、フィールド iptimemethodurlrequest_timerequest_lengthstatusexpand_1expand_2、および expand_3 を作成します。以下に構成例を示します。

    • 生ログ

      "content" : "10.**.**.**|#|10/Aug/2022:14:57:51 +0800|#|POST|#|PutData?
      Category=YunOsAccountOpLog&AccessKeyId=<yourAccessKeyId>&Date=Fri%2C%2028%20Jun%202013%2006%3A53%3A30%20GMT&Topic=raw&Signature=<yourSignature>|#|0.024|#|18204|#|200|#|27|#|-|#|
      aliyun-sdk-java"
    • Logtail プラグイン構成

      {
         "type" : "processor_split_string",
         "detail" : {"SourceKey" : "content",
            "SplitSep" : "|#|",
            "SplitKeys" : ["ip", "time", "method", "url", "request_time", "request_length", "status"],
            "PreserveOthers" : true,
            "ExpandOthers" : true,
            "ExpandKeyPrefix" : "expand_"
        }
      }
    • 結果

      "ip" : "10.**.**.**"
      "time" : "10/Aug/2022:14:57:51 +0800"
      "method" : "POST"
      "url" : "/PutData?Category=YunOsAccountOpLog&AccessKeyId=<yourAccessKeyId>&Date=Fri%2C%2028%20Jun%202013%2006%3A53%3A30%20GMT&Topic=raw&Signature=<yourSignature>"
      "request_time" : "0.024"
      "request_length" : "18204"
      "status" : "200"
      "expand_1" : "27"
      "expand_2" : "-"
      "expand_3" : "aliyun-sdk-java"

キーと値のペアモード

キーと値のペアを分割してフィールドを抽出します。

説明

processor_split_key_value プラグインは、Logtail 0.16.26 以降でサポートされています。

フォーム

  • パラメーター

    プロセッサタイプフィールドの抽出 (キーと値のペアモード) に設定します。以下の表にパラメーターを示します。

    パラメーター

    説明

    元のフィールド

    ソースフィールドの名前。

    キーと値のペアのデリミタ

    キーと値のペア間のデリミタは、デフォルトでタブ文字 \t です。

    キーと値のデリミタ

    キーと値のペア内のキーと値を区切るセパレータ。デフォルト値はコロン (:) です。

    元のフィールドの保持

    解析済みログにソースフィールドを保持します。

    元のフィールド欠落のエラー報告

    生ログに指定されたソースフィールドが見つからない場合にエラーを報告します。

    デリミタ一致に失敗したキーと値のペアの破棄

    指定されたキーと値のセパレータを含まないキーと値のペアを破棄します。

    キーと値のデリミタ欠落のエラー報告

    キーと値のペアに指定されたキーと値のセパレータが含まれていない場合にエラーを報告します。

    キーが空の場合にエラーを報告

    分割後にキーが空の場合にエラーを報告します。

    引用符

    値が指定された引用符文字で囲まれている場合、引用符内のコンテンツのみを抽出します。引用符文字は複数文字で構成できます。

    重要

    引用符で囲まれた値内で引用符文字の前にバックスラッシュ (\) がある場合、そのバックスラッシュはリテラル文字として扱われ、最終的な値に含まれます。

    • 例 1: キーと値のペアを分割します。

      content フィールドの値をキーと値のペアに分割します。キーと値のペア間のデリミタはタブ文字 \t、キーと値を区切るデリミタはコロン (:) です。以下に構成例を示します。

      • 生ログ

        "content": "class:main\tuserid:123456\tmethod:get\tmessage:\"wrong user\""
      • Logtail プラグイン構成: キーと値のペアのデリミタ\tキーと値のセパレータ をコロン (:) に設定し、ソースフィールドを保持 オプションを選択します。

      • 結果

        "content": "class:main\tuserid:123456\tmethod:get\tmessage:\"wrong user\""
        "class": "main"
        "userid": "123456"
        "method": "get"
        "message": "\"wrong user\""
    • 例 2: 引用符付きのキーと値のペアを分割します。

      content フィールドの値をキーと値のペアを使用して分割します。ペア間のデリミタはタブ文字 \t、ペア内のデリミタはコロン (:)、引用符文字は二重引用符 (") です。以下に構成例を示します。

      • 生ログ

        "content": "class:main http_user_agent:\"User Agent\" \"中文\" \"hello\\t\\\"ilogtail\\\"\\tworld\""
      • Logtail プラグイン構成: キーと値のペアのデリミタ\tキーと値のセパレータ はコロン (:)、引用符文字 は二重引用符 (")、ソースフィールドを保持 オプションは無効に設定されています。

      • 結果

        "class": "main",
        "http_user_agent": "User Agent",
        "no_separator_key_0": "中文",
        "no_separator_key_1": "hello\t\"ilogtail\"\tworld",
    • 例 3: 複数文字の引用符を使用してキーと値のペアを分割します。

      content フィールドの値をキーと値のペアを使用して分割します。キーと値のペア間のデリミタはタブ文字 \t、キーと値のペア内のデリミタはコロン (:)、引用符文字は二重引用符 ("") です。以下に構成例を示します。

      • 生ログ

        "content": "class:main http_user_agent:\"\"\"User Agent\"\"\" \"\"\"中文\"\"\""
      • Logtail プラグイン構成: 構成は例 2 と同じですが、引用符文字 は三つの二重引用符 (""") に設定されています。

      • 結果

        "class": "main",
        "http_user_agent": "User Agent",
        "no_separator_key_0": "中文",

JSON

  • パラメーター

    type パラメーターを processor_split_key_value に設定します。以下の表に detail オブジェクトのパラメーターを示します。

    パラメーター

    タイプ

    必須

    説明

    SourceKey

    string

    はい

    ソースフィールドの名前。

    Delimiter

    string

    いいえ

    キーと値のペア間のセパレータ。デフォルトはタブ文字 \t です。

    Separator

    string

    いいえ

    キーと値のペア内のキーと値を区切るセパレータ。デフォルト値はコロン (:) です。

    KeepSource

    boolean

    いいえ

    解析済みログにソースフィールドを保持するかどうかを指定します。

    • true: ソースフィールドを保持します。

    • false (デフォルト): ソースフィールドを保持しません。

    ErrIfSourceKeyNotFound

    boolean

    いいえ

    生ログにソースフィールドが見つからない場合にエラーを報告するかどうかを指定します。

    • true (デフォルト): エラーが報告されます。

    • false: エラーは報告されません。

    DiscardWhenSeparatorNotFound

    boolean

    いいえ

    指定されたキーと値のセパレータが見つからない場合に、キーと値のペアを破棄するかどうかを指定します。

    • true: キーと値のペアが破棄されます。

    • false (デフォルト): キーと値のペアは破棄されません。

    ErrIfSeparatorNotFound

    boolean

    いいえ

    指定されたキーと値のセパレータが見つからない場合にエラーを報告するかどうかを指定します。

    • true (デフォルト): エラーが報告されます。

    • false: エラーは報告されません。

    ErrIfKeyIsEmpty

    boolean

    いいえ

    分割後にキーが空の場合にエラーを報告するかどうかを指定します。

    • true (デフォルト): エラーが報告されます。

    • false: エラーは報告されません。

    Quote

    string

    いいえ

    値を囲むために使用する文字を指定します。値がこの文字で囲まれている場合、引用符内のコンテンツのみが抽出されます。この文字は複数文字で構成できます。デフォルトでは、このパラメーターは空であり、この機能は無効になっています。

    重要
    • 二重引用符 (") を引用符文字として使用するには、JSON 構成内でバックスラッシュ (\) を使用してエスケープする必要があります。例: "Quote": "\"".

    • 引用符で囲まれた値内で引用符文字の前にバックスラッシュ (\) がある場合、そのバックスラッシュはリテラル文字として扱われ、最終的な値に含まれます。

    • 例 1: キーと値のペアを分割します。

      content フィールドの値をキーと値のペアを使用して分割します。キーと値のペア間のデリミタはタブ文字 \t、キーと値のペア内のデリミタはコロン (:) です。以下に構成例を示します。

      • 生ログ

        "content": "class:main\tuserid:123456\tmethod:get\tmessage:\"wrong user\""
      • Logtail プラグイン構成

        {
          "processors":[
            {
              "type":"processor_split_key_value",
              "detail": {
                "SourceKey": "content",
                "Delimiter": "\t",
                "Separator": ":",
                "KeepSource": true
              }
            }
          ]
        }
      • 結果

        "content": "class:main\tuserid:123456\tmethod:get\tmessage:\"wrong user\""
        "class": "main"
        "userid": "123456"
        "method": "get"
        "message": "\"wrong user\""
    • 例 2: 引用符付きのキーと値のペアを分割します。

      content フィールドの値をキーと値のペアを使用して分割します。キーと値のペア間のデリミタはタブ文字 \t、キーと値のペア内のデリミタはコロン (:)、引用符文字は二重引用符 (") です。以下に構成例を示します。

      • 生ログ

        "content": "class:main http_user_agent:\"User Agent\" \"中文\" \"hello\\t\\\"ilogtail\\\"\\tworld\""
      • Logtail プラグイン構成

        {
          "processors":[
            {
              "type":"processor_split_key_value",
              "detail": {
                "SourceKey": "content",
                "Delimiter": " ",
                "Separator": ":",
                "Quote": "\""
              }
            }
          ]
        }
      • 結果

        "class": "main",
        "http_user_agent": "User Agent",
        "no_separator_key_0": "中文",
        "no_separator_key_1": "hello\t\"ilogtail\"\tworld",
    • 例 3: 複数文字の引用符を使用してキーと値のペアを分割します。

      content フィールドの値をキーと値のペアに分割します。キーと値のペア間のデリミタはタブ文字 (\t)、キーと値のペア内のデリミタはコロン (:)、引用符文字は二重引用符 (") です。以下にサンプル構成を示します。

      • 生ログ

        "content": "class:main http_user_agent:\"\"\"User Agent\"\"\" \"\"\"中文\"\"\""
      • Logtail プラグイン構成

        {
          "processors":[
            {
              "type":"processor_split_key_value",
              "detail": {
                "SourceKey": "content",
                "Delimiter": " ",
                "Separator": ":",
                "Quote": "\"\"\""
              }
            }
          ]
        }
      • 結果

        "class": "main",
        "http_user_agent": "User Agent",
        "no_separator_key_0": "中文",

Grok モード

grok 式を使用して対象フィールドを抽出します。

説明

processor_grok プラグインは、Logtail 1.2.0 以降でサポートされています。

フォーム

  • パラメーター

    プロセッサタイプフィールド抽出 (GROK モード) に設定します。以下の表にパラメーターを示します。

    パラメーター

    説明

    元のフィールド

    ソースフィールドの名前。

    マッチングターゲット

    grok 式の配列。processor_grok プラグインは、各式を順番に試行し、最初に成功したマッチのフィールドを返します。

    デフォルトの式の一覧については、「processor_grok」をご参照ください。必要な式が利用できない場合は、カスタム Grok モード に式を入力してください。

    説明

    複数の grok 式を構成するとパフォーマンスに影響する可能性があります。式は 5 つ以下にすることを推奨します。

    カスタム Grok モード

    カスタムルール名と grok 式を入力します。

    カスタム Grok モードのファイルディレクトリ

    カスタム grok パターンファイルを含むディレクトリ。processor_grok プラグインは、このディレクトリ内のすべてのファイルを読み取ります。

    重要

    カスタム grok パターンファイルを更新した後は、変更を有効にするために Logtail を再起動する必要があります。

    最大タイムアウト

    grok 式がフィールドのマッチングと抽出を行うための最大時間 (ミリ秒単位)。0 に設定するか空欄のままにすると、操作はタイムアウトしません。

    失敗ログ解析の保持

    解析に失敗したログを保持します。

    元のフィールドの保持

    解析済みログにソースフィールドを保持します。

    元のフィールド欠落のエラー報告

    生ログにソースフィールドが見つからない場合にエラーを報告します。

    マッチングターゲットがすべて不一致の場合のエラー報告

    マッチングターゲット 内のどの式もログと一致しない場合にエラーを報告します。

    マッチングタイムアウトエラー

    マッチがタイムアウトした場合にエラーを報告します。

  • 構成例

    この例では、Grok モードを使用して content フィールドから値を抽出し、yearmonth、および day フィールドに割り当てます。

    • 生ログ

      "content" : "2022 October 17"
    • Logtail プラグイン構成: Grok 式の配列%{YEAR:year} %{MONTH:month} %{MONTHDAY:day} に設定し、解析に失敗したログを保持 オプションを有効にします。

    • 結果

      "year":"2022"
      "month":"October"
      "day":"17"

JSON

  • パラメーター

    typeprocessor_grok に設定します。以下の表に detail のパラメーターを示します。

    パラメーター

    タイプ

    必須

    説明

    CustomPatternDir

    文字列の配列

    いいえ

    カスタム grok パターンファイルを含むディレクトリ。processor_grok プラグインは、このディレクトリ内のすべてのファイルを読み取ります。

    このパラメーターを指定しない場合、カスタム grok パターンファイルはインポートされません。

    重要

    カスタム grok パターンファイルを更新した後は、変更を有効にするために Logtail を再起動する必要があります。

    CustomPatterns

    Map

    いいえ

    カスタム grok パターン。key はルール名、value は grok 式です。

    デフォルトでサポートされている式については、「processor_grok」をご参照ください。リンクに必要な式が含まれていない場合は、Match にカスタム grok 式を入力してください。

    このパラメーターを指定しない場合、カスタム grok パターンは使用されません。

    SourceKey

    String

    いいえ

    ソースフィールドの名前。デフォルト値は content フィールドです。

    Match

    文字列の配列

    はい

    grok 式の配列。processor_grok プラグインは、各式を順番に試行し、最初に成功したマッチのフィールドを返します。

    説明

    複数の grok 式を構成するとパフォーマンスに影響する可能性があります。式は 5 つ以下にすることを推奨します。

    TimeoutMilliSeconds

    Long

    いいえ

    grok 式がフィールドのマッチングと抽出を行うための最大時間 (ミリ秒単位)。

    このパラメーターを指定しないか 0 に設定すると、操作はタイムアウトしません。

    IgnoreParseFailure

    Boolean

    いいえ

    解析に失敗したログを保持するかどうかを指定します。

    • true (デフォルト): ログを保持します。

    • false: ログを破棄します。

    KeepSource

    Boolean

    いいえ

    正常に解析した後にソースフィールドを保持するかどうかを指定します。

    • true (デフォルト): ソースフィールドを保持します。

    • false: ソースフィールドを破棄します。

    NoKeyError

    Boolean

    いいえ

    生ログにソースフィールドが見つからない場合にエラーを報告するかどうかを指定します。

    • true: エラーが報告されます。

    • false (デフォルト): エラーは報告されません。

    NoMatchError

    Boolean

    いいえ

    Match パラメーター内のどの式もログと一致しない場合にエラーを報告するかどうかを指定します。

    • true (デフォルト): エラーが報告されます。

    • false: エラーは報告されません。

    TimeoutError

    Boolean

    いいえ

    マッチがタイムアウトした場合にエラーを報告するかどうかを指定します。

    • true (デフォルト): エラーが報告されます。

    • false: エラーは報告されません。

  • 例 1

    この例では、Grok モードを使用して content フィールドから値を抽出し、yearmonth、および day フィールドに割り当てます。

    • 生ログ

      "content" : "2022 October 17"
    • Logtail プラグイン構成

      {
         "type" : "processor_grok",
         "detail" : {
            "KeepSource" : false,
            "Match" : [
               "%{YEAR:year} %{MONTH:month} %{MONTHDAY:day}"
            ],
            "IgnoreParseFailure" : false
         }
      }
    • 結果

      "year":"2022"
      "month":"October"
      "day":"17"
  • 例 2

    Grok モードを使用して複数のログから content フィールドの値を抽出し、異なる grok 式に基づいて異なる結果に解析します。以下に構成例を示します。

    • 生ログ

      {
          "content" : "begin 123.456 end"
      }
      {
          "content" : "2019 June 24 \"I am iron man"\"
      }
      {
          "content" : "WRONG LOG"
      }
      {
          "content" : "10.0.0.0 GET /index.html 15824 0.043"
      }
    • Logtail プラグイン構成

      {
              "type" : "processor_grok",
              "detail" : {
                      "CustomPatterns" : {
                              "HTTP" : "%{IP:client} %{WORD:method} %{URIPATHPARAM:request} %{NUMBER:bytes} %{NUMBER:duration}"
                      },
                      "IgnoreParseFailure" : false,
                      "KeepSource" : false,
                      "Match" : [
                              "%{HTTP}",
                              "%{WORD:word1} %{NUMBER:request_time} %{WORD:word2}",
                              "%{YEAR:year} %{MONTH:month} %{MONTHDAY:day} %{QUOTEDSTRING:motto}"
                      ],
                      "SourceKey" : "content"
              },
      }
    • 結果

      • 最初のログについて、processor_grok プラグインは Match パラメーターの最初の式 %{HTTP} でマッチを見つけられませんでしたが、2 番目の式 %{WORD:word1} %{NUMBER:request_time} %{WORD:word2} で成功しました。そのため、プラグインは 2 番目の式に基づいた抽出結果を返します。

        KeepSource パラメーターが false に設定されているため、生ログの content フィールドは破棄されます。

      • 2 番目のログエントリについて、processor_grok プラグインは、Match パラメーター内の最初の式 %{HTTP} および 2 番目の式 %{WORD:word1} %{NUMBER:request_time} %{WORD:word2} を使用してログのマッチを試みますが失敗します。プラグインは、3 番目の式 %{YEAR:year} %{MONTH:month} %{MONTHDAY:day} %{QUOTEDSTRING:motto} を使用することでログを正常にマッチさせます。そのため、プラグインは 3 番目の式に基づく抽出結果を返します。

      • processor_grok プラグインは、3 番目のログを Match 配列内のどの式ともマッチさせることができませんでした。IgnoreParseFailure パラメーターが false に設定されているため、3 番目のログは破棄されます。

      • 4 番目のログについて、processor_grok プラグインは Match 配列の最初の式 %{HTTP} でログとのマッチに成功し、抽出されたフィールドを返します。

      {
        "word1":"begin",
        "request_time":"123.456",
        "word2":"end",
      }
      {
        "year":"2019",
        "month":"June",
        "day":"24",
        "motto":"\"I am iron man"\",
      }
      {
        "client":"10.0.0.0",
        "method":"GET",
        "request":"/index.html",
        "bytes":"15824",
        "duration":"0.043",
      }

フィールド追加プラグイン

processor_add_fields プラグインを使用してログフィールドを追加します。このトピックでは、プラグインのパラメーターについて説明し、構成例を提供します。

構成

重要

processor_add_fields プラグインは、Logtail 0.16.28 以降でサポートされています。

フォーム

  • パラメーター

    プロセッサタイプフィールドの追加 に設定します。以下の表にパラメーターを示します。

    パラメーター

    説明

    フィールドの追加

    新しいログフィールドとして追加するキーと値のペア。

    重複したフィールドを無視

    有効にすると、既存のフィールドと同じ名前の新しいフィールドが既存のフィールドを上書きするのを防ぎます。

  • 構成例

    この例では、aaa2 および aaa3 フィールドを追加する方法を示します。

    • 生ログ

      "aaa1":"value1"
    • Logtail プラグイン構成: aaa2 フィールドに値 value2aaa3 フィールドに値 value3 を追加します。

    • 結果

      "aaa1":"value1"
      "aaa2":"value2"
      "aaa3":"value3"

JSON

  • パラメーター

    typeprocessor_add_fields に設定します。以下の表に detail オブジェクトのパラメーターを示します。

    パラメーター

    タイプ

    必須

    説明

    Fields

    Map

    はい

    追加するログフィールド。キーと値のペアのマップとして指定します。

    IgnoreIfExist

    Boolean

    いいえ

    追加するフィールドが既存のフィールドと同じ名前を持つ場合の動作を指定します。

    • true: 新しいフィールドは無視されます。

    • false (デフォルト): 既存のフィールドは新しいフィールドで上書きされます。

  • 構成例

    この例では、aaa2 および aaa3 フィールドを追加する方法を示します。

    • 生ログ

      "aaa1":"value1"
    • Logtail プラグイン構成

      {
        "processors":[
          {
            "type":"processor_add_fields",
            "detail": {
              "Fields": {
                "aaa2": "value2",
                "aaa3": "value3"
              }
            }
          }
        ]
      }
    • 結果

      "aaa1":"value1"
      "aaa2":"value2"
      "aaa3":"value3"

フィールド削除プラグイン

processor_drop プラグインは、指定されたログフィールドを削除します。このトピックでは、プラグインのパラメーターについて説明し、構成例を提供します。

構成

重要

processor_drop プラグインは、Logtail 0.16.28 以降でサポートされています。

フォーム

  • パラメーター

    プロセッサタイプフィールド破棄 に設定します。

    パラメーター

    説明

    フィールド破棄

    削除するログフィールド。複数のフィールドを指定できます。

  • 構成例

    ログから aaa1 および aaa2 フィールドを削除するには、以下のようにプラグインを構成します。

    • 生ログ

      "aaa1":"value1"
      "aaa2":"value2"
      "aaa3":"value3"
    • Logtail プラグイン構成: aaa1 および aaa2 フィールドを削除します。

    • 結果

      "aaa3":"value3"

JSON

  • パラメーター

    typeprocessor_drop に設定します。以下の表に detail パラメーターを示します。

    パラメーター

    タイプ

    必須

    説明

    DropKeys

    文字列の配列

    はい

    削除するログフィールドのキー。複数のキーを指定できます。

  • 構成例

    ログから aaa1 および aaa2 フィールドを削除するには、以下のようにプラグインを構成します。

    • 生ログ

      "aaa1":"value1"
      "aaa2":"value2"
      "aaa3":"value3"
    • Logtail プラグイン構成

      {
        "processors":[
          {
            "type":"processor_drop",
            "detail": {
              "DropKeys": ["aaa1","aaa2"]
            }
          }
        ]
      }
    • 結果

      "aaa3":"value3"

フィールド名変更プラグイン

processor_rename プラグインを使用してフィールドの名前を変更できます。このトピックでは、processor_rename プラグインのパラメーターと構成例について説明します。

構成

重要

processor_rename プラグインには、Logtail 0.16.28 以降が必要です。

コンソール

  • パラメーター

    処理プラグインの種類フィールドの名前変更 に設定し、以下の表に示すパラメーターを構成します。

    パラメーター

    説明

    元のフィールド

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

    結果フィールド

    フィールドの新しい名前。

    元のフィールド欠落のエラー報告

    ログに指定された元のフィールドが見つからない場合にエラーを報告するかどうかを指定します。

  • この例では、aaa1 フィールドを bbb1 に、aaa2 フィールドを bbb2 に名前変更します。

    • 生ログ

      "aaa1":"value1"
      "aaa2":"value2"
      "aaa3":"value3"
    • Logtail プラグイン構成: aaa1bbb1 に、aaa2bbb2 に名前変更します。

    • 結果

      "bbb1":"value1"
      "bbb2":"value2"
      "aaa3":"value3"

JSON

  • パラメーター

    typeprocessor_rename に設定し、以下の表に示す detail オブジェクトのパラメーターを構成します。

    パラメーター

    タイプ

    必須

    説明

    NoKeyError

    Boolean

    いいえ

    ログに指定された元のフィールドが見つからない場合にエラーを報告するかどうかを指定します。

    • true: エラーを報告します。

    • false (デフォルト): エラーを報告しません。

    SourceKeys

    文字列の配列

    はい

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

    DestKeys

    文字列の配列

    はい

    フィールドの新しい名前。

  • この例では、aaa1 フィールドを bbb1 に、aaa2 フィールドを bbb2 に名前変更します。

    • 生ログ

      "aaa1":"value1"
      "aaa2":"value2"
      "aaa3":"value3"
    • Logtail プラグイン構成

      {
        "processors":[
          {
            "type":"processor_rename",
            "detail": {
              "SourceKeys": ["aaa1","aaa2"],
              "DestKeys": ["bbb1","bbb2"],
              "NoKeyError": true
            }
          }
        ]
      }
    • 結果

      "bbb1":"value1"
      "bbb2":"value2"
      "aaa3":"value3"

フィールドパッキングプラグイン

processor_packjson プラグインを使用して、1 つ以上のソースフィールドを JSON オブジェクトとして送信先フィールドにパックします。このトピックでは、processor_packjson プラグインのパラメーターについて説明し、構成例を提供します。

構成

重要

processor_packjson プラグインは、Logtail 0.16.28 以降でサポートされています。

コンソール

  • パラメーター

    プロセッサタイプパッケージングフィールド に設定します。以下の表にパラメーターを示します。

    パラメーター

    説明

    元のフィールド

    パックするソースフィールド。

    結果フィールド

    パックされた JSON オブジェクトの送信先フィールド。

    元のフィールドの保持

    このオプションを選択すると、解析済みログにソースフィールドが保持されます。

    元のフィールド欠落のエラー報告

    このオプションを選択すると、生ログに指定されたソースフィールドが見つからない場合にプラグインがエラーを報告します。

  • この例では、a および b フィールドを d_key という名前の送信先フィールドにパックする方法を示します。

    • 生ログ

      "a":"1"
      "b":"2"
    • Logtail プラグイン構成: ソースフィールドa および b に設定し、送信先フィールドd_key に設定します。

    • 結果

      "a":"1"
      "b":"2"
      "d_key":"{\"a\":\"1\",\"b\":\"2\"}"

JSON

  • パラメーター

    typeprocessor_packjson に設定します。以下の表に detail オブジェクトのパラメーターを示します。

    パラメーター

    タイプ

    必須

    説明

    SourceKeys

    文字列の配列

    はい

    パックするソースフィールド。

    DestKey

    String

    いいえ

    パックされた JSON オブジェクトの送信先フィールド。

    KeepSource

    Boolean

    いいえ

    解析済みログにソースフィールドを保持するかどうかを指定します。

    • true (デフォルト): ソースフィールドが保持されます。

    • false: パッキング後にソースフィールドが削除されます。

    AlarmIfIncomplete

    Boolean

    いいえ

    生ログに指定されたソースフィールドが見つからない場合にエラーを報告するかどうかを指定します。

    • true (デフォルト): エラーが報告されます。

    • false: エラーは報告されません。

  • この例では、a および b フィールドを d_key という名前の送信先フィールドにパックする方法を示します。

    • 生ログ

      "a":"1"
      "b":"2"
    • Logtail プラグイン構成

      {
        "processors":[
          {
            "type":"processor_packjson",
            "detail": {
              "SourceKeys": ["a","b"],
              "DestKey":"d_key",
              "KeepSource":true,
              "AlarmIfIncomplete":true
            }
          }
        ]
      }
    • 結果

      "a":"1"
      "b":"2"
      "d_key":"{\"a\":\"1\",\"b\":\"2\"}"

JSON フィールド展開プラグイン

processor_json プラグインを使用して JSON フィールドを展開します。このトピックでは、processor_json プラグインのパラメーターについて説明し、構成例を提供します。

構成

重要

processor_json プラグインは、Logtail 0.16.28 以降でサポートされています。

コンソール

  • パラメーター

    プロセッサタイプJSON フィールドの拡張 に設定します。以下の表にパラメーターを示します。

    パラメーター

    説明

    元のフィールド

    展開するソースフィールドの名前。

    JSON 拡張度

    JSON オブジェクトを展開する最大深さ。デフォルト値は 0 で、深さの制限がないことを意味します。値が 1 の場合、最上位レベルのフィールドのみを展開します。

    JSON 拡張連結文字

    ネストされたキーを接続するために使用する文字。デフォルト値はアンダースコア (_) です。

    JSON のフィールドプレフィックス拡張

    展開されたフィールドの名前のプレフィックス。

    配列を展開する

    配列を展開するかどうかを指定します。このパラメーターは、Logtail 1.8.0 以降でサポートされています。

    元のフィールドの保持

    解析後にログにソースフィールドを保持するかどうかを指定します。

    元のフィールド欠落のエラー報告

    生ログに指定されたソースフィールドが見つからない場合にエラーを報告するかどうかを指定します。

    元のフィールド名を拡張フィールド名のプレフィックスにします

    すべての展開されたフィールド名のプレフィックスとしてソースフィールド名を使用するかどうかを指定します。

    解析が失敗した場合、元のログは保持されます

    解析に失敗した場合に生ログを保持するかどうかを指定します。

  • この例では、s_key フィールドを展開し、j をカスタムプレフィックスとして使用し、ソースフィールド名 s_key を展開されたフィールド名の追加プレフィックスとして使用します。以下に構成例を示します。

    • 生ログ (Logtail が読み取るファイルパス)

      {"s_key":"{\"k1\":{\"k2\":{\"k3\":{\"k4\":{\"k51\":\"51\",\"k52\":\"52\"},\"k41\":\"41\"}}}}"}
    • Logtail プラグイン構成

      SourceKeys_key に設定し、NoKeyError を有効にし、ExpandDepth0 (無制限) に設定し、ExpandConnector をハイフン (-) に設定し、Prefixj に設定し、UseSourceKeyAsPrefix を有効にし、KeepSource を無効にします。

    • 結果

      展開されたログには、値 51 のフィールド j_s_key-k1-k2-k3-k4-k51、値 52 のフィールド j_s_key-k1-k2-k3-k4-k52、および値 41 のフィールド j_s_key-k1-k2-k3-k41 が含まれます。ソース s_key フィールドは削除されます。

JSON

  • パラメーター

    typeprocessor_json に設定します。以下の表に detail オブジェクトのパラメーターを示します。

    パラメーター

    タイプ

    必須

    説明

    SourceKey

    String

    はい

    展開するソースフィールドの名前。

    NoKeyError

    Boolean

    いいえ

    生ログにソースフィールドが見つからない場合にエラーを報告するかどうかを指定します。

    • true (デフォルト): エラーが報告されます。

    • false: エラーは報告されません。

    ExpandDepth

    Int

    いいえ

    JSON オブジェクトを展開する最大深さ。デフォルト値は 0 で、深さの制限がないことを意味します。値が 1 の場合、最上位レベルのフィールドのみを展開します。

    ExpandConnector

    String

    いいえ

    ネストされたキーを接続するために使用する文字。デフォルト値はアンダースコア (_) です。

    Prefix

    String

    いいえ

    展開後の新しいフィールドの名前に追加するプレフィックス。

    KeepSource

    Boolean

    いいえ

    解析後にログにソースフィールドを保持するかどうかを指定します。

    • true (デフォルト): ソースフィールドが保持されます。

    • false: ソースフィールドは保持されません。

    UseSourceKeyAsPrefix

    Boolean

    いいえ

    すべての展開されたフィールド名のプレフィックスとしてソースフィールド名を使用するかどうかを指定します。

    KeepSourceIfParseError

    Boolean

    いいえ

    解析に失敗した場合に生ログを保持するかどうかを指定します。

    • true (デフォルト): 生ログが保持されます。

    • false: 生ログは保持されません。

    ExpandArray

    Boolean

    いいえ

    配列を展開するかどうかを指定します。このパラメーターは、Logtail 1.8.0 以降でサポートされています。

    • false (デフォルト): 配列は展開されません。

    • true: 配列を展開します。例: {"k":["1","2"]}{"k[0]":"1","k[1]":"2"} に展開されます。

  • この例では、s_key フィールドを展開し、j をカスタムプレフィックスとして使用し、ソースフィールド名 s_key を展開されたフィールド名の追加プレフィックスとして使用します。以下に構成例を示します。

    • 生ログ (Logtail が読み取るファイルパス)

      {"s_key":"{\"k1\":{\"k2\":{\"k3\":{\"k4\":{\"k51\":\"51\",\"k52\":\"52\"},\"k41\":\"41\"}}}}"}
    • Logtail プラグイン構成

      {
        "processors":[
          {
            "type":"processor_json",
            "detail": {
              "SourceKey": "s_key",
              "NoKeyError":true,
              "ExpandDepth":0,
              "ExpandConnector":"-",
              "Prefix":"j",
              "KeepSource": false,
              "UseSourceKeyAsPrefix": true
            }
          }
        ]
      }
    • 結果

      展開されたログには、値 51 のフィールド j_s_key-k1-k2-k3-k4-k51、値 52 のフィールド j_s_key-k1-k2-k3-k4-k52、および値 41 のフィールド j_s_key-k1-k2-k3-k41 が含まれます。ソース s_key フィールドは削除されます。

フィールド値マッピングプラグイン

processor_dict_map プラグインはフィールド値をマッピングします。このトピックでは、プラグインのパラメーターについて説明し、構成例を提供します。

構成

フォーム

プロセッサタイプフィールド値のマッピング処理 に設定します。以下の表にパラメーターを示します。

パラメーター

説明

元のフィールド

ソースフィールドの名前。

結果フィールド

マッピングされたフィールドの名前。

マッピングディクショナリ

ソース値をターゲット値にマッピングする辞書。

辞書が小さい場合は、ローカル辞書ファイルを使用せずに、このフィールドで直接マッピングを構成できます。

重要

ローカルディクショナリ を設定した場合、マッピングディクショナリ の構成は無視されます。

ローカルディクショナリ

マッピング辞書を含む CSV ファイル。ファイル内では、フィールドを二重引用符 (") で囲み、カンマ (,) で区切る必要があります。

詳細パラメーター>ソースフィールドが見つからない場合の処理

選択すると、生ログにソースフィールドが見つからない場合、プラグインはマッピングされたフィールドに 結果フィールド補足値 の値を入力します。

詳細パラメーター>マッピングディクショナリの最大サイズ

マッピング辞書に許可されるルールの最大数。デフォルトは 1,000 です。

この値を減らすと、プラグインのサーバーメモリ使用量を制限できます。

詳細パラメーター>元のログ処理方法

生ログにマッピングされたフィールドが既に存在する場合の動作を指定します。

  • 上書き

  • 入力

JSON

typeprocessor_dict_map に設定します。以下の表に detail のパラメーターを示します。

パラメーター

タイプ

必須

説明

SourceKey

String

はい

ソースフィールドの名前。

MapDict

Map

いいえ

ソース値をターゲット値にマッピングする辞書。

辞書が小さい場合は、DictFilePath パラメーターを使用せずに、ここで直接マッピングを構成できます。

重要

DictFilePath パラメーターを設定した場合、MapDict パラメーターは無視されます。

DictFilePath

String

いいえ

マッピング辞書を含む CSV ファイルへのパス。ファイル内では、フィールドを二重引用符 (") で囲み、カンマ (,) で区切る必要があります。

DestKey

String

いいえ

マッピングされたフィールドの名前。

HandleMissing

Boolean

いいえ

生ログにソースフィールドが見つからない場合にアクションを実行するかどうかを指定します。

  • true: ソースフィールドが見つからない場合にアクションを実行します。

    プラグインは、マッピングされたフィールドに Missing パラメーターの値を入力します。

  • false (デフォルト): アクションは実行されません。

Missing

String

いいえ

ソースフィールドが見つからない場合のマッピングされたフィールドの値。デフォルトは Unknown です。

このパラメーターは、HandleMissing が true に設定されている場合に有効になります。

MaxDictSize

Int

いいえ

マッピング辞書に許可されるルールの最大数。デフォルトは 1,000 です。

この値を減らすと、プラグインのサーバーメモリ使用量を制限できます。

Mode

String

いいえ

生ログにマッピングされたフィールド (DestKey で指定) が既に存在する場合の動作を指定します。

  • overwrite (デフォルト): マッピングされたフィールドの既存の値を置き換えます。

  • fill: マッピングされたフィールドの既存の値を保持します。

文字列置き換え

processor_string_replace プラグインを使用して、全文または正規表現ベースの置き換えを実行するか、生ログからエスケープ文字を削除します。

構成

重要

processor_string_replace プラグインは、Logtail 1.6.0 以降でサポートされています。

フォーム

プロセッサタイプ文字列の置き換え に設定します。以下の表にパラメーターを示します。

パラメーター

説明

元のフィールド

ソースフィールドの名前。

マッチングモード

置き換えるコンテンツを見つけるために使用する方法。有効な値:

  • 文字列のマッチング: 特定の文字列に一致するコンテンツを置き換えます。

  • Regular Expression Match: 正規表現に一致するコンテンツを置き換えます。

  • エスケープ文字を削除: エスケープ文字を削除します。

マッチング内容

マッチさせるパターンまたは文字列。

  • マッチングモード文字列のマッチング に設定されている場合、ターゲット文字列を入力します。

    一致するすべての発生箇所が置き換えられます。

  • マッチングモード正規表現マッチ に設定されている場合、ターゲット正規表現を入力します。

    正規表現グループを使用して文字列の特定部分をマッチさせることもできます。

  • マッチングモードエスケープ文字を削除 に設定されている場合、このパラメーターは不要です。

内容の置き換え

置き換えに使用する文字列。

  • マッチングモード文字列のマッチング に設定されている場合、元のコンテンツを置き換える文字列を入力します。

  • マッチングモード正規表現マッチング に設定されている場合、元のコンテンツを置き換える文字列を入力します。置き換え文字列内でキャプチャグループを参照できます。

  • マッチングモードエスケープ文字を削除 に設定されている場合、このパラメーターは不要です。

結果フィールド

結果を格納するフィールド。指定しない場合、ソースフィールドが上書きされます。

JSON

typeprocessor_string_replace に設定します。以下の表に detail オブジェクト内のパラメーターを示します。

パラメーター

タイプ

必須

説明

SourceKey

String

はい

ソースフィールドの名前。

Method

String

はい

置き換え方法。有効な値:

  • const: 文字列置き換えを使用します。

  • regex: 正規表現を使用して置き換えを行います。

  • unquote: エスケープ文字を削除します。

Match

String

いいえ

マッチさせるパターンまたは文字列。

  • Methodconst に設定した場合、置き換え対象のコンテンツに一致する文字列を入力します。

    一致するすべての発生箇所が置き換えられます。

  • Methodregex に設定した場合、置き換え対象のコンテンツに一致する正規表現を入力します。

    正規表現グループを使用して文字列の特定部分をマッチさせることもできます。

  • Methodunquote に設定した場合、このパラメーターは不要です。

ReplaceString

String

いいえ

置き換えに使用する文字列。デフォルトは空文字列 ("") です。

  • Methodconst に設定した場合、元のコンテンツを置き換える文字列を入力します。

  • Methodregex に設定した場合、元のコンテンツを置き換える文字列を入力します。置き換え文字列内でキャプチャグループを参照できます。

  • Methodunquote に設定した場合、このパラメーターは不要です。

DestKey

String

いいえ

結果を格納するフィールド。このパラメーターを指定しない場合、ソースフィールドが上書きされます。

構成例

文字列マッチを使用したコンテンツの置き換え

この例では、文字列マッチを使用して Error: content フィールドから空文字列に置き換える方法を示します。

フォーム

  • 生ログ:

    "content": "2023-05-20 10:01:23 Error: Unable to connect to database."
  • Logtail プラグイン構成: マッチモード文字列マッチ に設定し、ソースフィールドcontent に設定し、マッチコンテンツError: に設定し、置き換えコンテンツ を空欄にします。

  • 結果:

    "content": "2023-05-20 10:01:23 Unable to connect to database."

JSON

  • 生ログ:

    "content": "2023-05-20 10:01:23 Error: Unable to connect to database."
  • Logtail プラグイン構成:

    {
      "processors":[
        {
          "type":"processor_string_replace",
          "detail": {
            "SourceKey": "content",
            "Method": "const",
            "Match": "Error: ", 
            "ReplaceString": ""
          }
        }
      ]
    }
  • 結果:

    "content": "2023-05-20 10:01:23 Unable to connect to database."

正規表現を使用したコンテンツの置き換え

この例では、正規表現を使用して content フィールド内の \\u\w+\[\d{1,3};*\d{1,3}m|N/A に一致する文字列を空文字列に置き換える方法を示します。

フォーム

  • 生ログ:

    "content": "2022-09-16 09:03:31.013 \u001b[32mINFO \u001b[0;39m \u001b[34m[TID: N/A]\u001b[0;39m [\u001b[35mThread-30\u001b[0;39m] \u001b[36mc.s.govern.polygonsync.job.BlockTask\u001b[0;39m : Block collection------end------\r"
  • Logtail プラグイン構成: マッチモード正規表現マッチ に設定し、ソースフィールドcontent に設定し、マッチコンテンツ\\u\w+\[\d{1,3};*\d{1,3}m|N/A に設定し、置き換えコンテンツ を空欄にします。

  • 結果:

    "content": "2022-09-16 09:03:31.013 INFO [TID: ] [Thread-30] c.s.govern.polygonsync.job.BlockTask : Block collection------end------\r"

JSON

  • 生ログ:

    "content": "2022-09-16 09:03:31.013 \u001b[32mINFO \u001b[0;39m \u001b[34m[TID: N/A]\u001b[0;39m [\u001b[35mThread-30\u001b[0;39m] \u001b[36mc.s.govern.polygonsync.job.BlockTask\u001b[0;39m : Block collection------end------\r"
  • Logtail プラグイン構成:

    {
      "processors":[
        {
          "type":"processor_string_replace",
          "detail": {
            "SourceKey": "content",
            "Method": "regex",
            "Match": "\\\\u\\w+\\[\\d{1,3};*\\d{1,3}m|N/A", 
            "ReplaceString": ""
          }
        }
      ]
    }
  • 結果:

    "content": "2022-09-16 09:03:31.013 INFO [TID: ] [Thread-30] c.s.govern.polygonsync.job.BlockTask : Block collection------end------\r"

キャプチャグループを使用したコンテンツの置き換え

この例では、正規表現キャプチャグループを使用して 16content フィールドから */24 に置き換え、結果を new_ip という名前の新しいフィールドに格納します。

重要

キャプチャグループを使用して置き換える場合、置き換え文字列に {} を含めることはできません。$1$2 などの形式を使用する必要があります。

フォーム

  • 生ログ:

    "content": "10.10.239.16"
  • Logtail プラグイン構成: マッチモード正規表現マッチ に設定し、ソースフィールドcontent に設定し、マッチコンテンツ(\d.*\.)\d+ に設定し、置き換えコンテンツ$1*/24 に設定し、送信先フィールドnew_ip に設定します。

  • 結果:

    "content": "10.10.239.16",
    "new_ip": "10.10.239.*/24"

JSON

  • 生ログ:

    "content": "10.10.239.16"
  • Logtail プラグイン構成:

    {
      "processors":[
        {
          "type":"processor_string_replace",
          "detail": {
            "SourceKey": "content",
            "Method": "regex",
            "Match": "(\\d.*\\.)\\d+", 
            "ReplaceString": "$1*/24",
            "DestKey": "new_ip"
          }
        }
      ]
    }
  • 結果:

    "content": "10.10.239.16",
    "new_ip": "10.10.239.*/24"

エスケープ文字の削除

フォーム

  • 生ログ:

    "content": "{\\x22UNAME\\x22:\\x22\\x22,\\x22GID\\x22:\\x22\\x22,\\x22PAID\\x22:\\x22\\x22,\\x22UUID\\x22:\\x22\\x22,\\x22STARTTIME\\x22:\\x22\\x22,\\x22ENDTIME\\x22:\\x22\\x22,\\x22UID\\x22:\\x222154212790\\x22,\\x22page_num\\x22:1,\\x22page_size\\x22:10}"
  • Logtail プラグイン構成: マッチモードエスケープ文字を削除 に設定し、ソースフィールドcontent に設定します。

  • 結果:

    "content": "{\"UNAME\":\"\",\"GID\":\"\",\"PAID\":\"\",\"UUID\":\"\",\"STARTTIME\":\"\",\"ENDTIME\":\"\",\"UID\":\"2154212790\",\"page_num\":1,\"page_size\":10}"

JSON

  • 生ログ:

    "content": "{\\x22UNAME\\x22:\\x22\\x22,\\x22GID\\x22:\\x22\\x22,\\x22PAID\\x22:\\x22\\x22,\\x22UUID\\x22:\\x22\\x22,\\x22STARTTIME\\x22:\\x22\\x22,\\x22ENDTIME\\x22:\\x22\\x22,\\x22UID\\x22:\\x222154212790\\x22,\\x22page_num\\x22:1,\\x22page_size\\x22:10}"
  • Logtail プラグイン構成:

    {
      "processors":[
        {
          "type":"processor_string_replace",
          "detail": {
            "SourceKey": "content",
            "Method": "unquote"
          }
        }
      ]
    }
  • 結果:

    "content": "{\"UNAME\":\"\",\"GID\":\"\",\"PAID\":\"\",\"UUID\":\"\",\"STARTTIME\":\"\",\"ENDTIME\":\"\",\"UID\":\"2154212790\",\"page_num\":1,\"page_size\":10}"

関連ドキュメント