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

Simple Log Service:サーバーからのテキストログの収集

最終更新日:Apr 01, 2026

アプリケーションログおよびシステムログは、異なるサーバーに分散して記録されるため、一元的に取得・監視・分析することが困難です。LoongCollector(Logtail)データコレクターを使用すると、ECS インスタンス、オンプレミスデータセンター、および他社クラウドプロバイダーのホストから発生するテキストログを Simple Log Service に収集し、一元的な管理と分析が可能になります。連続収集(リアルタイム増分収集:本番環境の監視に最適)および一括収集(静的ファイルのバッチインポート:既存データの移行に最適)の両モードをサポートしています。

収集モードの選択

シナリオ

推奨モード

ビジネスログが継続的に書き込まれ、リアルタイム監視およびアラート機能が必要な場合。

連続収集

アーカイブ済みの既存データファイルを一度だけインポートする場合。

一括収集

システム移行またはデータ移行時に、既存データを補完する場合。

一括収集

特定の過去期間のログを一時的に調査する場合。

一括収集

説明

デフォルトでは、LoongCollector は新しい(増分)ログのみを収集します。既存の静的ファイルを収集するには、一括収集モードを使用してください。

注意事項

  • 対応しているオペレーティングシステムおよびアーキテクチャ:

    LoongCollector は Linux システムのみをサポートします。Windows サーバーには Logtail を使用してください。新規の収集ユースケースには、LoongCollector をご使用ください。

    LoongCollector は Simple Log Service(SLS)が提供する次世代ログ収集エージェントであり、Logtail のアップグレード版です。LoongCollector と Logtail の両方をインストールする必要はなく、いずれか一方のみをインストールしてください。
  • コンピューティングリソース要件:

    • CPU:最低 0.4 コア。

    • メモリ:最低 300 MB。

    • 推奨使用方法:安定した動作を確保するため、LoongCollector(Logtail)の実際のリソース使用量を制限値の 80 % 以下に保ってください。実際の使用量は、収集速度、監視対象のディレクトリおよびファイル数、送信ブロッキングの程度などによって異なります。

  • 権限要件:

    Resource Access Management(RAM)ユーザーをご利用の場合、AliyunLogFullAccess および AliyunECSFullAccess 権限を付与する必要があります。細かい粒度での権限付与については、「付録:カスタム権限ポリシー」をご参照ください。

収集設定のワークフロー

  1. 事前準備: プロジェクトおよび Logstore を作成します。プロジェクトは、異なるアプリケーションのログを分離するために使用されるリソース管理単位であり、Logstore はログを格納するために使用されます。

  2. マシングループの構成(LoongCollector のインストール): サーバータイプに応じて LoongCollector をインストールし、サーバーをマシングループに追加します。マシングループは、収集ノードの管理、設定の配布、サーバーのステータス管理に使用されます。

  3. ログ収集ルールの作成および構成:

    1. グローバルおよび入力設定: 収集設定の名前およびログ収集のソースと範囲を定義します。

    2. ログ処理および構造化: ログ形式に応じて処理ルールを構成します。

      • マルチラインログ:Java 例外スタックや Python トレースバックなど、複数行にわたる単一のログに該当します。正規表現で各行の開始を識別し、連続する行を 1 つの完全なログとしてマージします。

      • 構造化解析:正規表現、区切り文字、NGINX パターンなどの解析プラグインを使用して、生の文字列を構造化されたキーと値のペアに抽出します。各フィールドは個別にクエリおよび分析可能です。

    3. ログフィルタリング: 収集ブラックリストおよびコンテンツフィルタリングルールを構成し、有効なログコンテンツをスクリーニングします。これにより、冗長なデータの送信およびストレージを削減できます。

    4. ログ分類: トピックを使用して、異なるアプリケーション、サーバー、またはパスソースからのログを区別します。

  4. クエリおよび分析設定: キーワード検索をサポートするため、全文インデックスがデフォルトで有効になっています。正確なクエリおよび構造化フィールドの分析を高速化するため、フィールドインデックスを有効化してください。

  5. 検証およびトラブルシューティング: 設定完了後、ログが正常に収集されていることを確認します。データが収集されない、ハートビートが失敗する、または解析エラーが発生するなどの問題が発生した場合は、「よくある質問」を参照してトラブルシューティングを行ってください。

事前準備

ログ収集を開始する前に、ログの管理および格納のため、プロジェクトおよび Logstore を作成する必要があります。これらのリソースが既に存在する場合は、この手順をスキップして「マシングループの構成(LoongCollector のインストール)」に進んでください。

プロジェクトの作成

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

  2. プロジェクトの作成 をクリックし、以下のパラメーターを設定します。

    • リージョン: ログソースが配置されているリージョン。作成後に変更できません。

    • プロジェクト名: Alibaba Cloud 全体で一意である必要があります。作成後に変更できません。

    • その他の設定はデフォルト値のままにして、作成 をクリックします。「その他のパラメーター」の詳細については、「プロジェクトの作成」をご参照ください。

Logstore の作成

  1. プロジェクト名をクリックして、対象のプロジェクトに移動します。

  2. 左側のナビゲーションウィンドウで、imageログストレージ を選択し、+ をクリックします。

  3. Logstore の作成ページで、以下の主要な設定を完了します。

    • Logstore 名: プロジェクト内で一意となる Logstore の名前。作成後に変更できません。

    • Logstore の種類: 用途に応じて「標準」または「クエリ」を選択します。

    • 課金方法:

      • 機能別課金: ストレージ、インデックス、読み書き操作などのリソースを個別に課金する方式です。小規模な利用や機能の使用量が予測できない場合に適しています。

      • 取り込みデータ量課金: 生データの書き込み量のみに基づいて課金されます。この課金方法には、30 日間の無料ストレージおよびデータ変換、配信などの無償機能が含まれています。ストレージ期間が約 30 日間、または複雑なデータ処理パイプラインがあるビジネスユースケースに最適です。

    • データ保持期間: ログを保持する日数(1~3,650 日)。3,650 を指定すると、永続的な保存となります。デフォルトは 30 日です。

    • その他の設定はデフォルト値のままにして、OK をクリックします。「その他の設定」の詳細については、「Logstore の管理」をご参照ください。

ステップ 1:マシングループの構成(LoongCollector のインストール)

事前準備 を完了したら、サーバーに LoongCollector をインストールし、マシングループに追加します。

説明

以下のインストール手順は、ログソースが、SLS プロジェクトと同じ Alibaba Cloud アカウントおよびリージョンにある ECS インスタンスである場合にのみ適用されます。

ECS インスタンスとプロジェクトが異なるアカウントまたはリージョンにある場合、またはログソースがオンプレミスサーバーである場合は、「LoongCollector のインストールおよび構成」をご参照ください。

手順:

  1. imageLogstores ページで、対象の Logstore 名の前にある image アイコンをクリックして展開します。

  2. [データ収集] の横にある image アイコンをクリックし、[クイックデータインポート] ダイアログボックスで、テキストログ収集テンプレート (例: 単一行 - テキストログ) を選択して [今すぐ統合] をクリックします。

    すべてのテキストログ収集テンプレートは、解析プラグインのみが異なり、それ以外の設定手順は同一であり、後から変更可能です。
  3. マシングループの構成 ページで、以下のパラメーターを設定します。

    • シナリオ: サーバー

    • インストール環境: ECS

    • マシングループの選択: 対象サーバーの LoongCollector のインストール状況およびマシングループ構成に基づき、該当する操作を選択します。

      • LoongCollector がインストール済みで、マシングループに既に追加されている場合は、ソースマシングループ リストから該当のマシングループを選択し、適用済みサーバーグループ に追加します。新たに作成する必要はありません。

      • LoongCollector が未インストールの場合は、マシングループの作成 をクリックします。

        以下の手順では、LoongCollector のワンクリック自動インストールおよびマシングループの作成方法について説明します。
        1. システムがプロジェクトと同じリージョンにある ECS インスタンスを自動的に一覧表示します。ログを収集するインスタンスを 1 台以上選択します。

        2. インストールおよびマシングループの作成 をクリックします。システムが選択された ECS インスタンスに LoongCollector を自動的にインストールします。

        3. マシングループの 名前 を設定し、OK をクリックします。

        説明

        インストールが失敗する、または待機状態のままになる場合は、ECS のリージョンがプロジェクトのリージョンと一致しているか確認してください。

      • すでに LoongCollector がインストール済みのサーバーを既存のマシングループに追加するには、「よくある質問」の既存のマシングループにサーバーを追加するには?をご参照ください。

  4. ハートビートのステータスを確認: 次へ をクリックします。マシングループのハートビート セクションが表示されます。ハートビート ステータスを確認します。ステータスが OK の場合は、マシングループ接続が正常です。次へ をクリックして、Logtail 構成ページに進みます。

    ステータスが FAIL の場合は、初期ハートビート確立に若干の時間がかかることがあります。約 2 分待ってからハートビートステータスを更新してください。更新後も依然として FAIL の場合は、「マシングループのハートビートが FAIL になる」を参照してさらにトラブルシューティングを行ってください。

ステップ 2:ログ収集ルールの作成および構成

LoongCollector のインストールおよびマシングループ構成 を完了したら、Logtail 構成 ページに移動し、ログ収集および処理ルールを定義します。

1.グローバルおよび入力設定

収集設定の名前およびログ収集のソースと範囲を定義します。

グローバル設定:

  • 設定名: 収集設定のカスタム名。プロジェクト内で一意である必要があります。作成後に変更できません。命名規則は以下のとおりです。

    • 小文字、数字、ハイフン(-)、アンダースコア(_)のみ使用可能です。

    • 小文字または数字で始まり、小文字または数字で終わる必要があります。

入力設定:

  • タイプ: テキストログ収集

  • ファイルパス: ログ収集パス。

    • Linux: パスはスラッシュ(/)で始める必要があります。たとえば、/data/mylogs/**/*.log は、/data/mylogs ディレクトリおよびそのサブディレクトリ内の .log 拡張子を持つすべてのファイルを示します。

    • Windows: パスはドライブ文字で始める必要があります。たとえば、C:\Program Files\Intel\**\*.Log です。

  • 最大ディレクトリ監視深度: ファイルパス 内の ** ワイルドカード文字で一致するディレクトリの最大深度です。デフォルト値は 0 で、現在のディレクトリのみが監視されることを意味します。


2.ログ処理および構造化

生の非構造化ログを構造化・検索可能なデータに変換するログ処理ルールを構成します。これにより、ログクエリおよび分析の効率が向上します。まず、ログサンプルを追加 します。

プロセッサ設定 セクションの Logtail 構成 ページで、ログサンプルの追加 をクリックし、収集対象のログコンテンツを入力します。システムがサンプルに基づいてログ形式を識別し、正規表現および解析ルールを自動生成することで、構成を簡素化します。

ユースケース 1:マルチラインログ(Java スタックログなど)の処理

Java 例外スタックや JSON オブジェクトなどのログは、多くの場合複数行にわたるため、デフォルトの収集モードでは不完全なレコードに分割され、コンテキストが失われてしまいます。これを防ぐため、マルチラインモードを有効化し、「最初の行を一致させる正規表現」を構成して、同一ログの連続する行を 1 つの完全なログとしてマージします。

例:

処理なしの生ログ

デフォルト収集モードでは各行が個別のログとなり、スタックトレースが分割されてコンテキストが失われる

マルチラインモードを有効化すると、「最初の行を一致させる正規表現」により完全なログが識別され、完全な意味論的構造が保持される

image

image

image

手順: プロセッサ設定 セクションの Logtail 構成 ページで、マルチラインモード を有効化します。

  • タイプ で、カスタム または マルチライン JSON を選択します。

    • カスタム: 形式が可変の生ログの場合、「最初の行を一致させる正規表現」を構成して、各行の開始を識別します。

      • 最初の行を一致させる正規表現: 完全なデータ行に一致する正規表現を自動生成または手動で入力します。前述の例の正規表現は \[\d+-\d+-\w+:\d+:\d+,\d+]\s\[\w+]\s.* です。

        • 自動生成: 生成 をクリックします。その後、ログサンプル テキストボックスで抽出対象のログコンテンツを選択し、自動生成 をクリックします。

        • 手動入力: 正規表現を手動で入力 をクリックします。式を入力後、検証 をクリックします。

    • マルチライン JSON: ログが標準 JSON 形式の場合、SLS が自動的に単一の生ログ内の改行を処理します。

  • 分割失敗時の処理方法:

    • 破棄: 開始行ルールに一致しないテキストセグメントを破棄します。

    • 1 行単位で保持: 一致しなかったテキストを個別の行として保持します。

ユースケース 2:構造化ログ

NGINX アクセスログやアプリケーション出力ログなど、生ログが非構造化または半構造化テキストである場合、直接クエリおよび分析を行うのは効率的ではありません。SLS は、さまざまなデータ解析プラグインを提供しており、異なる形式の生ログを自動的に構造化データに変換できます。これにより、後続の分析、監視、アラート機能のための堅固なデータ基盤が提供されます。

例:

生ログ

構造化ログ

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"
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.x.x Safari/537.36
remote_addr:192.168.*.*
remote_user: -
request_length: 514
request_method: GET
request_time: 0.000
request_uri: /nginx-logo.png
status: 200
time_local: 15/Apr/2025:16:40:00

手順: プロセッサ設定 セクションの Logtail 構成 ページで

  1. 解析プラグインの追加: プロセッサの追加 をクリックし、実際の形式に応じて 正規表現解析、区切り文字解析、JSON 解析 などのプラグインを構成します。この例では NGINX ログ収集を使用し、ネイティブプロセッサ > データ解析(NGINX モード) を選択します。

  2. NGINX ログ設定: NGINX サーバーの設定ファイル(nginx.conf)から 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"';
    重要

    ここで指定する形式定義は、サーバー上でログを生成する形式と完全に一致している必要があります。そうでないと、ログ解析が失敗します。

  3. 一般的な構成パラメーターの説明: 以下のパラメーターは複数のデータ解析プラグインに共通し、統一された機能および使用方法があります。

    • 元のフィールド: 解析対象のソースフィールド名を指定します。デフォルトは content で、これは収集されたログエントリ全体です。

    • 解析失敗時に元のフィールドを保持: 解析が失敗した場合(例:形式の不一致)に、元のログコンテンツを指定されたソースフィールドに保持するように有効化します。

    • 解析成功時に元のフィールドを保持: ログが正常に解析された場合でも、元のログコンテンツを保持するように選択できます。


3.ログフィルタリング

DEBUG や INFO レベルなどの低価値または関係のない大量のログを収集すると、ストレージリソースの浪費、コストの増加、クエリ効率の低下、データ侵害リスクの発生につながります。これを解決するため、効率的かつ安全なログ収集を実現するための細かい粒度のフィルタリングポリシーを実装します。

コンテンツフィルタリングによるコスト削減

ログコンテンツに基づいてフィールドをフィルタリングします。たとえば、レベルが WARNING または ERROR のログのみを収集します。

例:

処理なしの生ログ

WARNING または ERROR のログのみを収集します

{"level":"WARNING","timestamp":"2025-09-23T19:11:40+0800","cluster":"yilu-cluster-0728","message":"Disk space is running low","freeSpace":"15%"}
{"level":"ERROR","timestamp":"2025-09-23T19:11:42+0800","cluster":"yilu-cluster-0728","message":"Failed to connect to database","errorCode":5003}
{"level":"INFO","timestamp":"2025-09-23T19:11:47+0800","cluster":"yilu-cluster-0728","message":"User logged in successfully","userId":"user-123"}
{"level":"WARNING","timestamp":"2025-09-23T19:11:40+0800","cluster":"yilu-cluster-0728","message":"Disk space is running low","freeSpace":"15%"}
{"level":"ERROR","timestamp":"2025-09-23T19:11:42+0800","cluster":"yilu-cluster-0728","message":"Failed to connect to database","errorCode":5003}

手順: プロセッサ設定 セクションの Logtail 構成 ページで

プロセッサの追加 をクリックし、ネイティブプロセッサ > データフィルタリング を選択します。

  • フィールド名: フィルタリングに使用するログフィールド。

  • フィールド値: フィルタリングに使用する正規表現。部分的なキーワード一致ではなく、完全一致のみがサポートされます。

ブラックリストによる収集範囲の制御

ブラックリストを使用して、指定されたディレクトリまたはファイルを除外し、関係のないまたは機密性の高いログのアップロードを防止します。

手順: 入力設定 > その他の入力設定 セクションの Logtail 構成 ページで、収集ブラックリスト を有効化し、追加 をクリックします。

ディレクトリおよびファイル名に対して、完全一致およびワイルドカード一致をサポートします。サポートされるワイルドカード文字はアスタリスク(*)および疑問符(?)のみです。
  • ファイルパスブラックリスト: 除外対象のファイルパスを指定します。例:

    • /home/admin/private*.log: /home/admin/ ディレクトリ内において、private で始まり .log で終わるすべてのファイルを無視します。

    • /home/admin/private*/*_inner.log: /home/admin/ ディレクトリ下で private で始まるディレクトリ内において、_inner.log で終わるファイルを無視します。

  • ファイルブラックリスト: 収集時に無視するファイル名のリスト。例:

    • app_inner.log: 収集時に app_inner.log という名前のすべてのファイルを無視します。

  • ディレクトリブラックリスト: ディレクトリパスはスラッシュ(/)で終わってはいけません。例:

    • /home/admin/dir1/: ディレクトリブラックリストは適用されません。

    • /home/admin/dir*: /home/admin/ ディレクトリ以下の dir で始まるすべてのサブディレクトリ内のファイルを収集中に無視します。

    • /home/admin/*/dir: /home/admin/ ディレクトリの第 2 レベルにある dir という名前のサブディレクトリ内のすべてのファイルを無視します。たとえば、/home/admin/a/dir ディレクトリ内のファイルは無視されますが、/home/admin/a/b/dir ディレクトリ内のファイルは収集されます。

4.ログ分類

/apps/app-A/run.log および /apps/app-B/run.log のように、複数のアプリケーションまたはインスタンスから発生するログが同じ形式だが異なるパスを持つ場合、収集時にそのソースを区別することが困難です。トピックを構成することで、異なるアプリケーション、サービス、またはパスからのログを論理的に区別できます。これにより、単一の Logstore 内での効率的な分類および正確なクエリが可能になります。

手順: グローバル設定 > その他のグローバル設定 > ログトピックタイプ: トピックを生成する方法を選択します。以下の 3 種類がサポートされています。

  • マシングループトピック: 収集設定が複数のマシングループに適用される場合、LoongCollector は自動的にサーバーのマシングループ名を __topic__ フィールドとしてアップロードします。これは、ホスト単位でログを分割するユースケースに適しています。

  • カスタム: customized://<custom_topic_name> の形式(例:customized://app-login)を使用します。これは、固定されたビジネス識別子を持つ静的なトピックユースケースに適しています。

  • ファイルパス抽出: ログファイルの完全なパスから重要な情報を抽出し、動的にログソースをマークします。これは、複数のユーザーまたはアプリケーションが同じログファイル名を使用するがパスが異なる場合に適しています。たとえば、複数のユーザーまたはサービスが異なるトップレベルディレクトリにログを書き込むが、サブパスおよびファイル名が同一である場合、ファイル名のみではソースを区別できません。

    /data/logs
    ├── userA
    │   └── serviceA
    │       └── service.log
    ├── userB
    │   └── serviceA
    │       └── service.log
    └── userC
        └── serviceA
            └── service.log

    [ファイルパスの抽出] を設定し、正規表現を使用して完全なパスから重要な情報を抽出します。マッチした結果は、トピックとしてログストアにアップロードされます。

    ファイルパス抽出ルール:正規表現キャプチャグループに基づく

    正規表現を構成する際、システムはキャプチャグループの数および名前に基づいて自動的に出力フィールド形式を決定します。ルールは以下のとおりです。

    ファイルパスの正規表現では、スラッシュ(/)をエスケープする必要があります。

    キャプチャグループの種類

    ユースケース

    生成されるフィールド

    正規表現の例

    一致するパスの例

    生成されるフィールドの例

    単一のキャプチャグループ((.*?) が 1 つだけ)

    ソースを区別するために必要なのは 1 つの次元のみ(例:ユーザー名または環境)

    __topic__ フィールドを生成します

    \/logs\/(.*?)\/app\.log

    /logs/userA/app.log

    __topic__: userA

    複数のキャプチャグループ(名前なし:複数の (.*?)

    ソースを区別するために複数の次元が必要だが、セマンティックなタグは不要

    __tag__:__topic_{i}__ というタグフィールドを生成します。ここで {i} はキャプチャグループの序数です

    \/logs\/(.*?)\/(.*?)\/app\.log

    /logs/userA/svcA/app.log

    __tag__:__topic_1__userA

    __tag__:__topic_2__svcA

    複数のキャプチャグループ(名前付き:(?P<name>.*?)

    ソースを区別するために複数の次元が必要で、フィールドの意味が明確であることがクエリおよび分析に重要

    __tag__:{name} というタグフィールドを生成します

    \/logs\/(?P<user>.*?)\/(?P<service>.*?)\/app\.log

    /logs/userA/svcA/app.log

    __tag__:user:userA;

    __tag__:service:svcA

5.出力設定

デフォルトでは、すべてのログは lz4 圧縮で現在の Logstore に送信されます。同じソースからのログを異なる複数の Logstore に送信するには、以下の手順に従います。

複数のターゲットへの動的配信

重要
  • 複数のターゲットへのログ送信は、LoongCollector 3.0.0 以降でのみ利用可能です。Logtail ではサポートされていません。

  • 最大 5 つの出力ターゲットを構成できます。

  • 複数の出力ターゲットを構成した後、収集設定は現在の Logstore の収集設定リストには表示されなくなります。マルチターゲット配信設定を表示、変更、または削除するには、「マルチターゲット配信設定を管理するには?」をご参照ください。

手順: 出力設定 セクションの Logtail 構成 ページで

  1. image をクリックして出力設定を展開します。

  2. 出力先の追加 をクリックし、以下の設定を構成します。

    • Logstore: ターゲット Logstore を選択します。

    • 圧縮方法: lz4 または zstd を選択します。

    • ルート設定: タグフィールドに基づいてログをルーティングします。ルーティングルールに一致するログはターゲット Logstore に送信されます。この構成が空の場合、すべての収集ログがターゲット Logstore に送信されます。

      • タグ名: ルーティングに使用するタグフィールドの名前。たとえば __path__ のように、直接フィールド名を入力します。__tag__: 接頭辞は不要です。タグフィールドには以下の 2 種類があります。

        タグの詳細については、「LoongCollector 収集タグの管理」をご参照ください。
        • エージェント関連:収集エージェントに関連し、プラグインとは無関係のタグです。例:__hostname____user_defined_id__

        • 入力プラグイン関連:入力プラグインに依存し、関連する情報をログに追加および拡充するタグです。例:ファイル収集の __path__、Kubernetes 収集の _pod_name_ および _container_name_

      • タグ値: ログのタグ値がこの値と一致する場合、ログはこのターゲット Logstore に送信されます。

      • このタグフィールドを破棄するかどうか: このオプションを有効化すると、アップロードされたログからこのタグフィールドが削除されます。

ステップ 3:クエリおよび分析設定

ログ処理およびプラグインの構成を完了したら、次へ をクリックして クエリおよび分析設定 ページに移動します。

  • 全文インデックス はデフォルトで有効になっており、生ログコンテンツに対するキーワード検索をサポートします。

  • フィールド単位の正確なクエリを行うには、プレビュー データ の読み込みを待ってから、自動インデックス生成 をクリックします。SLS はプレビュー データの最初のエントリに基づいて フィールドインデックス を生成します。

構成が完了したら、次へ をクリックして、収集プロセス全体の設定を完了します。

ステップ 4:検証およびトラブルシューティング

構成が完了したら、マシングループに適用して保存します。しばらく待ってから、以下のチェックリストを使用して検証を行います。

検証チェックリスト

  1. ログファイルに新しいコンテンツがあることを確認: LoongCollector は増分ログのみを収集します。tail -f /path/to/your/log/file を実行し、ビジネス操作をトリガーして、新しいログが書き込まれていることを確認します。

  2. LoongCollector のステータスを確認: sudo /etc/init.d/loongcollectord status

  3. マシングループのハートビートを確認: imageリソース > マシングループ ページに移動し、対象のマシングループ名をクリックします。マシングループの構成 > マシングループのステータス セクションで、ハートビート ステータスを確認します。

  4. ログをクエリ: 対象 Logstore のクエリおよび分析ページに移動し、検索および分析(デフォルトの時間範囲は直近 15 分間)をクリックして、新しいログが流入しているかどうかを確認します。

一般的な問題のトラブルシューティング

マシングループのハートビートが FAIL になる

  1. ユーザー ID を確認:サーバーが ECS インスタンスでない場合、または ECS インスタンスとプロジェクトが異なる Alibaba Cloud アカウントに属している場合、指定されたディレクトリに正しいユーザー ID が存在するか確認します。存在しない場合は、以下のコマンドを実行して手動で作成します。

    • Linux: cd /etc/ilogtail/users/ && touch <uid> コマンドを実行してユーザー ID ファイルを作成します。

    • Windows: C:\LogtailData\users\ ディレクトリに <uid> という名前の空のファイルを作成します。

  2. マシングループ ID を確認:マシングループ作成時にカスタム ID を使用した場合、指定されたディレクトリに user_defined_id ファイルが存在するか確認します。存在する場合は、ファイルの内容がマシングループに構成されたカスタム ID と一致するか確認します。

    • Linux:

      # カスタム ID を構成します。ディレクトリが存在しない場合は、手動で作成してください。
      echo "user-defined-1" > /etc/ilogtail/user_defined_id
    • Windows: C:\LogtailData ディレクトリに user_defined_id という名前の新しいファイルを作成し、カスタム ID を書き込みます。(ディレクトリが存在しない場合は、手動で作成してください。)

  3. ユーザー ID およびマシングループ ID の両方が正しく構成されている場合、「LoongCollector(Logtail)マシングループの問題のトラブルシューティング」を参照してさらに調査を行ってください。


データが収集されない

  1. 増分ログがあるか確認: LoongCollector(Logtail)の収集を構成した後、対象のログファイルに新しいログが追加されない場合、LoongCollector(Logtail)はそのファイルからデータを収集しません。

  2. マシングループのハートビートステータスを確認: imageリソース > マシングループ ページに移動し、対象のマシングループ名をクリックします。マシングループの構成 > マシングループのステータス セクションで、ハートビート ステータスを確認します。

  3. LoongCollector(Logtail)収集設定がマシングループに適用されているか確認: LoongCollector(Logtail)収集設定が作成されていても、マシングループに適用されていないと、ログは収集されません。

    1. imageリソース > マシングループ ページに移動し、対象のマシングループ名をクリックして、マシングループの構成 ページに移動します。

    2. ページで 構成の管理 を表示します。左側には すべての Logtail 構成、右側には 適用済みの Logtail 構成 が表示されます。対象の LoongCollector(Logtail)収集設定が右側の適用済み領域に移動されている場合、設定は対象のマシングループに正常に適用されています。

    3. 対象の LoongCollector(Logtail)収集設定が右側の適用済み領域に移動されていない場合、変更 をクリックします。左側の すべての Logtail 構成 リストから対象の LoongCollector(Logtail)構成名を選択し、image をクリックして右側の適用済み領域に移動させ、保存 をクリックします。


ログ収集エラーまたは形式エラー

トラブルシューティング:この状況は、ネットワーク接続および基本的な構成が正常であることを示しています。問題の原因は、ログコンテンツと解析ルールの不一致である可能性が高いです。具体的なエラーメッセージを確認して問題を特定する必要があります。

  1. Logtail 構成 ページで、収集エラーが発生している LoongCollector(Logtail)構成の名前をクリックします。ログ収集エラー タブで、時間範囲の選択 をクリックしてクエリ時間を設定します。

  2. 収集例外モニタリング > 完全なエラー情報 セクションで、エラーログのアラームメトリックを表示し、「データ収集における一般的なエラー」から対応する解決策を検索します。

制限事項

項目

制限事項

1 行のログの長さ

デフォルト制限は 512 KB です。max_read_buffer_size 起動パラメーターを使用して調整でき、最大 8 MB まで設定可能です。「Logtail のネットワークタイプ、起動パラメーター、および構成ファイル」をご参照ください。

マルチラインログが「最初の行を一致させる正規表現」で分割された後、各ログのサイズ制限は引き続き 512 KB です。ログが 512 KB を超える場合、強制的に複数のエントリに分割されて収集されます。たとえば、1,025 KB の単一ログの場合、最初の 512 KB が処理され、次に次の 512 KB が処理され、最後に残りの 1 KB が処理されます。最終結果は、複数の不完全なログエントリとなります。

ファイルエンコーディング

UTF-8 または GBK エンコーディングのログファイルをサポートします。より良い処理パフォーマンスを得るには、UTF-8 を使用してください。

警告

ログファイルが他のエンコーディング形式を使用している場合、文字化けやデータ損失が発生する可能性があります。

ログファイルのローテーション

ログローテーションキューのデフォルトサイズは 20 です。logreader_max_rotate_queue_size 起動パラメーターを使用して調整可能です。「Logtail のネットワークタイプ、起動パラメーター、および構成ファイル」をご参照ください。

収集パスを xxx.log または xxx.log* の形式に設定します。

重要

同じ Logtail インスタンスでこれら 2 つの形式を混在させないでください。そうすると、同じファイルが複数の Logtail 収集設定に一致し、重複収集が発生する可能性があります。

処理されていないファイルが 20 個を超える場合、新しく生成されたログが失われる可能性があります。このような場合、まず Logstore シャードの書き込みクォータが上限に達していないか確認し、Logtail の同時実行数を調整してください。「Logtail のネットワークタイプ、起動パラメーター、および構成ファイル」をご参照ください。

ログ解析がブロッキングされた際の収集動作

ログ解析がブロッキングされた場合、Logtail はそのログファイルのファイルディスクリプタを開いたままにします。これにより、ブロッキング中にファイルが削除されるのを防ぎ、データ損失を防止します。

解析がブロッキングされている間に複数のログファイルローテーションが発生した場合、Logtail はファイルをローテーションキューに配置します。

正規表現

Perl 互換正規表現(PCRE)をサポートします。

JSON

標準 JSON(RFC7159ECMA-404)を完全にサポートします。非標準 JSON(例:{"name": "\xE5\xAD\xA6"})はサポートされていません。

ファイルのオープン動作

Logtail は、収集されたファイルおよびローテーションキュー内のファイルをデータ整合性を確保するために開いたままにします。ファイルは以下の状況で閉じられます。

  • ファイルは5分以上変更されていません。

  • ローテーションが発生し、コレクションが完了しました。

  • Logtail 収集設定が変更された場合。

ファイルが完全に収集されたか、まだ書き込み中かに関係なく、ファイルが削除された後にファイルハンドルを制御可能な時間内に解放したい場合は、force_release_deleted_file_fd_timeout 起動パラメーターを使用してタイムアウトを設定してください。「Logtail のネットワークタイプ、起動パラメーター、および構成ファイル」をご参照ください。

初期ログ収集動作

Logtail は増分ログファイルのみを収集します。ファイルが初めて変更されたと検出された場合、そのサイズが 1 MB(コンテナ標準出力の場合は 512 KB)を超える場合、収集は最後の 1 MB から開始されます。それ以外の場合は、ファイルの先頭から開始されます。

新規ファイルの初期収集サイズは、Logtail 収集設定の tail_size_kb パラメーターで調整可能です。「Logtail 構成(レガシ)」をご参照ください。

Logtail 収集設定が適用された後、ログファイルが変更されない場合、Logtail はそのファイルを収集しません。既存のファイルを収集するには、「既存のログファイルのインポート」をご参照ください。

ファイルが上書きされた際の動作

Logtail は、inode とファイルの先頭 1,024 バイトのハッシュの組み合わせでファイルを識別します。ファイルが上書きされ、inode または先頭 1,024 バイトのハッシュのいずれかが変更された場合、ファイルは新しいファイルとして扱われ、収集は先頭から開始されます。それ以外の場合は、収集されません。

ファイルが移動された際の動作

ファイルが移動された後、そのファイルとこれまで一致したことのない Logtail 収集設定に一致した場合、移動されたファイルは新しいファイルとして扱われ、収集は先頭から開始されます。それ以外の場合は、収集されません。

ファイル収集履歴

Logtail は、ファイル収集履歴をメモリ内に保持し、ファイルが変更された後に増分部分のみを収集できるようにします。保持範囲外のログに書き込みが発生した場合、重複収集が発生します。

  • デフォルトでは、直近 1 か月の履歴ファイルが保持されます。

  • 同一ディレクトリ内に 5,000 個を超える履歴ファイルがある場合、直近 1 週間の記録のみが保持されます。

  • 同一ディレクトリ内に 10,000 個を超える履歴ファイルがある場合、直近 1 日の記録のみが保持されます。

非標準テキストログ

ログの行に \0 が含まれる場合、バージョン 2.1.10 および 3.0.12 より後のバージョンでは、\0 のみがログの中央に保持され、プレフィックスおよびサフィックスの \0 部分は破棄されます。他のバージョンでは、最初の \0 で切り捨てられるか、完全に保持される可能性があります。この問題を回避するには、最新バージョンにアップグレードしてください。その他のエスケープ文字(ASCII カラーなど)または非表示文字については、Logtail がそのまま報告します。

課金

  • LoongCollector または Logtail のインストールは無料です。

  • ログの取り込み、ストレージ、インデックス、クエリ、変換、配信に対しては、Logstore の課金方法に応じて課金されます。

  • インストールまたは構成時に Global Accelerator 機能を使用する場合、アクセラレーテッドネットワークを介したデータ転送に対して追加のトラフィック料金が発生します。

よくある質問

マルチターゲット配信設定を管理するには?

マルチターゲット配信設定は、複数の Logstore に関連付けられています。これらの設定は、プロジェクトレベルの管理ページから管理します。

  1. Simple Log Service コンソール」にログインし、対象プロジェクトの名前をクリックします。

  2. プロジェクトページで、左側のナビゲーションウィンドウから image リソース > 構成 を選択します。

    説明

    このページでは、関連する Logstore が誤って削除された後も残る構成を含む、プロジェクト内のすべての収集構成を一元的に管理できます。

ECS サーバーから別の Alibaba Cloud アカウントのプロジェクトにログを送信するには?

LoongCollector をまだインストールしていない場合は、「LoongCollector のインストール」を参照し、適切なクロスアカウントユースケースを選択してインストールしてください。

すでに LoongCollector をインストール済みの場合は、ユーザー ID を構成する手順に従ってください。この ID は、サーバーが SLS プロジェクトを所有するアカウントからアクセスおよびログ収集される許可を持っていることを示します。

非アカウント ECS インスタンス、オンプレミスサーバー、または他社クラウドプロバイダーのサーバーからログを収集する場合にのみ、ユーザー ID を構成する必要があります。
  1. SLS を所有する Alibaba Cloud アカウントのアカウント ID をコピーします。右上隅のプロフィール画像にマウスを合わせると、表示されるタブからアカウント ID を表示およびコピーできます。

  2. ログを収集するサーバーにログインし、Alibaba Cloud アカウント ID ファイルを作成してユーザー ID を構成します。

    touch /etc/ilogtail/users/{Alibaba_Cloud_account_ID} # /etc/ilogtail/users ディレクトリが存在しない場合は、手動で作成してください。ユーザー ID 構成ファイルにはファイル名のみが必要で、ファイル拡張子は不要です。

ECS サーバーから同一アカウントだが異なるリージョンのプロジェクトにログを送信するには?

LoongCollector をまだインストールしていない場合は、「LoongCollector のインストール」を参照し、適切なクロスリージョンユースケースを選択してインストールしてください。

すでに LoongCollector をインストール済みの場合は、LoongCollector の構成を変更する必要があります。

  1. sudo /etc/init.d/ilogtaild stop コマンドを実行して LoongCollector を停止します。

  2. LoongCollector の起動構成ファイル ilogtail_config.json を変更します。ネットワーク要件に応じて、以下の 2 つの方法のいずれかを選択します。

    構成ファイルのパス:/usr/local/ilogtail/ilogtail_config.json

    • 方法 1:インターネット経由での送信

      RegionID」を参照し、構成ファイル内のリージョンを SLS が配置されているリージョンに置き換えます。変更するフィールドは以下のとおりです。

      • primary_region

      • config_servers 内のリージョン部分

      • region および endpoint_list のリージョン部分(data_servers 内)

    • 方法 2:転送アクセラレーションの使用

      data_server_list パラメーターのエンドポイント行を log-global.aliyuncs.com に置き換えます。ファイルパスについては、「Logtail のネットワークタイプ、起動パラメーター、および構成ファイル」をご参照ください。

    構成ファイルの例

    $cat 
    {
        "primary_region" : "cn-shanghai",
        "config_servers" :
        [
            "http://logtail.cn-shanghai.log.aliyuncs.com"
        ],
        "data_servers" :
        [
            {
                "region" : "cn-shanghai",
                "endpoint_list": [
                    "cn-shanghai.log.aliyuncs.com"
                ]
            }
        ],
        "cpu_usage_limit" : 0.4,
        "mem_usage_limit" : 384,
        "max_bytes_per_sec" : 20971520,
        "bytes_per_sec" : 1048576,
        "buffer_file_num" : 25,
        "buffer_file_size" : 20971520,
        "buffer_map_num" : 5
    }
  1. sudo /etc/init.d/ilogtaild start コマンドを実行して LoongCollector を起動します。

既存のマシングループにサーバーを追加するには?

構成済みのマシングループがあり、その収集設定を継承するために、新しく展開された ECS インスタンスやオンプレミスサーバーなどの新しいサーバーを追加する場合、以下の手順に従ってバインドします。

前提条件:

手順:

  1. 対象のマシングループ ID を表示します。

    1. 対象のプロジェクトページで、左側のナビゲーションウィンドウから imageリソース > マシングループ をクリックします。

    2. マシングループページで、対象のマシングループ名をクリックします。

    3. マシングループ構成ページで、マシングループ ID を表示します。

  2. ID の種類に応じた対応操作を行います。

    説明

    1 つのマシングループには、Linux サーバーと Windows サーバーを同時に含めることはできません。Linux サーバーと Windows サーバーの両方に同じカスタム ID を構成しないでください。1 台のサーバーには、改行で区切られた複数のカスタム ID を構成できます。

    • タイプ 1:マシングループ ID が IP アドレスの場合

      1. サーバーで、以下のコマンドを実行して app_info.json ファイルを開き、ip 値を表示します。

        cat /usr/local/ilogtail/app_info.json
      2. 対象のマシングループ構成ページで、変更 をクリックし、サーバーの IP アドレスを入力します。複数の IP アドレスは改行で区切ります。

      3. 構成が完了したら、保存 をクリックし、ハートビートステータスを確認します。ハートビートが OK になったら、サーバーが自動的にマシングループの収集設定を適用します。

        ハートビートステータスが FAIL の場合は、「よくある質問」のマシングループのハートビートが FAIL になるを参照してさらにトラブルシューティングを行ってください。
    • タイプ 2:マシングループ ID がカスタム ID の場合

      オペレーティングシステムに応じて、対象のマシングループに一致するカスタム ID 文字列を指定されたファイルに書き込みます。

      ディレクトリが存在しない場合は、手動で作成する必要があります。ファイルパスおよびファイル名は SLS で固定されており、カスタマイズできません。
      • Linux: /etc/ilogtail/user_defined_id ファイルにカスタム文字列を書き込みます。

      • Windows: C:\LogtailData\user_defined_id にカスタム文字列を書き込みます。

他のプロジェクトから収集設定をインポートするには?

事前準備 および マシングループ構成 を完了した後、既存のプロジェクトから収集設定を現在の Logstore に迅速にインポートできます。これにより、繰り返しの構成を回避し、効率を向上させます。

手順:

  1. マシングループ構成 を完了した後、次へ をクリックして Logtail 構成 ページに移動します。

  2. ページの右上隅にある 他の構成のインポート をクリックします。

  3. インポート元のプロジェクトおよびそのプロジェクト内の収集設定を選択します。

  4. OK をクリックします。システムが選択された構成を自動的に読み込みます。

  5. インポートされた構成情報が正しいことを確認した後、次へ をクリックして「クエリおよび分析設定」ページに進み、その後の構成を完了します。

マシングループ ID として使用するサーバーの IP アドレスを取得するには?

LoongCollector(Logtail)がインストール済みのサーバーで、/usr/local/ilogtail/app_info.json ファイルを開き、ip 値を表示します。

Logtail が自動的に取得したサーバーの IP アドレスは、ip フィールドに app_info.json ファイルに記録されます。以下に例を示します。IP地址

重要
  • 複数のサーバーがある場合、対応する IP アドレスを手動で入力してください。IP アドレスは改行で区切る必要があります。

  • 1 つのマシングループには、Linux サーバーと Windows サーバーを同時に含めることはできません。Windows サーバーおよび Linux サーバーの IP アドレスを同じマシングループに追加しないでください。

同一のログファイルを複数の収集設定で同時に収集するには?

デフォルトでは、データの重複を回避するため、SLS はテキストログファイルが複数の Logtail 構成によって収集されることを制限しています。同一のログファイルを複数の収集設定で同時に収集するには、ファイルを複数回収集できる機能を手動で有効化する必要があります。

手順:

重要

複数回収集を行う場合、ファイル読み取り IO、コンピューティングリソース、ネットワーク IO が線形に増加します。

  1. Simple Log Service コンソール」にログインし、対象のプロジェクトに移動します。

  2. 左側のナビゲーションウィンドウで、imageLogstores を選択し、対象の Logstore を検索します。

  3. その名前の前にある image アイコンをクリックして Logstore を展開します。

  4. Logtail 構成 をクリックします。構成リストで対象の Logtail 構成を見つけ、アクション列の Logtail 構成の管理 をクリックします。

  5. Logtail 構成ページで、編集 をクリックします。

    • 入力設定 > その他の入力設定 で、ファイルを複数回収集可能にする を有効化します。

  6. 構成が完了したら、保存 をクリックします。

最後のログエントリが長時間遅れて報告される理由、および一部が欠落する理由は?

原因: ログの欠落は、通常、ログファイルの末尾に改行がない場合、または例外スタックなどのマルチラインログが完全に書き込まれていない場合に発生します。エージェントがログの終了を判断できないため、コンテンツの最後の部分が過早に分割されたり、遅延して報告されたりする可能性があります。LoongCollector(Logtail)のバージョンによって、異なる処理メカニズムがあります。

  • バージョン 1.8 より前の場合:
    ログの最後の行に改行(復帰)がない場合、またはマルチラインログの段落が完了していない場合、エージェントは次の書き込みをトリガーするまで出力を待機します。これにより、最後のログエントリが長時間送信されず、新しいログが書き込まれるまで保持される可能性があります。

  • バージョン 1.8 以降:
    ログが滞留することを防ぐため、タイムアウトによる更新メカニズムが導入されました。不完全なログ行が検出された場合、システムがタイマーを開始します。タイムアウト後、現在のコンテンツが自動的に送信され、ログが最終的に収集されることを保証します。

    • デフォルトのタイムアウト:60 秒(ほとんどのユースケースで完全性を確保)

    • 必要に応じてこの値を調整できますが、0 に設定しないでください。そうすると、ログの欠落や部分的なコンテンツ損失が発生する可能性があります。

解決策:

完全なログが書き込まれるまで待機時間を延長し、収集前に完全なログが書き込まれることを保証します。

  1. Simple Log Service コンソールにログインし、対象のプロジェクトに移動します。Simple Log Service コンソール

  2. 左側のナビゲーションウィンドウで、imageLogstores を選択し、対象の Logstore を検索します。

  3. その名前の前にある image アイコンをクリックして Logstore を展開します。

  4. Logtail 構成 をクリックします。構成リストで対象の Logtail 構成を見つけ、アクション列の Logtail 構成の管理 をクリックします。

  5. Logtail 構成ページで、編集 をクリックします。

    • 入力設定 > その他の入力設定 > 高度なパラメーター で、以下の JSON 構成を追加してタイムアウトをカスタマイズします。

      {
        "FlushTimeoutSecs": 1
      }
      • デフォルト値:起動パラメーター default_reader_flush_timeout によって決まります(通常は数秒)。

      • 単位:秒。

      • 推奨値:≥1 秒。0 に設定しないでください。そうすると、ログの欠落や部分的なコンテンツ損失が発生する可能性があります。

  6. 構成が完了したら、保存 をクリックします。

LoongCollector(Logtail)は、なぜ運用中に内部エンドポイントからインターネットに切り替わるのですか?自動的に元に戻りますか?

運用中、LoongCollector(Logtail)が内部の同一リージョンエンドポイントとの通信異常(ネットワーク障害や接続タイムアウトなど)を検出すると、システムは自動的にパブリックドメイン名に切り替えてデータを送信します。これにより、ログ収集の継続性と信頼性が確保され、ログの滞留や損失が防止されます。

  • LoongCollector: ネットワークが回復すると、自動的に内部ネットワークに切り替わります。

  • Logtail: 自動的には切り替わりません。内部ネットワーク通信を再開するには、手動で再起動する必要があります。

付録:ネイティブプロセッサの詳細

プロセッサ設定 セクションの Logtail 構成 ページで、プロセッサを追加して生ログを構造化します。既存の収集設定に処理プラグインを追加するには、以下の手順に従います。

  1. 左側のナビゲーションウィンドウで、imageLogstores を選択し、対象の Logstore を検索します。

  2. その名前の前にある image アイコンをクリックして Logstore を展開します。

  3. Logtail 構成 をクリックします。構成リストで対象の Logtail 構成を見つけ、アクション列の Logtail 構成の管理 をクリックします。

  4. Logtail 構成ページで、編集 をクリックします。

このセクションでは、一般的なログ処理ユースケースをカバーする、よく使用される処理プラグインのみを紹介します。その他の機能については、「拡張プロセッサ」をご参照ください。
重要

プラグインの組み合わせルール(LoongCollector / Logtail 2.0 以降):

  • ネイティブプロセッサと拡張プロセッサは、個別に使用することも、必要に応じて組み合わせることもできます。

  • ネイティブプロセッサは、パフォーマンスと安定性が高いため、優先的に使用してください。

  • ネイティブ機能がビジネスニーズを満たせない場合は、構成済みのネイティブプロセッサの後に拡張プロセッサを追加して、補足的な処理を行います。

順序制約:

すべてのプラグインは、構成された順序で順次実行され、処理チェーンを形成します。注意:すべてのネイティブプロセッサは、拡張プロセッサの前に配置する必要があります。拡張プロセッサを追加した後は、ネイティブプロセッサを追加することはできません。

正規表現解析

正規表現を使用してログフィールドを抽出し、ログをキーと値のペアに解析します。各フィールドは個別にクエリおよび分析できます。

例:

処理なしの生ログ

正規表現解析プラグインの使用

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; ×64) 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

手順: プロセッサ設定 セクションの Logtail 構成 ページで、プロセッサの追加 をクリックし、ネイティブプロセッサ > データ解析(正規表現モード) を選択します。

  • 正規表現: ログに一致させるために使用する式。自動生成または手動入力が可能です。

    • 自動生成:

      • 生成 をクリックします。

      • ログサンプル で、抽出するログコンテンツを選択します。

      • 正規表現の生成 をクリックします。

        image

    • 手動入力: ログ形式に基づいて 正規表現を手動で入力 します。

    構成後、検証 をクリックして、正規表現がログコンテンツを正しく解析できるかテストします。

  • 抽出されたフィールド: 抽出されたログコンテンツ(値)に対応するフィールド名(キー)。

  • その他のパラメーターについては、「ユースケース 2:構造化ログ」の一般的な構成パラメーターの説明をご参照ください。


区切り文字解析

区切り文字を使用してログコンテンツを構造化し、複数のキーと値のペアに解析します。単一文字および複数文字の区切り文字の両方がサポートされています。

例:

処理なしの生ログ

指定された文字 , で分割されたフィールド

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
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

手順: プロセッサ設定 セクションの Logtail 構成 ページで、プロセッサの追加 をクリックし、ネイティブプロセッサ > データ解析(区切り文字モード) を選択します。

  • 区切り文字: ログコンテンツを分割するために使用する文字を指定します。

    例:CSV ファイルの場合、カスタム を選択し、カンマ(,)を入力します。

  • 引用符: フィールド値に区切り文字が含まれる場合、誤った分割を防ぐためにフィールド値を引用符で囲む必要があります。

  • 抽出されたフィールド: 各列のフィールド名(キー)を出現順に指定します。ルールは以下のとおりです。

    • フィールド名は、文字、数字、アンダースコア(_)のみ使用できます。

    • 文字またはアンダースコア(_)で始める必要があります。

    • 最大長:128 バイト。

  • その他のパラメーターについては、「ユースケース 2:構造化ログ」の一般的な構成パラメーターの説明をご参照ください。


標準 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/2025:13:30:28"}
ip: 10.200.98.220
request: {"status": "200", "latency" : "18204" }
time: 05/Jan/2025:13:30:28
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
user-agent:aliyun-sdk-java

手順: プロセッサ設定 セクションの Logtail 構成 ページで、プロセッサの追加 をクリックし、ネイティブプロセッサ > データ解析(JSON モード) を選択します。

  • 元のフィールド: 解析対象の生ログを含むフィールド。デフォルト値は content です。

  • その他のパラメーターについては、「ユースケース 2:構造化ログ」の一般的な構成パラメーターの説明をご参照ください。


ネストされた JSON 解析

展開深度を指定して、ネストされた JSON ログをキーと値のペアに解析します。

例:

処理なしの生ログ

展開深度: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"}}}}

手順: プロセッサ設定 セクションの Logtail 構成 ページで、プロセッサの追加 をクリックし、拡張プロセッサ > JSON フィールドの展開 を選択します。

  • 元のフィールド: 展開するソースフィールドの名前を指定します。例:content

  • JSON 展開深度: JSON オブジェクトの展開深度。0(デフォルト)は完全展開、1 は現在のレベルの展開を示します。

  • 展開されたキーを連結する文字: JSON オブジェクトが展開された際のフィールド名の区切り文字。デフォルト値はアンダースコア(_)です。

  • 展開されたキーの名前プレフィックス: JSON 展開後のフィールド名のプレフィックス。

  • 配列の展開: 配列をインデックス付きのキーと値のペアに展開します。

    例:{"k":["a","b"]}{"k[0]":"a","k[1]":"b"} に展開されます。

    展開されたフィールドの名前を変更する場合(例:prefix_s_key_k1 を new_field_name に変更)、後から フィールド名変更プラグイン を追加してマッピングを完了します。
  • その他のパラメーターについては、「ユースケース 2:構造化ログ」の一般的な構成パラメーターの説明をご参照ください。


JSON 配列解析

json_extract 関数 を使用して、JSON 配列から JSON オブジェクトを抽出します。

例:

処理なしの生ログ

JSON 配列構造の抽出

[{"key1":"value1"},{"key2":"value2"}]
json1:{"key1":"value1"}
json2:{"key2":"value2"}

手順: プロセッサ設定 セクションの Logtail 構成 ページで、処理モードSPL に切り替え、SPL ステートメント を構成し、json_extract 関数を使用して JSON 配列から JSON オブジェクトを抽出します。

例: ログフィールド content の JSON 配列から要素を抽出し、結果を新しいフィールド json1 および json2 に格納します。

* | extend json1 = json_extract(content, '$[0]'), json2 = json_extract(content, '$[1]')

Apache ログ解析

Apache ログ構成ファイルの定義に基づいて、ログコンテンツを複数のキーと値のペアに構造化します。

例:

処理なしの生ログ

Apache 共通ログ形式 combined 解析

1 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"
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]

手順: プロセッサ設定 セクションの Logtail 構成 ページで、プロセッサの追加 をクリックし、ネイティブプロセッサ > データ解析(Apache モード) を選択します。

  • ログ形式combined です。

  • APACHE LogFormat 構成 は、ログ形式 に基づいて自動的に入力されます。

    重要

    自動入力された内容が、サーバーの Apache 構成ファイル(通常は /etc/apache2/apache2.conf にあります)で定義された LogFormat と完全に一致していることを確認してください。

  • その他のパラメーターについては、「ユースケース 2:構造化ログ」の一般的な構成パラメーターの説明をご参照ください。


IIS ログ解析

IIS ログ形式の定義に基づいて、ログコンテンツを複数のキーと値のペアに構造化します。

比較例:

生ログ

Microsoft 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
c-ip: cs-username
cs-bytes: sc-substatus
cs-method: cs-method
cs-uri-query: cs-uri-query
cs-uri-stem: cs-uri-stem
cs-username: s-port
date: #Fields:
s-computername: s-sitename
s-ip: s-ip
s-sitename: time
sc-bytes: sc-status
sc-status: c-ip
sc-win32-status: cs (User-Agent)
time: date
time-taken: sc-win32-status

手順: プロセッサ設定 セクションの Logtail 構成 ページで、プロセッサの追加 をクリックし、ネイティブプロセッサ > データ解析(IIS モード) を選択します。

  • ログ形式: IIS サーバーのログ形式を選択します。

    • IIS: Microsoft インターネットインフォメーションサービスのログファイル形式。

    • NCSA: 共通ログ形式。

    • W3C は W3C 拡張ログファイル形式を指します。

  • IIS 構成フィールド: IIS または NCSA を選択した場合、SLS はデフォルトの 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"
  • その他のパラメーターについては、「ユースケース 2:構造化ログ」の一般的な構成パラメーターの説明をご参照ください。


データマスキング

ログ内の機密データをマスキングします。

例:

処理なしの生ログ

マスキング結果

[{'account':'1812213231432969','password':'04a23f38'}, {'account':'1812213685634','password':'123a'}]
[{'account':'1812213231432969','password':'********'}, {'account':'1812213685634','password':'********'}]

手順: プロセッサ設定 セクションの Logtail 構成 ページで、プロセッサの追加 をクリックし、ネイティブプロセッサ > データマスキング を選択します。

  • 元のフィールド: 解析前のログコンテンツを含むフィールド。

  • データマスキング方法:

    • const: 機密コンテンツを定数文字列に置き換えます。

    • md5: 機密コンテンツをその MD5 ハッシュに置き換えます。

  • 置換文字列: データマスキング方法const に設定されている場合、機密コンテンツを置き換える文字列を入力します。

  • 置換されるコンテンツの前のコンテンツ式: 機密コンテンツを見つけるために使用される式。これは RE2 構文 を使用して構成されます。

  • 置換されるコンテンツに一致するコンテンツ式: 機密コンテンツに一致させるために使用される正規表現。式は RE2 構文 で記述する必要があります。


時間解析

ログ内の時間フィールドを解析し、解析結果をログの __time__ フィールドとして設定します。

例:

処理なしの生ログ

時間解析

{"level":"INFO","timestamp":"2025-09-23T19:11:47+0800","cluster":"yilu-cluster-0728","message":"User logged in successfully","userId":"user-123"}

image

手順: プロセッサ設定 セクションの Logtail 構成 ページで、プロセッサの追加 をクリックし、ネイティブプロセッサ > 時間解析 を選択します。

  • 元のフィールド: 解析前のログコンテンツを含むフィールド。

  • 時間形式: ログ内のタイムスタンプに対応する時間形式を設定します。

  • タイムゾーン: ログの時間フィールドのタイムゾーンを選択します。デフォルトでは、LoongCollector(Logtail)プロセスが実行されている環境のタイムゾーンです。

付録:権限ポリシーリファレンス

Alibaba Cloud アカウントでのログイン:デフォルトでは、Alibaba Cloud アカウントは完全な権限を持ち、すべての操作を実行できます。

RAM ユーザーでのログイン:Alibaba Cloud アカウントは、RAM ユーザーに必要なアクセス権限ポリシーを付与する必要があります。

カスタム権限ポリシー(詳細な制御)

システムポリシーが最小権限の原則を満たさない場合、詳細な権限付与のためにカスタムポリシーを作成します。以下は、これらの権限を含む権限ポリシーの例です。

  • プロジェクトの表示: プロジェクトリストおよび指定されたプロジェクトの詳細を表示します。

  • Logstore の管理: プロジェクト下の Logstore を作成、変更、または削除します。

  • 収集設定の管理: 収集設定を作成、削除、および変更します。

  • ログの表示: 指定されたプロジェクト下の指定された Logstore 内のデータをクエリおよび分析します。

${regionName}${uid}${projectName}、および ${logstoreName} を、実際のリージョン名、Alibaba Cloud アカウント ID、対象プロジェクト、および Logstore に置き換えてください。

ポリシーの例

{
  "Version": "1",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "log:ListProject",
        "log:GetAcceleration",
        "log:ListDomains",
        "log:GetLogging",
        "log:ListTagResources"
      ],
      "Resource": "acs:log:${regionName}:${uid}:project/*"
    },
    {
      "Effect": "Allow",
      "Action": "log:GetProject",
      "Resource": "acs:log:${regionName}:${uid}:project/${projectName}"
    },
    {
      "Effect": "Allow",
      "Action": [
        "log:ListLogStores",
        "log:*LogStore",
        "log:*Index",
        "log:ListShards",
        "log:GetCursorOrData",
        "log:GetLogStoreHistogram",
        "log:GetLogStoreContextLogs",
        "log:PostLogStoreLogs"
      ],
      "Resource": "acs:log:${regionName}:${uid}:project/${projectName}/*"
    },
    {
      "Effect": "Allow",
      "Action": "log:*",
      "Resource": [
        "acs:log:${regionName}:${uid}:project/${projectName}/logtailconfig/*",
        "acs:log:${regionName}:${uid}:project/${projectName}/machinegroup/*"
      ]
    },
    {
      "Effect": "Allow",
      "Action": "log:ListSavedSearch",
      "Resource": "acs:log:${regionName}:${uid}:project/${projectName}/savedsearch/*"
    },
    {
      "Effect": "Allow",
      "Action": "log:ListDashboard",
      "Resource": "acs:log:${regionName}:${uid}:project/${projectName}/dashboard/*"
    },
    {
      "Effect": "Allow",
      "Action": "log:GetLogStoreLogs",
      "Resource": "acs:log:${regionName}:${uid}:project/${projectName}/logstore/${logstoreName}"
    },
    {
      "Effect": "Allow",
      "Action": [
        "ecs:DescribeTagKeys",
        "ecs:DescribeTags",
        "ecs:DescribeInstances",
        "ecs:DescribeInvocationResults",
        "ecs:RunCommand",
        "ecs:DescribeInvocations",
        "ecs:InvokeCommand"
      ],
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "oos:ListTemplates",
        "oos:StartExecution",
        "oos:ListExecutions",
        "oos:GetExecutionTemplate",
        "oos:ListExecutionLogs",
        "oos:ListTaskExecutions"
      ],
      "Resource": "*"
    }
  ]
}

権限

アクション

リソース

読み取り専用プロジェクト

  • GetAcceleration

  • GetLogging

  • ListProject

  • ListDomains

  • ListTagResources

acs:log:${regionName}:${uid}:project/*

指定されたプロジェクトの取得

GetProject

acs:log:${regionName}:${uid}:project/${projectName}

Logstore の管理

  • ListLogStores

  • *LogStore

  • *Index

  • ListShards

  • GetCursorOrData

  • GetLogStoreHistogram

  • GetLogStoreContextLogs

  • PostLogStoreLogs

acs:log:${regionName}:${uid}:project/${projectName}/*

LoongCollector(Logtail)データインポートの管理

*

  • acs:log:${regionName}:${uid}:project/${projectName}/logtailconfig/*

  • acs:log:${regionName}:${uid}:project/${projectName}/machinegroup/*

クイック検索のクエリ

ListSavedSearch

acs:log:${regionName}:${uid}:project/${projectName}/savedsearch/*

ダッシュボードのクエリ

ListDashboard

acs:log:${regionName}:${uid}:project/${projectName}/dashboard/*

指定された Logstore 内のログのクエリ

GetLogStoreLogs

acs:log:${regionName}:${uid}:project/${projectName}/logstore/${logstoreName}

ECS を操作する権限

  • DescribeTagKeys

  • DescribeTags

  • DescribeInstances

  • DescribeInvocationResults

  • RunCommand

  • DescribeInvocations

  • InvokeCommand

*

OOS を操作する権限 (オプション)

SLS および ECS インスタンスと同じアカウントおよびリージョンで OOS を介して LoongCollector(Logtail)が自動的にインストールされる場合にのみ必要です。

  • ListTemplates

  • StartExecution

  • ListExecutions

  • GetExecutionTemplate

  • ListExecutionLogs

  • ListTaskExecutions

*

システム権限ポリシー

システム定義のポリシーを使用する場合、以下の権限を追加します。

  • AliyunLogFullAccess: SLS を管理する権限。

  • AliyunECSFullAccess: ECS を管理する権限。

  • (オプション)AliyunOOSFullAccess: OOS を使用して LoongCollector(Logtail)をワンクリックでインストールする場合に必要です。

詳細情報

グローバル設定

パラメーター

説明

設定名

LoongCollector(Logtail)構成の名前。プロジェクト内で一意である必要があります。作成後に名前は変更できません。

ログトピックタイプ

トピックの生成方法を選択します。オプションは、マシングループトピック、ファイルパス抽出、およびカスタムです。

高度なパラメーター

グローバル構成に関連するその他のオプションの高度な機能パラメーター。詳細については、「CreateLogtailPipelineConfig」をご参照ください。

入力設定

パラメーター

説明

ファイルパス

ホスト(ECS インスタンスなど)上のログの場所に基づいて、ログディレクトリとファイル名を設定します。

ディレクトリとファイル名の両方で、完全一致モードとワイルドカードモードがサポートされています。ファイル名のルールについては、「ワイルドカードマッチング」をご参照ください。ログパスでサポートされているワイルドカード文字は、アスタリスク(*)と疑問符(?)のみです。

ログファイルの検索モードは多層ディレクトリマッチングです。つまり、指定されたディレクトリ(すべてのレベルのサブディレクトリを含む)内の基準を満たすすべてのファイルが検索されます。例:

  • /apsara/nuwa/**/*.log は、/apsara/nuwa ディレクトリとそのサブディレクトリ内の .log 拡張子を持つファイルを示します。

  • /var/logs/app_*/**/*.log は、/var/logs ディレクトリとそのサブディレクトリ内の app_* 形式に一致するすべてのディレクトリ内の .log 拡張子を持つファイルを示します。

  • /var/log/nginx/**/access* は、/var/log/nginx ディレクトリとそのサブディレクトリ内の access で始まるファイルを示します。

最大ディレクトリ監視深度

ログディレクトリの監視深度の最大値を設定します。これは、ファイルパス 内のワイルドカード文字 ** が一致できる最大ディレクトリ深度です。値 0 は、現在のディレクトリのみが監視されることを意味します。

ファイルエンコーディング

ログファイルのエンコーディング形式を選択します。

初回収集サイズ

構成が初めて有効になったとき、一致したファイルの末尾からの収集開始位置を設定します。初回収集サイズは 1,024 KB に設定されています。

  • 初回収集時、ファイルが 1,024 KB 未満の場合、収集はファイルコンテンツの先頭から開始されます。

  • 初回収集時、ファイルが 1,024 KB を超える場合、収集はファイルの末尾から 1,024 KB 手前から開始されます。

値は 0 から 10,485,760 KB の範囲で設定できます。

収集ブラックリスト

収集ブラックリスト スイッチを有効にした後、収集時に指定したディレクトリやファイルを無視するためのブラックリストを構成します。ディレクトリとファイル名の完全一致およびワイルドカード一致がサポートされています。サポートされているワイルドカード文字は、アスタリスク(*)と疑問符(?)のみです。

重要
  • ファイルパス を構成する際にワイルドカード文字を使用し、それらのパスの一部を除外する必要がある場合は、ブラックリスト構成が有効になるように、収集ブラックリスト に対応する完全なパスを入力する必要があります。

    たとえば、ファイルパス/home/admin/app*/log/*.log に設定し、/home/admin/app1* ディレクトリ下のすべてのサブディレクトリを除外したい場合は、ディレクトリブラックリスト を選択し、ディレクトリを /home/admin/app1*/** として構成する必要があります。/home/admin/app1* として構成した場合、ブラックリストは有効になりません。

  • ブラックリストとの照合には計算オーバーヘッドがかかります。ブラックリストのエントリ数は 10 個未満にしてください。

  • ディレクトリパスはスラッシュ(/)で終わることはできません。たとえば、パスを /home/admin/dir1/ に設定した場合、ディレクトリブラックリストは有効になりません。

必要に応じて、ファイルパスブラックリスト、ファイルブラックリスト、またはディレクトリブラックリストを設定します。詳細は以下のとおりです。

ファイルパスブラックリスト

  • ファイルパスブラックリスト を選択し、パスを /home/admin/private*.log と構成します。これにより、/home/admin/ ディレクトリ内の private で始まり .log で終わるすべてのファイルが無視されます。

  • ファイルパスブラックリスト を選択し、パスを /home/admin/private*/*_inner.log と構成します。これにより、/home/admin/ ディレクトリ下の private で始まるディレクトリ内の _inner.log で終わるファイルが無視されます。たとえば、/home/admin/private/app_inner.log ファイルは無視されますが、/home/admin/private/app.log ファイルは収集されます。

ファイルブラックリスト

ファイルブラックリスト を選択し、ファイル名を app_inner.log と構成します。これにより、収集時に app_inner.log という名前のすべてのファイルが無視されます。

ディレクトリブラックリスト

  • ディレクトリブラックリスト を選択し、ディレクトリを /home/admin/dir1 と構成します。これにより、収集時に /home/admin/dir1 ディレクトリ内のすべてのファイルが無視されます。

  • ディレクトリブラックリスト を選択し、ディレクトリを /home/admin/dir* と構成します。これにより、/home/admin/ ディレクトリ下の dir で始まるすべてのサブディレクトリ内のファイルが無視されます。

  • ディレクトリブラックリスト を選択し、ディレクトリを /home/admin/*/dir と構成します。これにより、/home/admin/ ディレクトリの第 2 レベルにある dir という名前のサブディレクトリ内のすべてのファイルが無視されます。たとえば、/home/admin/a/dir ディレクトリ内のファイルは無視されますが、/home/admin/a/b/dir ディレクトリ内のファイルは収集されます。

ファイルを複数回収集可能にする

デフォルトでは、1 つのログファイルは 1 つの LoongCollector(Logtail)構成にしか一致できません。ファイル内のログを複数回収集する必要がある場合は、ファイルを複数回収集可能にする スイッチを有効にする必要があります。

高度なパラメーター

ファイル入力プラグインに関連するその他のオプションの高度な機能パラメーター。詳細については、「CreateLogtailPipelineConfig」をご参照ください。

プロセッサ設定

パラメーター

説明

ログサンプル

収集対象のログのサンプル。実際のユースケースのログを使用してください。ログサンプルは、ログ処理パラメーターの構成に役立ち、構成を簡素化します。複数のサンプルを追加でき、合計長は 1,500 文字を超えないようにしてください。

[2023-10-01T10:30:01,000] [INFO] java.lang.Exception: exception happened
    at TestPrintStackTrace.f(TestPrintStackTrace.java:3)
    at TestPrintStackTrace.g(TestPrintStackTrace.java:7)
    at TestPrintStackTrace.main(TestPrintStackTrace.java:16)

マルチラインモード

  • マルチラインログの種類:マルチラインログとは、各エントリが連続した行に分散しているログのことです。各ログをコンテンツから区別する必要があります。

    • カスタム: 最初の行を一致させる正規表現 を使用して各ログを区別します。

    • マルチライン JSON: 各 JSON オブジェクトが複数行に展開されます。例:

      {
        "name": "John Doe",
        "age": 30,
        "address": {
          "city": "New York",
          "country": "USA"
        }
      }
  • 分割失敗時の処理方法:

    Exception in thread "main" java.lang.NullPointerException
        at com.example.MyClass.methodA(MyClass.java:12)
        at com.example.MyClass.methodB(MyClass.java:34)
        at com.example.MyClass.main(MyClass.java:½0)

    上記のログコンテンツについて、SLS が分割に失敗した場合:

    • 破棄: このログセグメントを直接破棄します。

    • 1 行単位で保持: 各ログテキスト行を個別のログとして保持し、合計 4 つのログになります。

処理方法

プロセッサ には、ネイティブプロセッサ拡張プロセッサ が含まれます。処理プラグインの詳細については、「ネイティブおよび拡張プロセッサの使用上の注意」をご参照ください。

重要

処理プラグインの使用に関する制限は、コンソールページのプロンプトに従います。

  • Logtail 2.0:

    • ネイティブプロセッサは任意の方法で組み合わせることができます。

    • ネイティブプロセッサと拡張プロセッサは同時に使用できますが、拡張プロセッサはすべてのネイティブプロセッサの後にのみ配置できます。

  • Logtail 2.0 より前のバージョン:

    • ネイティブプロセッサと拡張プロセッサを同時に追加することはサポートされていません。

    • ネイティブプロセッサはテキストログの収集にのみ使用できます。ネイティブプロセッサを使用する場合、以下の要件を満たす必要があります。

      • 最初の処理プラグインは、正規表現解析プラグイン、区切り文字モード解析プラグイン、JSON 解析プラグイン、データ解析(NGINX モード)プラグイン、Apache パターン解析プラグイン、または IIS パターン解析プラグインのいずれかである必要があります。

      • 2 番目から最後の処理プラグインまで、最大で 1 つの時間解析プラグイン、1 つのデータフィルタリングプラグイン、および複数のマスキングプラグインを含めることができます。

    • 解析失敗時に元のフィールドを保持 および 解析成功時に元のフィールドを保持 パラメーターについては、以下の組み合わせのみが有効です。その他の組み合わせは無効です。

      • 正常に解析されたログのみをアップロード:

        image

      • 成功時は解析済みログをアップロードし、失敗時は生ログをアップロード:

        image

      • 解析成功時、解析済みログをアップロードし、さらに生ログフィールドを追加。失敗時は生ログをアップロード。

        たとえば、生ログ "content": "{"request_method":"GET", "request_time":"200"}" が正常に解析された場合、生ログフィールドを追加すると、解析済みログに別のフィールドが追加されます。フィールド名は 元のフィールドの新しい名前(未入力の場合はソースフィールド名がデフォルト)で、フィールド値は生ログ {"request_method":"GET", "request_time":"200"} です。

        image