完全正規表現、NGINX、JSONなどの基本モードで解析できない複雑なログがある場合は、Logtailプラグインを使用してログを解析できます。 1つ以上の処理方法に対してLogtailプラグインを設定できます。 次に、Logtailは処理メソッドを順番に実行します。

制限事項

  • パフォーマンスの制限

    Logtailプラグインを使用してログを処理すると、Logtailはより多くのリソースを消費します。 これらのリソースのほとんどはCPUリソースです。 ビジネス要件に基づいてLogtailパラメーター設定を変更できます。 詳細については、「起動パラメータの設定」をご参照ください。 生ログが5メガバイト/秒を超える速度で生成される場合は、複雑なプラグインの組み合わせを使用してログを処理しないことを推奨します。 Logtailプラグインを使用してログを事前に処理し、データ変換機能を使用してログをさらに処理できます。

  • テキストログの制限
    Log Serviceでは、基本モードでテキストログを処理できます。 Log Serviceでは、Logtailプラグインを使用してテキストログを処理することもできます。
    • プラグイン処理機能を有効にすると、テキストモードの一部の高度な機能が使用できなくなります。 たとえば、フィルターの設定、生ログのアップロード、システムのタイムゾーンの指定、解析に失敗したログの削除、区切り文字モードでの一部のフィールドのアップロードはできません。 ただし、これらの機能の一部は、関連するプラグインを使用して実装できます。
    • プロセッサのプラグインは、行モードを使用してテキストログを処理します。 このモードでは、__tag __:__ path__や__topic___などのファイルのメタデータが各ログに記録されます。 プロセッサプラグインのみを使用してログを処理する場合、タグ関連の機能には次の制限が適用されます。
      • デフォルトでは、コンテキストクエリとLiveTail機能は使用できません。

        これらの機能を使用する場合は、アグリゲーター構成を追加する必要があります。 詳細は、「アグリゲーターの設定」をご参照ください。

      • デフォルトでは、__topic__ フィールドの名前は __log_topic__ に変更されます。

        アグリゲーター設定を追加すると、__topic__ フィールドと __log_topic__ フィールドの両方がログに存在します。 __log_topic__ フィールドが不要な場合は、processor_dropプラグインを使用してフィールドを削除できます。

      • __tag __:__ path__ などのフィールドには、元のフィールドインデックスはありません。 これらのフィールドのインデックスを設定する必要があります。

設定の説明

Logtailプラグインの設定はJSONオブジェクトで構成されています。 オブジェクトには、データ処理に関連する次のキーが含まれています。 各キーの値はJSON配列です。 配列には、Logtailプラグインの名前を指定する要素が含まれます。 各JSON配列には、typeフィールドとdetailフィールドが含まれます。 typeフィールドはデータ処理に使用されるLogtailプラグインの名前を指定し、detailフィールドは詳細な設定を指定します。 例:
{
  ...
  "processors" : [
    {
      "type": "plugin_name" 、
      "detail": {...}
        },
    ...
  ],
  "アグリゲーター": [
    {
      "type": "plugin_name" 、
      "detail": {...}
        },
    ...
  ]
}

プロセッサの構成

Logtailプラグインの設定では、processorsフィールドが必要です。 次のプラグインを使用してデータを処理できます。

Logtailプラグイン説明
processor_add_fieldsprocessor_add_fieldsプラグインを使用して、ログにフィールドを追加できます。 詳細については、「t2010731.html#concept_2010731」をご参照ください。
processor_anchorprocessor_anchorプラグインを使用して、指定した開始キーワードと停止キーワードに基づいて文字列をアンカーし、フィールドを抽出できます。 詳細については、「t2010723.html#section_cud_keh_t7i」をご参照ください。
processor_csvprocessor_csvプラグインを使用して、CSV形式のデータからフィールドを抽出できます。 詳細については、「t2010723.html#section_52b_6cx_jz8」をご参照ください。
processor_dropprocessor_dropプラグインを使用して、指定したフィールドをドロップできます。 詳細については、「t2010732.html#concept_2010732」をご参照ください。
processor_filter_key_regexprocessor_filter_key_regexプラグインを使用してログをフィルタリングできます。 詳細については、「t2010730.html#concept_2010730」をご参照ください。
processor_filter_regexprocessor_filter_regexプラグインを使用してログをフィルタリングできます。 詳細については、「t2010730.html#concept_2010730」をご参照ください。
processor_geoipprocessor_geoipプラグインを使用して、ログ内のIPアドレスを地理的な場所に変換できます。 地理的位置は、国、州、市、経度、および緯度の情報を含む。 詳細については、「t2010729.html#concept_2010729」をご参照ください。
processor_grokprocessor_grokプラグインを使用して、Grokパターンに基づいてフィールドを抽出できます。 詳細については、「t2010723.html#section_ucx_pqc_4wh」をご参照ください。
processor_gotimeprocessor_gotimeプラグインを使用して、生ログの時間フィールドをGoでサポートされている時間形式に解析し、解析された結果をログ時間として使用できます。 詳細については、「t2010733.html#section_q4a_jp7_wmr」をご参照ください。
processor_jsonprocessor_jsonプラグインを使用して、JSONフィールドを展開できます。 詳細については、「t2010735.html#concept_2010735」をご参照ください。
processor_packjsonprocessor_packjsonプラグインを使用して、1つ以上のフィールドをJSONオブジェクト形式のフィールドにパックできます。 詳細については、「t2010738.html#concept_2010738」をご参照ください。
processor_regexprocessor_regexプラグインを使用して、指定された正規表現に一致するフィールドを抽出できます。 詳細については、「t2010723.html#section_dsx_td6_c9g」をご参照ください。
processor_renameprocessor_renameプラグインを使用して、指定したフィールドの名前を変更できます。 詳細については、「t2010739.html#concept_2010739」をご参照ください。
processor_split_charprocessor_split_charプラグインを使用して、指定された1文字の区切り文字に基づいてフィールドを抽出できます。 詳細については、「t2010723.html#section_mt3_poh_h8w」をご参照ください。
processor_split_key_valueprocessor_split_key_valueプラグインを使用して、キーと値のペアに基づいてフィールドを抽出できます。 詳細については、「t2010723.html#section_9jv_x7c_fbu」をご参照ください。
processor_split_stringprocessor_split_stringプラグインを使用して、指定した複数文字の区切り文字に基づいてフィールドを抽出できます。 詳細については、「t2010723.html#section_rbo_km6_pfp」をご参照ください。
processor_strptimeprocessor_strptimeプラグインを使用して、生ログの時間フィールドをstrptimeでサポートされている時間形式に解析し、解析された結果をログ時間として使用できます。 詳細については、「t2010733.html#section_r4r_ukg_8b1」をご参照ください。
processor_desensitizeprocessor_dessensitizeプラグインを使用して、ログ内の機密データを指定された文字列またはMD5ハッシュ値に置き換えることができます。 詳細については、「processor_dessensitize plug-in」をご参照ください。

アグリゲーターの設定

説明 Logtail V1.2.1以降は、aggregator_contextプラグインをサポートしています。

Logtailプラグインを使用してログを処理し、プロセッサ設定のみを追加する場合、ログの __topic__ フィールドの名前は __log_topic__ に変更されます。 ログをクエリおよび分析するとき、コンテキストクエリとLiveTail機能は使用できません。 機能を使用する場合は、プロセッサとアグリゲータの両方の構成を追加する必要があります。 この例では、aggregator_contextプラグインを追加する必要があります。 設定例:

{
    ...
  "processors" : [...] 、
    "アグリゲーター": [
      {
          "type": "aggregator_context" 、
            "detail": {}
      }
    ]
}

アグリゲーター設定を追加すると、__topic__ フィールドと __log_topic__ フィールドの両方がログに存在し、フィールドの値は同じになります。

エントリーポイント

Logtailプラグインを使用してログを処理する場合は、[plug-in Config] フィールドにプラグイン設定を追加します。 例:
  • テキストログ収集モード

    テキストログを収集する場合は、Logtail設定で [詳細オプション] > [プラグイン設定] を選択してプラグイン設定を追加します。 詳細については、「詳細設定」をご参照ください。

    Logtailプラグイン
  • Logtailプラグインモード

    Logtailプラグインを使用してデータを収集する場合は、Logtail設定の [plug-in Config] フィールドにプラグイン設定を追加します。 詳細については、「Logtailプラグインを使用したデータ収集」をご参照ください。

    Logtailプラグイン