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

Simple Log Service:ホストのテキストログを一括で収集する

最終更新日:Mar 26, 2026

既存データの履歴ファイル収集、データ移行、バッチ処理などのユースケースでは、従来の増分ログ収集方式は、既存の静的ファイルを一度限り収集する目的には適していません。「ホストテキスト一括収集」機能では、コンソールまたは API を通じて、マシングループに収集設定を一括展開できます。この機能によって作成されたタスクは、指定した静的ファイルの内容を 1 回だけ収集し、その後自動的に終了します。

適用範囲

  • LoongCollector バージョン 3.3 以降。

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

収集設定のワークフロー

  1. 事前準備: Project と Logstore を作成します。Project は、異なるサービスのログを分離するためのリソース管理単位であり、Logstore はログを格納する場所です。

  2. マシングループの構成(LoongCollector のインストール): サーバータイプに応じて LoongCollector をインストールし、マシングループに追加します。マシングループを使用すると、収集ノードの管理、構成の配布、サーバーの健全性モニタリングが可能です。

  3. 一括ファイル収集ルールの作成と構成:

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

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

      • 複数行ログ: Java スタックトレースや Python トレースバックなど、複数行にわたるログエントリを処理する機能です。各行の先頭にマッチする正規表現を指定することで、各ログエントリの開始位置を識別し、後続の行を 1 つのレコードとして結合できます。

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

    3. ログフィルター: 収集ブロックリストおよびコンテンツフィルタールールを構成して、関連性のあるログコンテンツのみを抽出し、冗長なデータ転送およびストレージを削減します。

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

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

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

前提条件

ログ収集を実行する前に、Project および LogStore を作成します。すでに作成済みの場合は、この手順をスキップして「マシングループの構成(LoongCollector のインストール)」に進んでください。

Project の作成

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

  2. Project の作成 をクリックし、以下の設定を構成します。

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

    • Project 名: Alibaba Cloud 内でグローバルに一意となる Project 名を入力します。作成後に名前を変更することはできません。

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

LogStore の作成

  1. Project リストから対象の Project をクリックします。

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

  3. LogStore の作成ページで、以下の設定を構成します。

    • LogStore 名: Project 内で一意となる名前を入力します。作成後に名前を変更することはできません。

    • LogStore の種類: 機能要件に応じて、標準またはクエリを選択します。

    • 課金方法:

      • 機能別課金: ストレージ、インデックス、読み書き操作などのリソースごとに個別に課金されます。小規模なシナリオや機能使用量が不確かな場合に最適です。

      • 取り込みデータ量課金: 取り込まれた生データのボリュームのみに対して課金されます。30 日間の無料ストレージおよびデータ処理・転送などの無料機能が含まれます。保持期間が約 30 日間であるビジネスシナリオや、複雑なデータ処理パイプラインがある場合に最適です。

    • データ保持期間: ログを保持する日数を 1~3,650 日の範囲で指定します。3,650 を指定すると永久保持となります。デフォルトは 30 日です。

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

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

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

説明

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

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

操作手順

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

  2. データインポート > Logtail 構成 をクリックします。一括 Logtail 構成 タブで、Logtail 構成の追加 をクリックします。

  3. クイックデータインポート ダイアログボックスで、一括ファイル収集 - ホスト カードの 今すぐインポート をクリックします。

  4. マシングループ構成 ページで、以下のパラメーターを構成します。

    • ユースケース: ホストシナリオ

    • インストール環境: ECS

    • マシングループの構成: 次の操作は、LoongCollector がインストール済みか、およびマシングループが既に存在するかによって異なります。

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

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

        これらの手順では、LoongCollector の自動インストールおよびマシングループの自動作成を行います。
        1. システムが、Project と同じリージョンにある ECS インスタンスを自動的に一覧表示します。ログを収集する対象のインスタンスを 1 台以上選択します。

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

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

        説明

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

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

  5. ハートビートステータスの確認: 次へ をクリックします。マシングループハートビートステータス セクションが表示されます。ハートビート ステータスが OK であることを確認し、接続が成功していることを確認します。その後、次へ をクリックして Logtail 構成に進みます。

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

ステップ 2: 一括ファイル収集の構成

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

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

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

グローバル設定:

  • 構成名: 収集設定のカスタム名を入力します。Project 内で一意である必要があります。作成後に変更することはできません。命名規則は以下のとおりです。

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

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

  • 実行タイムアウト: デフォルトは 600 秒(10 分)で、有効範囲は 600~604,800 秒(10 分~7 日)です。タスクがこのタイムアウトを超えると、システムがタスクを強制停止し、残りのデータは収集されません。

    重要

    重要: 構成を更新すると、その有効期間がリセットされます。重複したタスクや予期しないデータ報告を回避するため、マシングループの範囲が正しいこと、および以前のタスク実行が指定された 実行タイムアウト を超えていないことを確認してください。

  • 構成更新時にタスクを強制再実行 : デフォルトでは無効になっています。

    • 無効:

      • 実行タイムアウト または 入力設定 以外の収集パラメーターを更新した場合、システムは現在の収集進行状況を再開し、タスクを再起動しません。これにより、収集の継続性が保証されます。

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

    • 有効: 収集構成を更新すると、収集タスクが最初から再実行されます。これにより、すべてのデータが新しい設定で処理および報告されることを保証します。注: 以前に収集されたデータは削除されません。以前に収集されたデータをクリアするには、「Log Service の論理削除」をご参照ください。

入力設定:

  • タイプ: 一括ファイル収集(LoongCollector 3.3 以降で利用可能)

  • ファイルパス: ログを収集するパスです。

    説明

    LoongCollector は、構成を取得する際に、収集対象のファイル一覧およびそのサイズを決定します。この時点以降に新しく作成されたファイルや追加されたコンテンツは収集されません。

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

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

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


2. ログ処理および解析

生の非構造化ログを構造化された検索可能なデータに変換するログ処理ルールを構成し、クエリおよび分析の効率を向上させます。まず「ログサンプルの追加」を行うことを推奨します。

Logtail 構成 ページの プロセッサ構成 セクションで、ログサンプルの追加 をクリックし、ログコンテンツを入力します。システムはこのサンプルを使用してログ形式を特定し、正規表現および解析ルールの生成を支援することで、構成プロセスを簡素化します。

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

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

例:

未処理の生ログ

デフォルトモードでは、コレクターが各行を個別のログとして扱うため、スタックトレースが分割され、コンテキストが失われます。

複数行モードを有効化すると、各行の先頭にマッチする正規表現によって完全なログエントリが識別され、完全な意味構造が保持されます。

image

image

image

操作手順: プロセッサ構成 セクションの Logtail 構成 ページで、複数行モード を有効化します。

  • タイプ: カスタム または 複数行 JSON を選択します。

    • カスタム: フォーマットが固定されていないログに使用します。各ログエントリの開始位置を識別するために、各行の先頭にマッチする正規表現 を構成する必要があります。

      • 各行の先頭にマッチする正規表現: この式を自動生成するか、手動で入力できます。正規表現は、完全な 1 行のデータにマッチする必要があります。例として、サンプルログに対する式は \[\d+-\d+-\w+:\d+:\d+,\d+]\s\[\w+]\s.* です。

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

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

    • 複数行 JSON: 生ログが標準 JSON 形式の場合、Log Service が単一の JSON ログエントリ内の改行を自動的に処理します。

  • 分割失敗時のアクション:

    • 破棄: テキストのブロックが各行の先頭にマッチするルールに一致しない場合、そのブロックは破棄されます。

    • 単一行として保持: ルールに一致しないテキストは、個別の単一行ログとして保持されます。

シナリオ 2: 構造化ログの処理

NGINX アクセスログやアプリケーション出力などの非構造化または半構造化テキストをクエリおよび分析することは、効率が悪くなる可能性があります。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 レベルなどの低価値または関連性の低いログを無差別に大量に収集すると、ストレージリソースの浪費、コストの増加、クエリパフォーマンスの低下、データ漏えいのリスクなどが発生します。これらの課題に対処するため、細かい粒度でのフィルタリングを活用して、効率的かつ安全なログ収集を実現できます。

コンテンツによるフィルター

フィールドのコンテンツに基づいてログをフィルターし、レベルが 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)、収集後にそのソースを区別することが困難になります。ログトピックを構成することで、さまざまなアプリケーション、サービス、またはパスからのログを論理的に区別し、統一されたストレージ先において効率的な分類および正確なクエリを実現できます。

操作手順: グローバル設定 > その他のグローバル設定 > ログトピックの種類 セクションで、トピックの生成方法を選択します。以下の 3 つの方法から選択できます。

  • マシングループトピック: 収集構成を複数のマシングループに適用する場合、LoongCollector は自動的にサーバーのマシングループ名を __topic__ フィールドの値として使用します。これは、ホストごとにログを分類したい場合に便利です。

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

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

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

    このような場合、ファイルパスベースの抽出 を構成し、完全なパスから重要な情報を抽出する正規表現を使用できます。Log Service は、マッチした結果を Logstore にログトピックとしてアップロードします。

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

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

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

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

    使用例

    生成されるフィールド

    正規表現の例

    マッチしたパスのサンプル

    生成されるフィールドのサンプル

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

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

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

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

    /logs/userA/app.log

    __topic__:userA

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

    ソースを区別するために複数の次元が必要だが、意味的なラベルは不要な場合。

    キーが __topic_{i}__ となるタグフィールドを生成します。ここで {i} はキャプチャグループのインデックスです。

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

    /logs/userA/svcA/app.log

    __tag__:__topic_1__:userA;

    __tag__:__topic_2__:svcA

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

    ソースを区別するために複数の次元が必要で、クエリおよび分析が容易になるよう明確で意味のあるフィールド名を望む場合。

    キーが指定されたキャプチャグループの name となるタグフィールドを生成します。

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

    /logs/userA/svcA/app.log

    __tag__:user:userA;

    __tag__:service:svcA

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

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

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

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

構成を完了した後、次へ をクリックして収集プロセスを完了します。

ステップ 4: 収集結果の確認

構成が適用された後、対象の Logstore のクエリおよび分析ページで クエリ / 分析 をクリックして、収集されたログデータを表示します。

よくある質問

一括収集構成のライフサイクル

一括収集構成が作成された後、以下のライフサイクルに従います。

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

  • 構成の自動削除: 構成は作成後 7 日で自動的に削除されます。

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

一括収集 vs. レガシ収集

レガシ履歴ファイル収集 方式は、推奨されません。履歴データのインポートには、新しい一括ファイル収集機能をご利用ください。手動で構成ファイルを作成する必要があった従来の方式と比較して、新しい機能は構成の効率性、信頼性、可観測性を大幅に向上させます。以下の表に詳細な比較を示します。

項目

レガシ方式

一括収集

構成方法

各ホストで個別に local_event.json ファイルを作成します。

コンソールまたは API で構成を作成し、それをマシングループに一括展開します。

ファイルマッチング

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

input_file モードと同様の簡易構成を提供し、ブラックリストフィルターをサポートします。

進行状況のモニタリング

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

チェックポイントを使用して収集進行状況を追跡し、各ファイルの現在のオフセット単位で粒度を確保します。

信頼性

低。リソース制御もチェックポイント機構もない独立したプロセスとして実行されます。

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

柔軟性

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

高。収集構成をカスタマイズでき、タスク実行中に構成を変更することもできます。

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

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

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

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

  2. マシングループ識別子を確認します。マシングループ作成時にユーザー定義識別子を使用した場合、指定されたディレクトリに user_defined_id という名前のファイルが存在するかどうかを確認します。存在する場合は、その内容がマシングループに構成されたユーザー定義識別子と一致していることを確認します。

    • Linux:

      # ユーザー定義識別子を構成します。ディレクトリが存在しない場合は、手動で作成します。
      echo "user-defined-1" > /etc/ilogtail/user_defined_id
    • Windows: user_defined_id という名前のファイルを C:\LogtailData ディレクトリに作成し、ユーザー定義識別子を書き込みます。ディレクトリが存在しない場合は、手動で作成します。

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

サーバーをマシングループに追加

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

重要

一括収集構成の作成後 5 分以上経過してからサーバーをマシングループに追加した場合、そのサーバーは構成を受信できません。収集構成ページの上部に表示されるカウントダウンタイマーで、残り時間を確認できます。

前提条件

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

  • 新しいサーバーに LoongCollector が「インストール」されています。

操作手順

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

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

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

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

  2. 識別子の種類に応じて、以下のいずれかの操作を行います。

    説明

    1 つのマシングループには、Linux サーバーと Windows サーバーを混在させることはできません。Linux サーバーと Windows サーバーの両方に同じユーザー定義識別子を構成しないでください。1 台のサーバーに複数のユーザー定義識別子を構成する場合は、改行で区切ってください。

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

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

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

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

        ハートビートステータスが FAIL の場合、「マシングループのハートビートステータスが FAIL」を参照してさらにトラブルシューティングを行ってください。
    • タイプ 2: マシングループ識別子がユーザー定義識別子の場合。

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

      ディレクトリが存在しない場合は、手動で作成します。ファイルパスおよびファイル名は固定されており、カスタマイズできません。
      • 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 配列から要素を抽出し、新しいフィールド 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 Internet Information Services のログファイルフォーマットです。

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