データフィルタリングプラグインは、指定された条件に基づいて収集するログレコードを決定します。
データフィルタリングプラグインの概要
Log Service は、複数のデータフィルタリングプラグインを提供しています。要件に応じて選択してください。
|
プラグイン名 |
タイプ |
説明 |
|
フィルタリングプロセッサ |
組み込み |
フィールド値が指定された許可リストのパターンに完全に一致するログのみを収集します。 |
|
filter_regex |
カスタム |
以下のフィルタリングモードをサポートしています。
|
エントリポイント
Logtail プラグインを使用してログを処理するには、Logtail 構成を作成または変更するときに追加します。詳細については、「概要」をご参照ください。
組み込みプラグインとカスタムプラグインの違い
組み込みプラグイン:C++ で実装されており、高いパフォーマンスを発揮します。
カスタムプラグイン:Go で実装されており、柔軟性と豊富なエコシステムを提供します。サービスログが複雑すぎて組み込みプラグインでは対応できない場合は、カスタムプラグインの使用を検討してください。
-
カスタムプラグインのパフォーマンス制限
-
ログ収集の制限
-
カスタムプラグインはテキストログを行モードで処理し、
__tag__:__path__や__topic__などのファイルレベルのメタデータを各ログエントリに保存します。 -
カスタムプラグインを追加すると、タグ関連の機能に影響します。
-
コンテキストクエリと LiveTail 機能は利用できません。これらの機能を使用するには、アグリゲーター構成を追加する必要があります。
-
__topic__フィールドは__log_topic__に名前が変更されます。アグリゲーター構成を追加すると、__topic__と__log_topic__の両方のフィールドがログに存在します。__log_topic__フィールドが不要な場合は、processor_drop プラグインを使用して削除できます。 -
__tag__:__path__などのフィールドには、組み込みのフィールドインデックスがなくなります。これらのフィールドにはフィールドインデックスを作成する必要があります。
-
-
ネイティブフィルタープラグイン
ネイティブフィルタープラグインは、フィールド値によってログをフィルタリングします。
構成
|
パラメーター |
説明 |
|
ホワイトリスト |
許可リストを定義して、特定の条件を満たすログのみを収集します。対象のフィールド名とフィルタリング用の正規表現を指定する必要があります。正規表現は文字列全体に一致する必要があります。部分一致はサポートされていません。正規表現の記述方法の詳細については、「正規表現チュートリアル」をご参照ください。 許可リスト内の複数の条件は、論理 AND で結合されます。以下に例を示します。
|
ログフィルタリングプラグイン (高度)
processor_filter_regex プラグインまたは processor_filter_key_regex プラグインを使用してログをフィルタリングします。このトピックでは、各プラグインのパラメーターと構成例について説明します。
制限事項
-
フォームベースの構成は、テキストログとコンテナ標準出力でのみ利用可能です。他のすべてのソースでは、JSON ベースの構成を使用する必要があります。
-
Go 正規表現エンジンは RE2 に基づいており、PCRE エンジンと比較して以下の制限があります。
-
名前付きキャプチャグループの構文の違い
Go は
(?P<name>...)構文を使用しますが、PCRE は(?<name>...)を使用します。 -
サポートされていない正規表現パターン
-
Lookaround:
(?=...)、(?!...)、(?<=...)、および(?<!...)。 -
条件式:
(?(condition)true|false)。 -
再帰マッチ:
(?R)および(?0)。 -
サブルーチン参照:
(?&name)および(?P>name)。 -
アトミックグループ:
(?>...)。
-
Regex101 などのツールで正規表現をデバッグする際は、処理の失敗を防ぐために、上記でリストされたサポートされていないパターンを使用しないでください。
-
processor_filter_regex (値によるフィルター)
processor_filter_key_regex (キーによるフィルター)
参考資料
-
API を使用した Logtail パイプラインの構成:
-
コンソールでのプロセッサプラグインの構成: