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

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

最終更新日:Jun 23, 2026

既存ファイル収集、データ移行、バッチデータ処理などのユースケースでは、従来の増分ログ収集では既存の静的ファイルを一度に収集できません。サーバーテキストログのワンタイム収集機能を使用すると、コンソールまたは API を介して収集設定をマシングループに一括でデプロイできます。これにより、指定された静的ファイルの内容が一度収集され、タスクは自動的に終了します。

適用範囲

  • LoongCollector バージョン 3.3 以降。

  • LoongCollector は Linux および Windows でのホスト収集をサポートしますが、コンテナ収集はサポートしません。

収集設定

  1. 事前準備プロジェクトと Logstore を作成します。プロジェクトは、異なるサービスのログを分離するリソース管理ユニットです。Logstore はログを保存します。

  2. マシングループの設定 (LoongCollector のインストール)サーバータイプに基づいて LoongCollector をインストールし、マシングループに追加します。マシングループを使用して、収集ノードの管理、設定の配布、サーバーの健全性の監視を行います。

  3. ワンタイムファイル収集ルールの作成と設定

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

    2. ログの処理と構造化ログ形式に基づいて処理設定を行います。

      • 複数行ログ:Java スタックトレースや Python トレースバックなど、複数行にまたがるログエントリを処理します。行頭正規表現を使用して各ログエントリの開始を識別し、後続の行を単一のレコードにマージします。

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

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

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

  4. クエリと分析の設定フルテキストインデックスはデフォルトで有効になっており、キーワード検索をサポートします。構造化フィールドの場合、フィールドインデックスを有効にして検索効率を向上させ、正確なクエリと分析をサポートします。

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

前提条件

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

プロジェクトの作成

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

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

    • リージョン:ログソースが配置されているリージョンを選択します。プロジェクト作成後にこの設定は変更できません。

    • プロジェクト名:Alibaba Cloud 内でグローバルに一意なプロジェクト名を入力します。作成後に名前は変更できません。

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

Logstore の作成

  1. プロジェクトリストで、対象のプロジェクトをクリックします。

  2. 左側のナビゲーションウィンドウで、imageログ管理 に移動し、[+] をクリックします。

  3. [Logstore を作成] ページで、次のコアパラメーターを設定します:

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

    • Logstore タイプ:機能比較に基づいて [標準] または [クエリ] を選択します。

    • 課金モード

      • 使用機能に基づく課金:このモードでは、ストレージ、インデックス、読み書き操作など、各リソースに対して個別に課金されます。小規模なシナリオや、機能の使用量が予測できないワークロードに最適です。

      • 書き込みデータ量課金:このモードでは、取り込まれた生データの量に対してのみ課金されます。30 日間の無料ストレージと、データ処理や転送などの無料機能が含まれます。データ保持期間が 30 日に近いワークロードや、複雑なデータ処理パイプラインを持つワークロードに最適です。

    • Data Retention Period:ログを保持する日数を 1 から 3,650 の間で指定します。3,650 は永久保持を意味します。デフォルトは 30 日です。

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

ステップ 1:マシングループの設定

前提条件を完了した後、異なるタイプのサーバーに LoongCollector をインストールし、マシングループに追加します。

説明

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

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

操作手順:

  1. [image Logstores] ページで、対象の Logstore 名の横にある [image] をクリックして展開します。

  2. データのインポート > Logtail 設定 をクリックします。[Logtail ワンタイム設定] タブで、Logtail 設定の追加 をクリックします。

  3. データのインポート ダイアログボックスで、[ワンタイムファイル収集 - ホスト] カードにある 今すぐ統合 をクリックします。

  4. [サーバグループ設定] ページで、次のパラメーターを設定します:

    • 使用シナリオ: ホストシナリオ

    • インストール環境ECS

    • マシングループの選択:対象サーバー上の LoongCollector とマシングループのステータスに基づいてアクションを選択します:

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

      • LoongCollector がインストールされていない場合は、[マシングループの作成 をクリックします:

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

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

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

        説明

        インストールが失敗するか、保留状態のままの場合は、ECS インスタンスがプロジェクトと同じリージョンにあることを確認してください。

      • LoongCollector がすでにインストールされているサーバーを既存のマシングループに追加するには、「既存のマシングループにサーバーを追加するにはどうすればよいですか?」をご参照ください。

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

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

ステップ 2:ワンタイムファイル収集ルールの設定

LoongCollector のインストールとマシングループの設定が完了したら、[Logtail 設定 ページに移動して、ログ収集と処理ルールを定義します。

1. グローバル設定と入力設定

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

グローバル設定

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

    • 小文字、数字、ハイフン (-)、アンダースコア (_) のみを含めることができます。

    • 小文字または数字で開始および終了する必要があります。

  • 実行タイムアウト時間:デフォルトは 600 秒 (10 分) で、タイムアウトは 600 秒から 604,800 秒 (10 分から 7 日) の間で設定できます。収集タスクがこのタイムアウトを超えると、強制的に停止され、残りのデータは収集されません。

    重要

    設定の更新に関する注意:設定を更新すると、その有効期間がリセットされます。タスクの重複実行や予期しないデータレポートを防ぐために、マシングループの範囲が正しく、前回のタスク実行時間が [実行タイムアウト時間 を超えていないことを確認してください。

  • [更新時に強制的に再実行]:デフォルトではオフです。

    • オフ:

      • 実行タイムアウト時間 または 入力設定 以外の収集設定パラメーターを更新すると、システムはタスクを再起動するのではなく、現在の収集の進捗を再開します。これにより、収集が中断されることはありません。

      • 実行タイムアウト時間 または 入力設定 を変更すると、システムは収集タスクを再実行します。

    • オン:収集設定を更新すると、タスクは強制的に再起動します。これにより、すべてのデータが最新の設定に従って処理およびレポートされることが保証されます。注意:更新前に収集されたデータは削除されません。以前に収集されたデータをクリアするには、「Simple Log Service のソフトデリート」をご参照ください。

入力設定

  • タイプ1 回限りのファイル収集 (LoongCollector 3.3 以降のバージョンで利用可能)

  • ファイルパス:ログが収集されるパス。

    説明

    LoongCollector は、設定を取得する際に収集するファイルのリストとそのサイズを決定します。この時点以降に新しく作成されたファイルや既存のファイルに追加された内容は収集しません。

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

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

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


2. ログの処理と構造化

ログ処理ルールを設定して、生の非構造化ログを構造化された検索可能なデータに変換し、クエリと分析の効率を向上させます。まず [ログサンプルを追加] することをお勧めします。

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

シナリオ 1:複数行ログの処理

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

例:

生ログ

デフォルトモード

複数行モード

[2025-11-13T10:52:20,557] [ERROR] 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)

クエリ結果では、各ログエントリに IP アドレス 172.22.243.96、ホスト名 iZk1a6gxbmanfckj0ai8m8Z、ログパス /var/log/java_app_si...n.log などの重複したメタデータが含まれます。content フィールドには、com.weblegacy.controller.DataProcessor.getUserById:81 のようなスタックトレースの 1 行、または java.util.concurrent.TimeoutException: Future task timed out after 30 seconds のようなタイムアウトエラーのみが含まれます。

Simple Log Service コンソールでは、java.sql.SQLException: No suitable driver found for jdbc:mysql://db.host:3306/prod_db エラーと 5 行のスタックトレース (DataProcessor.save:434 から UserService.fetchData:517 まで) を含む Java 例外ログが、単一のレコードとして正しく識別されます。

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

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

    • カスタム:一貫性のない形式のログにはこのオプションを使用します。各ログエントリの開始を識別するために、[行先頭の正規表現 を設定する必要があります。

      • 行先頭の正規表現:この式は自動的に生成するか、手動で入力できます。正規表現はデータの完全な行に一致する必要があります。例えば、サンプルログの式は \[\d+-\d+-\w+:\d+:\d+,\d+]\s\[\w+]\s.* です。

        • 式を自動的に生成するには、[ヘルプ をクリックし、[ログサンプル テキストボックスで目的のログコンテンツを選択し、[正規表現の生成 をクリックします。

        • 式を手動で入力するには、手動で入力 をクリックし、式を入力してから 検証 をクリックします。

    • マルチライン 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. 共通パラメーター:以下のパラメーターは複数のデータプロセッサプラグインで共通しており、同じ目的を果たします。

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

    • 解析失敗時に元のフィールドを保持:推奨。プラグインがログの解析に失敗した場合、例えばフォーマットの不一致により、このオプションは指定された元のフィールドに元のログコンテンツを保持します。

    • 解析成功時に元のフィールドを保持:このオプションは、解析が成功した後でも元のログコンテンツを保持します。


3. ログフィルタリング

DEBUG や INFO エントリなど、価値の低いまたは無関係なログを大量に収集すると、ストレージを浪費し、コストを増加させ、クエリ効率を低下させ、データ漏えいのリスクをもたらします。これらの問題に対処するために、効率的で安全なログ収集のために詳細なフィルタリングルールを使用します。

コンテンツフィルタリング

フィールドの内容に基づいてログをフィルタリングします。例えば、levelWARNING または 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.log:収集時に app_inner.log という名前のすべてのファイルを無視します。

  • ディレクトリのブラックリスト:ディレクトリパスはスラッシュ (/) で終わることはできません。例:

    • /home/admin/dir1/:ディレクトリブラックリストは効果がありません。

    • /home/admin/dir*:収集時に、/home/admin/ のすべてのサブディレクトリで名前が dir で始まるファイルは無視されます。

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

4. ログの分類

/apps/app-A/run.log/apps/app-B/run.log のように、複数のアプリケーションやインスタンスからのログが同じ形式を共有しているがパスが異なる場合、収集後にそのソースを区別するのが困難になることがあります。ログトピックを設定することで、さまざまなアプリケーション、サービス、またはパスからのログを論理的に区別できます。これにより、統一されたストレージ送信先内で効率的な分類と正確なクエリが可能になります。

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

  • マシングループトピック:収集設定を複数のマシングループに適用すると、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

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

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

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

  • フィールドでクエリするには、[プレビューデータ] がロードされたら、[自動インデックスの生成 をクリックします。Log Service は、プレビューの最初のエントリに基づいて フィールドインデックスを生成します。

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

ステップ 4:収集結果の検証

構成が有効になると、ターゲット Logstore のクエリと分析ページで、検索と分析 をクリックしてログデータを表示できます。

よくある質問

ワンタイム収集のライフサイクル

ワンタイム収集設定が作成されると、以下のライフサイクルに従います:

  • 設定配布ウィンドウ:LoongCollector (Logtail) は、作成後 5 分以内に設定をプルできます。5 分が経過すると、新しい LoongCollector (Logtail) インスタンスはこの設定を取得できなくなります。

  • 自動設定削除:Log Service は、作成後 7 日で設定を自動的に削除します。

  • タスク実行:収集タスクは実行タイムアウト内に完了する必要があります。タスクが実行タイムアウトを超えた場合、システムは強制的にタスクを停止します。

ワンタイム収集とレガシーファイル収集の比較

従来の既存ファイル収集方法はもはや推奨されません。既存データをインポートするには、ワンタイムファイル収集を使用してください。手動で設定ファイルを作成する必要があった従来の方法と比較して、ワンタイムファイル収集は設定の効率、信頼性、可観測性を大幅に向上させます。以下の表に詳細な比較を示します:

比較項目

従来の方法

ワンタイムファイル収集

設定方法

各サーバーに local_event.json ファイルを作成します。

コンソールまたは API で設定を作成し、マシングループに一括でデプロイします。

ファイルマッチング

ファイルパスとファイル名を手動で入力します。

input_file と同様の合理化された設定を提供し、ブラックリストフィルタリングをサポートします。

進捗監視

ステータスレポートやローカルログはありません。

チェックポイントを使用して収集の進捗を追跡し、各ファイルの現在のオフセットまでの粒度で管理します。

信頼性

低。リソース制御やチェックポイントメカニズムのない別のプロセスとして実行されます。

高。標準のパイプラインレベルのリソース管理を使用し、他の収集タスクへの影響を避けるためのフロー制御をサポートし、再開可能な転送を可能にします。

柔軟性

低。既存の収集設定を使用する必要があります。

高。収集設定を編成し、タスク中に変更できます。

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

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

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

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

  2. マシングループ識別子を確認します:マシングループを作成する際にユーザー定義 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 とマシングループ識別子の両方が正しい場合は、「LoongCollector (Logtail) のマシングループの問題のトラブルシューティング」でトラブルシューティング手順をご参照ください。

既存のマシングループへのサーバーの追加

新しくデプロイされた ECS インスタンスや自己管理サーバーなどの新しいサーバーを既存のマシングループに追加するには、以下の手順に従ってグループに関連付け、その収集設定を適用します。

重要

ワンタイム収集設定が作成されてから 5 分以上経過した後にサーバーがマシングループに追加された場合、そのサーバーは設定を受信しません。収集設定ページの上部にあるカウントダウンタイマーで残り時間を確認してください。

前提条件

  • 既存のマシングループ。

  • LoongCollector (Logtail) は新しいサーバーにインストールされています。

操作手順

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

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

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

    3. マシングループ設定ページで、マシングループ識別子を表示します。

  2. 識別子のタイプに基づいて、以下のいずれかのアクションを実行します。

    説明

    1 つのマシングループに Linux サーバーと Windows サーバーの両方を含めることはできません。Linux サーバーと Windows サーバーの両方で同じユーザー定義 ID を設定しないでください。1 つのサーバーに複数のユーザー定義 ID を設定するには、改行で区切ります。

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

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

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

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

        ハートビートステータスが FAIL の場合は、「マシングループのハートビートが FAIL になる」でトラブルシューティングの手順をご参照ください。
    • タイプ 2:マシングループ識別子がユーザー定義 ID の場合

      オペレーティングシステムに基づいて、対象のマシングループに一致するユーザー定義 ID 文字列を指定されたファイルに書き込みます:

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

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

付録:ネイティブ処理プラグイン

正規表現解析

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

例:

未処理の生ログ

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

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 配列から要素を抽出し、結果を新しいフィールド json1json2 に保存します。

* | 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 設定] ページの [プロセッサー設定] セクションで、[プロセッサーの追加] をクリックし、[ネイティブプロセッサー] > [データマスキング] を選択します:

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

  • [データマスキング方法]

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

    • [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) プロセスが実行されている環境のタイムゾーンです。