フィールド処理プラグインは、フィールドの追加、削除、変更、パッキング、展開、および抽出を行います。
フィールド処理の例
この表では、SLS に保存されている生ログのデータ構造について説明し、アンカーモードでフィールド抽出プラグインを使用する場合と使用しない場合を比較します。フィールド抽出プラグインを使用すると、データが構造化され、後続のクエリが簡素化されます。
|
生ログ |
プラグイン未使用時 |
アンカーモード |
|
Content: "time:2022.09.12 20:55:36\t json:{\"key1\" : \"xx\", \"key2\": false, \"key3\":123.456, \"key4\" : { \"inner1\" : 1, \"inner2\" : false}}" |
アンカーモードを使用してフィールド値を抽出し、フィールド名を time、val_key1、val_key2、val_key3、value_key4_inner1、およびvalue_key4_inner2 に設定します。
|
フィールド処理プラグイン
SLS では、以下のタイプのフィールド処理プラグインを提供しています。ニーズに合ったものを選択してください。
|
プラグイン名 |
タイプ |
説明 |
|
フィールド抽出 |
拡張 |
以下のモードをサポートしています。
|
|
フィールド追加 |
拡張 |
ログに新しいフィールドを追加します。 |
|
フィールド削除 |
拡張 |
指定されたフィールドを削除します。 |
|
フィールド名変更 |
拡張 |
フィールドの名前を変更します。 |
|
フィールドパッキング |
拡張 |
複数のフィールドを 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 モードを使用してログフィールドを抽出します。
正規表現モード
アンカーモード
CSV モード
単一文字デリミタモード
複数文字デリミタモード
キーと値のペアモード
Grok モード
フィールド追加プラグイン
processor_add_fields プラグインを使用してログフィールドを追加します。このトピックでは、プラグインのパラメーターについて説明し、構成例を提供します。
構成
processor_add_fields プラグインは、Logtail 0.16.28 以降でサポートされています。
フォーム
-
パラメーター
プロセッサタイプ を フィールドの追加 に設定します。以下の表にパラメーターを示します。
パラメーター
説明
フィールドの追加
新しいログフィールドとして追加するキーと値のペア。
重複したフィールドを無視
有効にすると、既存のフィールドと同じ名前の新しいフィールドが既存のフィールドを上書きするのを防ぎます。
-
構成例
この例では、
aaa2および aaa3 フィールドを追加する方法を示します。-
生ログ
"aaa1":"value1" -
Logtail プラグイン構成:
aaa2フィールドに値value2、aaa3フィールドに値value3を追加します。 -
結果
"aaa1":"value1" "aaa2":"value2" "aaa3":"value3"
-
JSON
-
パラメーター
typeをprocessor_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
-
パラメーター
type を processor_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 プラグイン構成:
aaa1をbbb1に、aaa2をbbb2に名前変更します。 -
結果
"bbb1":"value1" "bbb2":"value2" "aaa3":"value3"
-
JSON
-
パラメーター
typeをprocessor_renameに設定し、以下の表に示すdetailオブジェクトのパラメーターを構成します。パラメーター
タイプ
必須
説明
NoKeyErrorBoolean
いいえ
ログに指定された元のフィールドが見つからない場合にエラーを報告するかどうかを指定します。
-
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
-
パラメーター
type を processor_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 プラグイン構成
SourceKey を
s_keyに設定し、NoKeyError を有効にし、ExpandDepth を0(無制限) に設定し、ExpandConnector をハイフン (-) に設定し、Prefix をjに設定し、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
-
パラメーター
typeをprocessor_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
type を processor_dict_map に設定します。以下の表に detail のパラメーターを示します。
|
パラメーター |
タイプ |
必須 |
説明 |
|
SourceKey |
String |
はい |
ソースフィールドの名前。 |
|
MapDict |
Map |
いいえ |
ソース値をターゲット値にマッピングする辞書。 辞書が小さい場合は、DictFilePath パラメーターを使用せずに、ここで直接マッピングを構成できます。 重要
DictFilePath パラメーターを設定した場合、MapDict パラメーターは無視されます。 |
|
DictFilePath |
String |
いいえ |
マッピング辞書を含む CSV ファイルへのパス。ファイル内では、フィールドを二重引用符 (") で囲み、カンマ (,) で区切る必要があります。 |
|
DestKey |
String |
いいえ |
マッピングされたフィールドの名前。 |
|
HandleMissing |
Boolean |
いいえ |
生ログにソースフィールドが見つからない場合にアクションを実行するかどうかを指定します。
|
|
Missing |
String |
いいえ |
ソースフィールドが見つからない場合のマッピングされたフィールドの値。デフォルトは このパラメーターは、HandleMissing が true に設定されている場合に有効になります。 |
|
MaxDictSize |
Int |
いいえ |
マッピング辞書に許可されるルールの最大数。デフォルトは 1,000 です。 この値を減らすと、プラグインのサーバーメモリ使用量を制限できます。 |
|
Mode |
String |
いいえ |
生ログにマッピングされたフィールド (DestKey で指定) が既に存在する場合の動作を指定します。
|
文字列置き換え
processor_string_replace プラグインを使用して、全文または正規表現ベースの置き換えを実行するか、生ログからエスケープ文字を削除します。
構成
processor_string_replace プラグインは、Logtail 1.6.0 以降でサポートされています。
フォーム
プロセッサタイプ を 文字列の置き換え に設定します。以下の表にパラメーターを示します。
|
パラメーター |
説明 |
|
元のフィールド |
ソースフィールドの名前。 |
|
マッチングモード |
置き換えるコンテンツを見つけるために使用する方法。有効な値:
|
|
マッチング内容 |
マッチさせるパターンまたは文字列。
|
|
内容の置き換え |
置き換えに使用する文字列。
|
|
結果フィールド |
結果を格納するフィールド。指定しない場合、ソースフィールドが上書きされます。 |
JSON
type を processor_string_replace に設定します。以下の表に detail オブジェクト内のパラメーターを示します。
|
パラメーター |
タイプ |
必須 |
説明 |
|
|
String |
はい |
ソースフィールドの名前。 |
|
|
String |
はい |
置き換え方法。有効な値:
|
|
|
String |
いいえ |
マッチさせるパターンまたは文字列。
|
|
|
String |
いいえ |
置き換えに使用する文字列。デフォルトは空文字列 ("") です。
|
|
|
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"
キャプチャグループを使用したコンテンツの置き換え
この例では、正規表現キャプチャグループを使用して 16 を content フィールドから */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}"
関連ドキュメント
-
API を使用して Logtail パイプラインを構成する:
-
コンソールで処理プラグインを構成する: