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

Simple Log Service:ホストからのテキストログの継続的な収集

最終更新日:Aug 27, 2026

アプリケーションログとシステムログは、さまざまなサーバーに分散しているため、検索、モニタリング、分析が困難です。LoongCollector (Logtail) データコレクターを使用して、Elastic Compute Service (ECS) インスタンス、自己管理データセンター、または他のクラウドプロバイダーのホストからテキストログを収集し、Simple Log Service に送信して集中管理と分析を行うことができます。2 つの収集モードがサポートされています:継続的な収集 (リアルタイム増分収集、本番環境での継続的なモニタリングに適しています) と **1 回限りの収集** (静的ファイルのバッチインポート、既存データ移行に適しています)。

収集モードの選択

シナリオ

推奨モード

アプリケーションログが継続的に書き込まれ、リアルタイムの監視とアラートが必要な場合

継続的な収集

アーカイブ済みの既存オブジェクトを 1 回限りインポートする場合

1 回限りの収集

システムまたはデータ移行で既存データをバックフィルする場合

1 回限りの収集

特定の期間の既存ログを一時的に調査する場合

1 回限りの収集

説明

デフォルトでは、LoongCollector は新しい (増分) ログのみを収集します。既存の静的ファイルを収集するには、1 回限りの収集モードを使用する必要があります。

適用範囲

  • サポートされるオペレーティングシステムとアーキテクチャ:

    現在、LoongCollector は Linux システムのみをサポートしています。Windows ホストの場合は、Logtail を使用してください。新しいデータインジェストのシナリオでは、LoongCollector の使用を推奨します。

    LoongCollector は、Alibaba Cloud の Simple Log Service がリリースした新世代のログ収集エージェントであり、Logtail のアップグレード版です。LoongCollector または Logtail のいずれか一方のみをインストールする必要があり、両方をインストールする必要はありません。
  • コンピューティングリソースの要件:

    • CPU:最小 0.4 コア。

    • メモリ:最小 300 MB。

    • 推奨使用量:安定した動作を確保するため、LoongCollector (Logtail) の実際のリソース使用量は、制限の 80% 未満に維持することを推奨します。実際の使用量は、収集速度、監視対象のディレクトリとファイルの数、送信ブロックの程度などの要因によって異なります。

  • 権限要件:

    RAM ユーザーを使用する場合、AliyunLogFullAccessAliyunECSFullAccess の権限を付与する必要があります。 詳細な権限付与については、「付録: カスタムポリシー」をご参照ください。

収集設定のワークフロー

  1. 事前準備プロジェクトと Logstore を作成します。プロジェクトは、異なるサービスのログを分離するためのリソース管理単位であり、Logstore はこれらのログを保存するために使用されるコンテナです。

  2. マシングループの設定 (LoongCollector のインストール)サーバーの種類に基づいて LoongCollector をインストールし、マシングループに追加します。マシングループを使用して、収集ノードを一元管理し、設定を配布し、サーバーの状態を管理できます。

  3. ログ収集ルールの作成と設定

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

    2. ログの処理と構造化ログのフォーマットに基づいて処理ルールを設定します。

      • 複数行ログ:このモードは、Java の例外スタックや Python のトレースバックなど、複数行にまたがるログエントリ用です。行頭正規表現を使用して各ログエントリを識別し、同じログの連続する行を 1 つの完全なエントリにマージできます。

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

    3. フィルタリング処理:収集ブラックリストとコンテンツフィルタリングルールを設定してログコンテンツをフィルタリングし、冗長なデータの転送とストレージを削減します。

    4. ログの分類トピックを使用して、異なるサービス、サーバー、またはパスソースからのログを柔軟に区別します。

  4. クエリと分析の設定:システムはデフォルトでフルテキストインデックスを有効にし、キーワード検索をサポートします。構造化されたフィールドに対して正確なクエリと分析を実行し、検索効率を向上させるために、フィールドインデックスを有効にすることを推奨します。

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

事前準備

ログを収集する前に、ログを管理および保存するためのプロジェクトと Logstore を計画して作成する必要があります。利用可能なリソースがある場合は、このステップをスキップして「マシングループの設定 (LoongCollector のインストール)」に進むことができます。

プロジェクトの作成

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

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

    • リージョン: ログソースに基づいてリージョンを選択します。プロジェクトの作成後、リージョンは変更できません。

    • プロジェクト名: 名前は Alibaba Cloud 内でグローバルに一意である必要があり、プロジェクト作成後は変更できません。

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

Logstore の作成

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

  2. 左側のナビゲーションウィンドウで、imageLogstores を選択し、[+] をクリックします。

  3. [Logstore の作成] ページで、次の主要な設定を完了します:

    • Logstore 名: プロジェクト内で一意の名前を設定します。Logstore の作成後は、名前を変更できません。

    • Logstore タイプ: 仕様の比較に基づいて、標準またはクエリを選択します。

    • 課金モード

      • 使用機能課金 (変更できません): ストレージ、インデックス、読み取り/書き込み操作などのリソースに対して別途課金されます。この方式は、小規模なシナリオ、または機能の使用量が不確実な場合に適しています。

      • 書き込みデータ量課金: 生データ取り込み量に対してのみ課金されます。この方法では、30 日間の無料ストレージと、データ変換や配信などの無料機能が提供されます。ストレージ期間が 30 日に近い、または複雑なデータ処理パイプラインを持つビジネスシナリオに適しています。

    • データ保持時間: ログを保持する日数を設定します (1~3650 日、3650 は永久保持を意味します)。デフォルトは 30 日です。

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

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

事前準備」を完了した後、さまざまな種類のサーバーに LoongCollector をインストールし、マシングループに追加します。

説明

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

ご利用の ECS インスタンスとプロジェクトが同じアカウントまたはリージョンにない場合、またはログソースが自己管理サーバーである場合は、「LoongCollector のインストールと設定」をご参照ください。

操作手順:

  1. image [Logstores] ページで、対象の 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 拡張子を持つすべてのファイルを示します。Node.js アプリケーションの場合、一般的なログパスは /var/log/nodejs/*.log で、/var/log/nodejs 配下のすべての .log ファイルを収集します。

    • Windows:ドライブ文字で始まる必要があります。例:C:\Program Files\Intel\**\*.Log

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


2. ログの処理と構造化

ログ処理ルールを設定して、構造化されていない生のログを、検索可能な構造化データに変換します。これにより、ログのクエリと分析の効率が向上します。ルールを設定する前に、ログサンプルを追加することを推奨します:

Logtail構成 ページの 設定の処理 エリアで、ログサンプルの追加 をクリックして、収集するログの内容を入力します。システムは、サンプルに基づいてログフォーマットを識別し、正規表現と解析ルールの生成を支援します。これにより、構成が簡素化されます。

シナリオ 1:複数行ログの処理 (Java スタックトレースなど)

Java の例外スタックや JSON オブジェクトなどのログは、しばしば複数行にまたがります。デフォルトの収集モードでは、これらは複数の不完全なレコードに分割され、コンテキストが失われます。これを防ぐために、複数行モードを有効にし、行頭正規表現を設定して、同じログの連続する行を 1 つの完全なエントリにマージできます。

例:

未処理の生ログ

デフォルトの収集モードでは、各行が独立したログとして扱われます。スタックトレースが分断され、コンテキストが失われます。

複数行モードを有効にすると、行頭正規表現が完全なログを識別し、完全な意味構造を保持します。

2025-11-13 10:52:20.557 ERROR [app-thread-0] --- java.sql.SQLException: No suitable driver found for jdbc:mysql://db.host:3306/prod_db
    at com.datastore.util.DataProcessor.save(DataProcessor.java:434)
    at io.awesomeapp.util.PaymentGateway.fetchData(PaymentGateway.java:463)
    at org.awesomeapp.util.UserService.processRequest(UserService.java:252)
    at io.datastore.service.DatabaseConnector.fetchData(DatabaseConnector.java:172)
    at org.datastore.service.UserService.fetchData(UserService.java:517)

デフォルトモードでは、このログは 6 つの独立したレコードに分割されます。最初のレコードには java.sql.SQLException エラーメッセージのみが含まれ、残りの 5 つのスタックフレーム (例:at com.datastore.util.DataProcessor.save(...)) は別々のエントリとして保存されます。スタックフレームはクエリを通じて元の例外と関連付けることができず、トラブルシューティングのためにコンテキストを再構築する手作業が必要になります。

複数行モードを有効にすると、java.sql.SQLException: No suitable driver found for jdbc:mysql://db.host:3306/prod_db エラーログと 5 つのスタックフレーム (DataProcessor.saveUserService.fetchData) がログクエリサービスで単一のレコードとして収集されます。メタデータ列には、IP、ホスト名、ログパス、その他のフィールドも表示されます。

手順: Logtail構成 ページの 設定の処理 エリアで、マルチラインモード を有効にします:

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

    • カスタム: 生ログのフォーマットは固定されていません。各ログエントリの先頭行を識別するには、行先頭の正規表現 を設定する必要があります。

      • 行先頭の正規表現:自動的に生成するか、手動で入力することができます。正規表現は、1 行のデータ全体に一致する必要があります。たとえば、上記の例では、一致する正規表現は \[\d+-\d+-\w+:\d+:\d+,\d+]\s\[\w+]\s.* です。

        • 自動生成: [正規表現の自動生成] をクリックします。次に、ログサンプル テキストボックスで、抽出するログの内容を選択し、[正規表現の生成] をクリックします。

          レガシーな Kubernetes 標準出力収集モードは、[ログサンプルの追加] および正規表現の自動生成機能をサポートしていません。正規表現をテストするには、テキストログタイプの Logstore を作成し、その Logstore で正規表現をテストしてから、正規表現を対象の Logstore の Logtail 構成に貼り付けます。

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

    • マルチライン JSON:すべての生ログが標準 JSON フォーマットの場合、Simple Log Service は単一の JSON ログに含まれる改行を自動的に処理します。

  • 分割失敗の処理方法:

    • Discard: 行頭ルールに一致しないテキストセグメントは破棄されます。

    • 単一行を保持: 一致しないテキストは分割され、元の単一行モードで保持されます。

シナリオ 2:構造化ロギング

NGINX アクセスログやアプリケーション出力ログなど、生ログが非構造化または半構造化テキストである場合、直接のクエリや分析は非効率的です。Simple Log Service は、さまざまなデータ解析プラグインを提供しており、異なるフォーマットの生ログを自動的に構造化データに変換できます。これにより、後続の分析、モニタリング、アラート機能のための強固な基盤が提供されます。

例:

未処理の生ログ

構造化解析後のログ

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 : Mozi11a/5.0 (Nindows NT 10.0; Win64; x64) AppleMebKit/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. 例:winston で生成された JSON 形式のログを収集する

    winston はデフォルトで JSON 形式のログを出力します。これらは標準の JSON ログであるため、正規表現を書かずに直接 JSON 解析を使用できます。

    サンプルログ:

    {"level":"info","message":"User logged in","timestamp":"2026-01-01T00:00:00.000Z"}

    プロシージャ: Logtail構成 ページで、入力設定 エリアで、ファイルパス/var/log/nodejs に、ファイル名パターンを app.log に設定します。次に、設定の処理 エリアで、処理プラグインの追加 をクリックし、ネイティブ処理プラグイン > JSON 解析 を選択します。

    • [システム時間を使用] をオフにし、[時間キー]timestamp に、[時間変換フォーマット]%Y-%m-%dT%H:%M:%S.%fZ に設定します。

    • JSON 解析プラグインは、timestamplevelmessage を個別のフィールドとして自動的に抽出します。userId などのカスタムフィールドも、追加の設定なしで解析されます。完全なパラメーターの詳細については、「付録:ネイティブ解析プラグインの説明」の標準 JSON 解析時間解析をご参照ください。

  4. 例:pino で生成されたカスタムフォーマットのログを収集する

    pino や同様のライブラリがカスタムのプレーンテキスト出力を生成するように設定されている場合、ログは標準の JSON ではないため、正規表現解析を使用し、キャプチャグループでフィールドを抽出します。

    サンプルログ:

    2026-01-01T00:00:00.000Z [INFO] User logged in

    プロシージャ: Logtail構成 ページの 入力設定 エリアで、ファイルパス/var/log/nodejs に、ファイル名パターンを pino.log に設定します。 次に、設定の処理 エリアで 処理プラグインの追加 をクリックし、ネイティブ処理プラグイン > 正規表現解析 を選択します。

    • 正規表現:^(\S+) \[(\w+)\] (.*)$

    • フィールド名 (キャプチャグループの順):timelevelmessage[時間キー]time に設定します。完全なパラメーターの詳細については、「付録:ネイティブ解析プラグインの説明」の正規表現解析をご参照ください。

  5. 一般的な設定パラメーター: 以下のパラメーターは複数のデータ解析プラグインに表示され、その機能と使用法は一貫しています。

    • ソースフィールド:解析対象のソースフィールド名を指定します。デフォルトは 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構成 ページの 設定の処理 エリアで

処理プラグインの追加 をクリックし、ネイティブ処理プラグイン > フィルタリング処理 を選択します:

  • Field Name: フィルター対象のログフィールドです。

  • フィールド値:フィルタリングに使用する正規表現です。完全一致のみに対応し、キーワードの部分一致には対応していません。

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

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

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

ディレクトリとファイル名の完全一致およびワイルドカード一致をサポートします。ワイルドカード文字はアスタリスク (*) と疑問符 (?) のみがサポートされています。
  • ファイルパスのブラックリスト:無視するファイルパス。例:

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

    • /home/admin/private*/*_inner.log/home/admin/ ディレクトリ配下の "private" で始まるディレクトリ内の "_inner.log" で終わるファイルを無視します。

  • ファイルのブラックリスト:コレクション中に無視するファイル名です。例:

    • app_inner.logapp_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 のように、複数のアプリケーションやインスタンスが同じフォーマットで異なるパスを持つログを生成する場合、収集されたログのソースを区別するのは困難です。トピックを設定することで、異なるアプリケーション、サービス、またはパスからのログを論理的に区別できます。これにより、統一されたストレージ内で効率的な分類と正確なクエリが可能になります。

手順: グローバル設定 > その他のグローバル設定 > ログテーマのタイプ で、トピックの生成方法を選択します。 次の 3 つのタイプがサポートされています。

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

  • カスタム: フォーマットは customized://<custom_topic_name> です。例: customized://app-login。これは、固定サービス識別子を持つ静的トピックシナリオに適しています。

  • ファイルパス抽出:ログファイルの完全なパスからキー情報を抽出し、ログソースを動的にマークします。これは、複数のユーザーやアプリケーションが同じログファイル名を共有しているが、パスが異なる場合に適しています。複数のユーザーやサービスが異なるトップレベルディレクトリにログを書き込むが、サブパスとファイル名が同じ場合、ファイル名だけではソースを区別できません。例:

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

    この場合、ファイルパス抽出を設定し、正規表現を使用して完全なパスからキー情報を抽出できます。一致した結果は、トピックとして Logstore にアップロードされます。

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

    正規表現を設定すると、システムはキャプチャグループの数と命名に基づいて出力フィールドのフォーマットを自動的に決定します。ルールは次のとおりです:

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

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

    シナリオ

    生成されるフィールド

    正規表現の例

    一致するパスの例

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

    単一のキャプチャグループ (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. 出力設定

デフォルトでは、すべてのログ現在の Logstore に送信され、圧縮方法は lz4 です。同じソースからのログを異なる Logstore に配信するには、以下の設定を構成できます:

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

重要
  • 複数送信先への配信は、LoongCollector 3.0.0 以降でのみ利用可能です。Logtail はこの機能をサポートしていません。

  • 最大 5 つの出力先を設定できます。

  • 複数の出力先を設定した後、この収集設定は現在の Logstore の収集設定リストに表示されなくなります。複数送信先配信設定を表示、変更、または削除するには、「複数送信先配信設定を管理するにはどうすればよいですか?」をご参照ください。

手順: Logtail構成 ページの 出力設定 エリアで。

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

  2. 出力先の追加 をクリックし、以下の構成を完了します:

    • Logstores: 送信先の Logstore を選択します。

    • 圧縮方法lz4zstd をサポートします。

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

      • タグ名: ルーティングに使用されるタグフィールドの名前です。__tag__: プレフィックスを付けずに、__path__ のようにフィールド名を直接入力します。タグフィールドは、次の 2 つのカテゴリに分類されます。

        タグの詳細については、「LoongCollector 収集タグの管理」をご参照ください。
        • エージェント関連:これらのタグは収集エージェント自体に関連しており、プラグインに依存しません。例:__hostname____user_defined_id__

        • 入力プラグイン関連:これらのタグは入力プラグインに依存し、プラグインが関連情報でログをエンリッチします。例:ファイル収集用の __path__、Kubernetes 収集用の _pod_name_ および _container_name_

      • タグ値:ログのタグフィールドの値がこの値と一致する場合、そのログは送信先の Logstore に送信されます。

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

ステップ 3:クエリと分析の設定

ログ処理とプラグインを設定した後、次へ をクリックして クエリと分析の設定 ページに移動します:

  • システムはデフォルトで フルテキストインデックス を有効にし、元のログコンテンツに対してキーワード検索を実行できます。

  • フィールドによる正確なクエリを実行するには、ページにプレビューデータが読み込まれるのを待ってから、自動インデックスの生成 をクリックします。 Simple Log Service は、プレビューデータの最初のエントリに基づいてフィールドインデックスを生成します。

構成が完了したら、次へ をクリックして収集設定を完了します。

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

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

検証チェックリスト

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

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

  3. マシングループのハートビートの確認: リソースグループ > マシングループ ページに移動し、送信先マシングループの名前をクリックし、サーバグループ設定 > サーバグループのステータス エリアで、ハートビート ステータスを確認します。

    • ハートビートが OK の場合、マシングループは Simple Log Service プロジェクトに接続されています。

    • ハートビートが FAIL の場合は、「マシングループのハートビートが FAIL」をご参照のうえ、トラブルシューティングを行ってください。

  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. マシングループのハートビートステータスの確認: リソースグループ > マシングループ ページに移動し、送信先マシングループの名前をクリックし、サーバグループ設定 > サーバグループのステータス エリアで、ハートビート のステータスを確認します。

    • ハートビートが OK の場合、マシングループは Simple Log Service プロジェクトに接続されています。

    • ハートビートが FAIL の場合は、「マシングループのハートビートが FAIL」をご参照のうえ、トラブルシューティングを行ってください。

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

    1. リソースグループ > マシングループ ページに移動し、送信先のマシングループの名前をクリックして サーバグループ設定 ページに移動します。

    2. ページで 設定 を表示します。左側には すべてのLogtail構成 が、右側には LogTail構成を適用 が表示されます。送信先の LoongCollector (Logtail) 収集設定が右側の適用済みエリアに移動されている場合、その構成が送信先のマシングループに正常に適用されたことを意味します。

    3. 送信先の LoongCollector (Logtail) 収集設定が右側の適用済みエリアに移動されていない場合は、変更 をクリックします。 左側の すべてのLogtail構成 リストで、送信先の LoongCollector (Logtail) 設定名を選択し、image をクリックしてそれを右側の適用済みエリアに移動してから、OK をクリックします。


ログ収集エラーまたはフォーマットエラー

トラブルシューティングのアプローチ:この状況は、ネットワーク接続と基本設定が正常であることを示しています。問題は主に、ログコンテンツ解析ルールの不一致です。問題の特定には、具体的なエラーメッセージを確認する必要があります:

  1. Logtail構成 ページで、収集エラーがある LoongCollector (Logtail) 構成の名前をクリックします。(ログ収集エラー) タブで、コスト上の理由 をクリックしてクエリ時間を設定します。

  2. エリアで、エラーログのアラームメトリックを表示し、「データ収集の一般的なエラータイプ」に基づいて対応するソリューションを見つけます。

クォータと制限

制限

制限事項

ログエントリサイズ

デフォルトの制限は 512 KB です。起動パラメーター max_read_buffer_size を使用して調整できますが、8 MB を超えることはできません。詳細については、「Logtail のネットワークタイプ、起動パラメーター、および設定ファイル」をご参照ください。

複数行ログが行頭正規表現によって分割された後も、各ログエントリのサイズ制限は 512 KB です。ログが 512 KB を超える場合、強制的に複数のエントリに分割されて収集されます。たとえば、単一のログエントリが 1025 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 (RFC7159, ECMA-404) を完全にサポートします。{"name": "\xE5\xAD\xA6"} のような非標準 JSON はサポートされていません。

ファイルオープン動作

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 をインストールしている場合は、以下のようにユーザー ID を設定します。この ID は、このサーバーが Simple Log Service プロジェクトが属するアカウントによってアクセスされ、そのログが収集される権限を持つことを示すために使用されます。

アカウント外の ECS インスタンス、自己管理データセンター、または他のクラウドプロバイダーのサーバーからログを収集する場合にのみ、ユーザー ID を設定する必要があります。
  1. Simple Log Service が属する Alibaba Cloud アカウントの ID をコピーします:右上のプロフィール画像にマウスを合わせ、ポップアップタブからアカウント ID を表示してコピーします。

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

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

ECS サーバーから同じアカウントの別リージョンのプロジェクトにログを送信するにはどうすればよいですか?

まだ 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」をご参照のうえ、設定ファイル内のリージョンを Simple Log Service が配置されているリージョンに置き換えます。変更するフィールドは以下のとおりです:

      • primary_region

      • config_servers のリージョン部分

      • data_servers 内の regionendpoint_list のリージョン部分

    • 方法 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 をクリックし、ハートビートのステータスを確認します。 ハートビートが OK になると、サーバーはマシングループの収集設定を自動的に適用します。

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

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

      ディレクトリが存在しない場合は、手動で作成してください。ファイルパスと名前は Simple Log Service によって固定されており、カスタマイズできません。
      • 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 アドレスは、app_info.json ファイルの ip フィールドに記録されます。以下に例を示します。

# cat /usr/local/ilogtail/app_info.json
{
	"UUID" : "xxx",
	"compiler" : "GCC 9.3.1",
	"hostname" : "iZ2zexxx",
	"instance_id" : "xxx_172.26.128.15_1730267282",
	"ip" : "172.26.128.15",
	"logtail_version" : "1.8.7",
	"os" : "Linux; 5.10.134-17.2.al8.x86_64; #1 SMP Fri Aug  9 15:49:42 CST 2024; x86_64",
	"update_time" : "2024-10-30 13:48:02"
}

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

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

同じログファイルを複数の設定で同時に収集するにはどうすればよいですか?

デフォルトでは、データの重複を避けるため、Simple Log Service はテキストログファイルが 1 つの Logtail 構成によってのみ収集されるように制限しています。同じログファイルを複数の構成で同時に収集できるようにするには、ファイルが複数回収集されることを許可する機能を手動で有効にする必要があります。

操作手順:

重要

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

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

  2. 左側のナビゲーションウィンドウで、image [Logstores] を選択し、対象の Logstore を見つけます。

  3. その名前の左側にある image をクリックして Logstore を展開します。

  4. Logtail構成 をクリックします。構成リストで、目的の Logtail 構成を見つけ、「操作」列の Logtail 設定の管理 をクリックします。

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

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

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

最後のログエントリが長い遅延の後に報告されるのはなぜですか?なぜ時々切り捨てられるのですか?

原因分析:ログの切り捨ては通常、ログファイルの末尾に改行がない場合や、例外スタックなどの複数行ログが完全に書き込まれていない場合に発生します。データコレクターはログが終了したかどうかを判断できないため、コンテンツの最後の部分が時期尚早に分割されたり、遅れて報告されたりすることがあります。LoongCollector (Logtail) のバージョンによって処理メカニズムが異なります:

  • 1.8 より前のバージョン:
    ログの最後の行に改行 (キャリッジリターン) がない場合、または複数行のログセグメントが終了していない場合、データコレクターは次の書き込みが出力をトリガーするのを待ちます。これにより、最後のログエントリが長時間送信されずに保持され、新しいログが書き込まれるまで待機することがあります。

  • バージョン 1.8 以降:
    ログがスタックするのを防ぐために、タイムアウトリフレッシュメカニズムが導入されました。未完了のログ行が検出されると、システムはタイマーを開始します。タイムアウト後、現在のコンテンツが自動的に送信され、ログが最終的に収集されることが保証されます。

    • デフォルトのタイムアウト:60 秒 (ほとんどのシナリオで整合性を保証)

    • 必要に応じてこの値を調整できますが、0 に設定することは推奨しません。ログの切り捨てや一部のコンテンツの損失を引き起こす可能性があるためです。

ソリューション:

待機時間を適切に延長して、収集される前に完全なログが書き込まれるようにすることができます:

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

  2. 左側のナビゲーションウィンドウで、image [Logstores] を選択し、対象の Logstore を見つけます。

  3. その名前の左側にある image をクリックして Logstore を展開します。

  4. Logtail構成 をクリックします。構成リストで、送信先の Logtail 構成を見つけ、操作列の Logtail 設定の管理 をクリックします。

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

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

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

      • 単位:秒。

      • 推奨値:≥1 秒。0 に設定することは推奨しません。ログの切り捨てや一部のコンテンツの損失を引き起こす可能性があるためです。

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

LoongCollector (Logtail) が動作中に内部エンドポイントからパブリックエンドポイントに切り替わるのはなぜですか?自動的に元に戻りますか?

動作中、LoongCollector (Logtail) が内部エンドポイントとの通信に異常 (ネットワーク障害や接続タイムアウトなど) を検出した場合、システムは自動的にパブリックエンドポイントに切り替えてデータ転送を行い、ログ収集の継続性と信頼性を確保し、ログのバックログや損失を回避します。

  • LoongCollector:回復後、自動的に内部ネットワークに戻ります。

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

付録:ネイティブ解析プラグインの説明

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

  1. 左側のナビゲーションウィンドウで、image [Logstores] を選択し、対象の 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構成 ページの 設定の処理 エリアで、処理プラグインの追加 をクリックし、ネイティブ処理プラグイン > 正規表現解析 を選択します:

  • 正規表現: ログのマッチングに使用します。自動生成するか、手動で入力できます:

    • 自動生成:

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

      • ログサンプル で、抽出するログの内容を選択します。

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

    • 手動入力:ログ形式に基づいて [正規表現の手動入力] を行います。

    設定が完了したら、[検証] をクリックして、正規表現がログコンテンツを正しく解析できるかテストします。

  • ログ抽出フィールド: 抽出されたログ内容 (Value) に対応するフィールド名 (Key) を設定します。


区切り文字解析

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

例:

未処理の生ログ

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

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 バイト。


標準 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 です。このフィールドは、解析対象の生ログの内容を格納するために使用されます。


ネストされた 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 展開時のフィールド名の区切り文字です。デフォルトはアンダースコア (_) です。

  • JSON のフィールドプレフィックス拡張: JSON 展開後のフィールド名のプレフィックスを指定します。

  • 配列を展開する: これを有効にすると、配列がインデックス付きのキーと値のペアに展開されます。

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

    たとえば、展開されたフィールドの名前を prefix_s_key_k1 から new_field_name に変更するには、後で フィールドの名前変更 プラグインを追加してマッピングを完了できます。

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 設定フィールド:システムは、ログ形式 に基づいて構成を自動的に入力します。

    重要

    自動入力されたコンテンツが、サーバーの Apache 設定ファイル (通常は /etc/apache2/apache2.conf にあります) で定義されている LogFormat と完全に同じであることを必ず確認してください。


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:IIS ログファイル形式。

    • NCSA:NCSA 共通ログ形式。

    • W3C:W3C 拡張ログファイル形式。

  • IIS 設定フィールド: IIS または NCSA を選択すると、Simple Log Service によって 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"

データマスキング

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

例:

未処理の生ログ

マスキング結果

[{'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"}

SLS ログ詳細ビューでは、JSON ログが正しく構造化フィールドに解析されます。各フィールド (clusterlevelmessagetimeuserId) とその値が独立して表示されます。

手順: Logtail構成 ページの 設定の処理 エリアで、処理プラグインの追加 をクリックし、ネイティブ処理プラグイン > 時間解析 を選択します:

  • 元のフィールド:解析前のログの内容を含むソースフィールドです。

  • 時間形式: ログの時間内容に合わせて設定します。

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

付録:アクセスポリシーリファレンス

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

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

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

システムポリシーが最小権限の原則を満たせない場合、カスタム権限ポリシーを作成することで、詳細な権限付与を実現できます。以下は、これらの権限を含むアクセスポリシーの例です:

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

  • Logstore の管理:プロジェクト配下に新しい 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 を操作する権限 (任意)

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

  • ListTemplates

  • StartExecution

  • ListExecutions

  • GetExecutionTemplate

  • ListExecutionLogs

  • ListTaskExecutions

*

システムポリシー

事前定義されたシステムポリシーを使用する場合は、以下の権限を付与することを推奨します:

  • AliyunLogFullAccess:Simple Log Service を管理する権限。

  • 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 で始まるファイルを示します。

コンソールでは、[ファイルパス] フィールドは 2 つの別々の入力ボックスに分割されています:1 つはディレクトリパス用、もう 1 つはファイル名用です。コンソールは 2 つの値の間に自動的に /**/ 区切り文字を挿入するため、手動で ** を入力する必要はありません (また、入力できません)。ディレクトリパスボックスは、* および ? ワイルドカード文字をサポートします。

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

ログディレクトリをモニタリングする最大深度を設定します。これは、ファイルパス のワイルドカード ** が一致できる最大のディレクトリ深度です。0 を指定すると、現在のディレクトリのみがモニタリングされます。

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

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

初期収集サイズ

設定が最初に有効になったときの、ファイルの末尾からの収集開始位置を設定します。初期収集サイズは 1024 KB に設定されています。

  • 初期収集中に、ファイルが 1024 KB 未満の場合、収集はファイルコンテンツの先頭から開始されます。

  • 初期収集中に、ファイルが 1024 KB を超える場合、収集はファイルの末尾から 1024 KB の位置から開始されます。

ここで 最初のコレクションのサイズ を変更できます。値の範囲は 0~10485760 KB です。

収集ブラックリスト

ブラックリストの収集 スイッチをオンにすると、ブラックリストを設定して、収集時に指定したディレクトリまたはファイルを無視できます。コレクションブラックリストは、ファイルパスブラックリスト (完全なファイルパスに一致)、ディレクトリブラックリスト (ディレクトリパスに一致)、およびファイルブラックリスト (ファイル名に一致) の 3 種類をサポートしています。3 種類すべてで、完全一致とワイルドカード一致がサポートされています。ワイルドカード文字としてサポートされているのは、アスタリスク (*) と疑問符 (?) のみです。

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

    例えば、ファイルパス/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 つの LoongCollector (Logtail) 構成にのみ一致します。ファイル内のログを複数回収集する必要がある場合は、ファイルを複数回収集できるようにする スイッチをオンにする必要があります。

詳細パラメーター

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

処理設定パラメーター

設定項目

説明

ログサンプル

収集対象のログのサンプル。必ず実際のシナリオのログを使用してください。ログサンプルは、ログ処理パラメーターの設定を支援し、設定を簡素化します。複数のサンプルを追加でき、合計長は 1500 文字を超えません。

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

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

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

    • 単一行を保持:ログテキストの各行が個別のログとして保持され、合計 4 件のログになります。

処理モード

処理プラグインの組み合わせ (ネイティブ処理プラグイン および 拡張処理プラグイン を含む)。 処理プラグインの詳細については、「ネイティブおよび拡張処理プラグインの使用上の注意」をご参照ください。

重要

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

  • Logtail バージョン 2.0:

    • ネイティブ処理プラグインは任意の方法で組み合わせることができます。

    • ネイティブおよび拡張処理プラグインは同時に使用できますが、拡張処理プラグインはすべてのネイティブ処理プラグインの後にのみ表示できます。

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

    • ネイティブおよび拡張処理プラグインを同時に追加することはサポートされていません。

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

      • 最初の処理プラグインは、正規表現解析、区切り文字モード解析、JSON 解析、Nginx モード解析、Apache モード解析、または IIS モード解析プラグインである必要があります。

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

    • 解析が失敗したときに元のフィールドを残す および 解析が成功したときに元のフィールドを残す パラメーターでは、以下の組み合わせのみが有効です。その他の組み合わせは無効です。

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

        解析が失敗したときに元のフィールドを残す解析が成功したときに元のフィールドを残す の両方の選択を解除します。

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

        解析が失敗したときに元のフィールドを残す を選択し、解析が成功したときに元のフィールドを残す のチェックを外し、[名前変更後の元のフィールド]__raw__ に設定します。

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

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

        解析が失敗したときに元のフィールドを残す解析が成功したときに元のフィールドを残す の両方を選択し、[詳細パラメーター] スイッチをオンにし、{"CopingRawLog":true} を入力します。