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

Simple Log Service:Logtail の制限

最終更新日:Aug 08, 2025

このトピックでは、サポートされている環境、ログファイル、コンテナー、チェックポイント、Logtail 構成、マシングループ、パフォーマンスメトリック、およびエラー処理の制限を含む、Logtail の制限について説明します。

サポートされている環境

項目

説明

アーキテクチャ

  • Linux Logtail は、x86_64 および ARM64 をサポートしています。

  • Windows Logtail は、x86_32 および x86_64 をサポートしています。

計算リソース

  • CPU:少なくとも 0.1 コアを予約する必要があります。

  • メモリ:サーバーシナリオでは少なくとも 30 MB、Kubernetes シナリオでは 150 MB、Kubernetes Controller/Operator では 100 MB。

実際の使用量は、収集レート、監視対象のディレクトリとファイルの数、および送信ブロックの程度によって異なります。 実際の使用率が制限の 80% 未満であることを確認してください。

オペレーティングシステム

サポートされているオペレーティングシステムについては、「ホストタイプ」をご参照ください。

Kubernetes

  • DaemonSet モードでログを収集する場合、Kubernetes 1.10.0 以降が必要です。 HostToContainer マウント伝播がサポートされている必要があります。

  • カスタムリソース定義 (CRD) を使用してログを収集する場合、Kubernetes 1.16.0 以降が必要であり、alibaba-log-controller コンポーネントがインストールされている必要があります。

    Kubernetes 1.7.0 以降で提供される apiextensions.k8s.io/v1beta1 API も CRD をサポートしています。 ただし、ベータ版の API の安定性は、指定された Kubernetes バージョンによって異なります。

    重要

    すべての Logtail コンポーネントは、system-cluster-critical の優先度を持っています。 クラスタリソースが不足している場合はデプロイしないでください。ノード上の既存のポッドが削除される可能性があります。

Docker

コンテナーからの stdout および stderr の収集には、次の制限があります。

  • Docker 構成ファイル daemon.json"log-driver": "json-file" を追加する必要があります。

  • Centos 8.0 を除く CentOS 7.4 以降では、fs.may_detach_mounts を 1 に設定する必要があります。詳細については、「Bug 1468249」、「Bug 1441737」、および「issue 34538」をご参照ください。

ストレージメディア

File Storage NAS (NAS)Object Storage Service (OSS) などの共有ネットワークストレージメディアの使用は推奨されません。データの切り捨て、コンテンツの不整合、または収集の中断が発生する可能性があります。 エラスティックブロックストレージ (EBS) を使用することをお勧めします。

ログファイルの制限

項目

説明

単一ログのサイズ

デフォルトでは、ログの最大サイズは 512 KB です。 スタートアップパラメータ max_read_buffer_size の値を変更することで、サイズを変更できます。 ログの最大サイズは 8 MB を超えることはできません。 詳細については、「Logtail のスタートアップパラメータを構成する」をご参照ください。

ログの最初の行の先頭と一致する正規表現に基づいて複数行のログが分割される場合、分割後の各ログの最大サイズは依然として 512 KB です。 ログのサイズが 512 KB を超える場合、ログは強制的に複数のログに分割されて収集されます。 たとえば、ログのサイズが 1,025 KB の場合、ログは 512 KB、512 KB、および 1 KB のサイズのログに分割されます。 次に、ログが順番に収集され、不完全なログと見なされます。

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

Logtail は、UTF-8 および GBK でエンコードされたログファイルをサポートしています。 処理パフォーマンスを向上させるために、UTF-8 エンコードのログファイルを使用することをお勧めします。

警告

ログファイルが他の形式でエンコードされている場合、文字化けやデータ損失などの問題が発生する可能性があります。

ログファイルのサイズ

無制限。

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

デフォルトでは、ローテーションキュー内のログファイルの最大数は 20 です。 スタートアップパラメータ logreader_max_rotate_queue_size の値を変更することで、数を変更できます。 詳細については、「Logtail のスタートアップパラメータを構成する」をご参照ください。

xxx.log または xxx.log* 形式でログパスを指定できます。

重要

Logtail インスタンスに 2 つの形式が同時に存在しないようにしてください。 2 つの形式が同時に存在する場合、ログファイル内のログは複数の Logtail 構成を使用して収集される可能性があり、重複データが収集される可能性があります。

20 を超えるログファイルが処理されない場合、新しいログは失われます。 この場合、シャードの書き込みクォータが制限を超えているかどうかを確認し、同時実行関連のパラメータを調整する必要があります。 詳細については、「推奨パラメータ値」をご参照ください。

ログ解析がブロックされた場合のログ収集動作

ログ解析がブロックされると、Logtail はログファイルの記述子をオープンしたままにして、ブロック期間中にログファイルが削除されたり、ログが失われたりするのを防ぎます。

ブロック期間中にログファイルが複数回ローテーションされると、Logtail はログファイルをローテーションキューに入れます。

正規表現

Logtail は、Perl と互換性のある正規表現を使用します。

JSON

RFC 7159 および ECMA-404 で定義されている標準 JSON 形式がサポートされています。 {"name": "\xE5\xAD\xA6"} などの非標準 JSON 形式はサポートされていません。

1 つのログファイルに対する複数の Logtail 構成

デフォルトでは、1 つの Logtail 構成のみを使用して、ログファイルからログを収集できます。 複数の Logtail 構成を使用してログファイルからログを収集する方法の詳細については、「ファイル内のログの複数のコピーを収集するにはどうすればよいですか?」をご参照ください。

重要

複数の Logtail 構成を使用してログファイルからログを収集する場合、読み取り I/O、計算リソース、およびネットワーク I/O がそれに応じて増加します。

ファイルを開く動作

Logtail は、ログを収集するログファイルとローテーションキュー内のログファイルをオープンしたままにして、収集されたデータの整合性を確保します。 ログファイルは、次のシナリオで閉じられます。

  • ログファイルが 5 分以内に変更されない。

  • ログファイルがローテーションされ、ログファイル内のすべてのログが収集される。

  • Logtail 構成が更新される。

ログファイルからログの収集が完了したかどうかに関係なく、また新しいログがまだログファイルに書き込まれているかどうかに関係なく、ログファイルが削除された後、指定された期間内にファイルハンドルを解放するには、force_release_deleted_file_fd_timeout パラメータを設定してタイムアウト期間を指定します。 詳細については、「Logtail のスタートアップパラメータを構成する」をご参照ください。

最初のログ収集動作

Logtail は、増分ログファイルからのみデータを収集します。 ログファイルの変更が初めて検出されたときにログファイルのサイズが 1 MB の制限を超える場合、Logtail は最後の 1 MB からデータを収集します。 ログファイルのサイズが 1 MB を超えない場合、Logtail はログファイルの先頭からデータを収集します。 コンテナーの stdout および stderr の制限は 512 KB です。

Logtail 構成の tail_size_kb パラメータの値を変更することで、制限を変更できます。 詳細については、「Logtail 構成」をご参照ください。

Logtail 構成が配信された後にログファイルが変更されない場合、Logtail はログファイルからデータを収集しません。 履歴ログファイルからログを収集する方法の詳細については、「ログファイルから履歴ログをインポートする」をご参照ください。

ファイルの上書き動作

Logtail は、inode とログファイルの最初の 1,024 バイトのハッシュ値を使用して、ログファイルを識別します。 ログファイルが上書きされ、ログファイルの inode または最初の 1,024 バイトのハッシュ値が変更された場合、ログファイルはログが収集されないログファイルと見なされ、ログはログファイルの先頭から収集されます。 inode またはハッシュ値が変更されない場合、ログファイル内のログは収集されません。

ファイル転送動作

ログファイルが転送され、ログファイルが転送される前に一致する Logtail 構成を使用してログファイルからログが収集されない場合、ログファイルはログが収集されないログファイルと見なされ、ログはログファイルの先頭から収集されます。 このシナリオでは、一致する Logtail 構成を使用してログファイルからログを収集する場合、ログファイル内のログは収集されません。

ファイル収集履歴

Logtail は、履歴ログファイルの履歴収集の進捗状況をメモリに保持し、ログファイルが変更された後に増分データのみが収集されるようにします。 履歴ログファイルの履歴収集の進捗状況が指定された期間よりも長く保持され、新しいデータがログファイルに書き込まれると、重複データが収集されます。

  • デフォルトでは、履歴ログファイルの履歴収集の進捗状況は最大 1 か月間保持されます。

  • 同じディレクトリ内の履歴ログファイルの数が 5,000 を超える場合、前週のログファイルの履歴収集の進捗状況が保持されます。

  • 同じディレクトリ内の履歴ログファイルの数が 10,000 を超える場合、前日のログファイルの履歴収集の進捗状況が保持されます。

非標準テキストログ

\0 を含むログ行の場合、2.1.10 より大きいバージョンまたは 3.0.12 より大きいバージョンは、行の途中の \0 文字のみを保持し、先頭と末尾の \0 文字を破棄します。 他のバージョンでは、最初の \0 文字で行が切り捨てられるか、行全体が保持される場合があります。 アップグレードをお勧めします。 その他のエスケープ文字 (ASCII カラーコードなど) または印刷不可文字の場合、Logtail は文字を直接送信します。

コンテナーの制限

説明

Logtail を使用してコンテナーログを収集する場合、ログファイルの制限とコンテナーの制限の両方が適用されます。

項目

説明

最初のログ収集動作

コンテナーの stdout および stderr を収集する場合、ログファイルの変更が初めて検出されたときにログファイルのサイズが 512 KB の制限を超えると、Logtail は最後の 512 KB からデータを収集します。 ログファイルのサイズが 512 KB を超えない場合、Logtail はログファイルの先頭からデータを収集します。 Logtail 構成の StartLogMaxOffset パラメータの値を変更することで、制限を変更できます。 詳細については、「Simple Log Service コンソールを使用して DaemonSet モードでコンテナーの stdout および stderr を収集する」をご参照ください。

シンボリックリンク

コンテナーファイルからログを収集する場合、ファイルとファイルのディレクトリはシンボリックリンクにすることはできません。

コンテナーのライフサイクル

デフォルトでは、Logtail は、コンテナーのライフサイクルが 10 秒以上続く場合にのみ、コンテナーからログを収集できます。 コンテナーファイルからログを収集する場合、Logtail は、収集パフォーマンスを確保するために、3 分間のコンテナーファイルのログ更新数を 10 に制限します。 スタートアップパラメータ docker_config_update_interval および max_docker_config_update_times の値を変更することで、設定を変更できます。 詳細については、「Logtail のスタートアップパラメータを構成する」をご参照ください。

stdout および stderr のファイルローテーション

コンテナーの stdout および stderr ファイルは、Docker または kubelet によってローテーションされます。 デフォルトでは、kubelet によってローテーションされる stdout および stderr ファイルのサイズは 10 MB で、Docker によってローテーションされる stdout および stderr ファイルのサイズは 100 MB です。 コンテナーの stdout および stderr の出力レートが 10 MB/s を超える場合、stdout および stderr ファイルはより高速でローテーションされます。 この場合、コンテナーファイルからログを収集するか、containerLogMaxSize パラメータの値を変更して、ログの損失を防ぐことをお勧めします。

stdout および stderr のロギングドライバー

Docker をコンテナーランタイムとして使用する場合は、Docker 構成ファイル daemon.json"log-driver": "json-file" を追加する必要があります。

チェックポイントの制限

項目

説明

チェックポイントのタイムアウト期間

デフォルトのシナリオでは、ログファイルが 30 日以内に変更されない場合、ログファイルのチェックポイントは自動的に削除されます。 Logtail 構成で preserve:false が構成されており、ログファイルが 30 分以内に変更されない場合、ログファイルのチェックポイントは削除されます。

チェックポイントのストレージポリシー

チェックポイントは 15 分間隔で、および Logtail が終了した時点で自動的に保存されます。 スタートアップパラメータ check_point_dump_interval の値を変更することで、チェックポイントのストレージポリシーを変更できます。 詳細については、「Logtail のスタートアップパラメータを構成する」をご参照ください。

チェックポイントのストレージパス

デフォルトでは、チェックポイントは /tmp/logtail_checkpoint ディレクトリに保存されます。 スタートアップパラメータ check_point_filename の値を変更することで、チェックポイントのストレージパスを変更できます。 詳細については、「Logtail のスタートアップパラメータを構成する」をご参照ください。

ダウンタイム中の処理

チェックポイントは定期的に保存されます。 ダウンタイムが発生した場合、データ収集は最後に完全に保存されたチェックポイントから再開されます。 これにより、重複データ収集が発生する可能性があります。 チェックポイントのストレージポリシーを変更して、重複データ収集を防ぐことができます。

Logtail 構成の制限

項目

説明

構成の更新が有効になるまでの遅延

Simple Log Service コンソールを使用するか、API 操作を呼び出すことによって実行される Logtail 構成の更新が有効になるまで約 30 秒かかります。

Logtail 構成の動的読み込み

Logtail 構成は動的に読み込むことができます。 Logtail 構成の更新は、他の Logtail 構成には影響しません。

単一の Logtail インスタンスに動的に読み込むことができる Logtail 構成の数

無制限。 ただし、1 つのサーバーに読み込む Logtail 構成は 100 以下にすることをお勧めします。

サードパーティのフラッシャーを使用したログ生成

Logtail 構成が Simple Log Service コンソールで、または API 操作を呼び出すことによって作成された場合、Logtail 構成はログストアに関連付けられます。 したがって、プラグイン構成でサードパーティのフラッシャーを構成すると、Logtail はデータのコピーをログストアに自動的に送信します。

複数アカウントおよびクロスアカウント

複数アカウントおよびクロスアカウントのログ収集がサポートされています。 詳細については、「ユーザー識別子を構成する」および「Logtail を使用して Alibaba Cloud アカウント間でコンテナーログを収集する」をご参照ください。

複数リージョン

デフォルトでは、複数リージョンのログ収集はサポートされていません。 複数のリージョンからログを収集するには、チケットを送信してください。

グローバルアクセラレーション

グローバルアクセラレーションがサポートされています。 Simple Log Service 側でグローバルアクセラレーションを有効にした後、Logtail 側でグローバルアクセラレーションを構成する必要があります。 詳細については、「ログ収集の高速化」をご参照ください。

マシングループの制限

項目

説明

マシンの数

無制限。 ただし、構成するマシンは 100,000 台以下にすることをお勧めします。 そうしないと、ハートビートを取得できません。

適用できる Logtail 構成の数

無制限。 ただし、適用する Logtail 構成は 1,000 以下にすることをお勧めします。

パフォーマンスメトリックの制限

項目

説明

ログ処理のスループット

生のログのデフォルトの転送速度は 20 MB/s に制限されています。 ログデータは、エンコードおよび圧縮された後にアップロードされます。 圧縮率は 5:1 から 10:1 の範囲です。 転送速度がデフォルト値よりも速い場合、ログが失われる可能性があります。 スタートアップパラメータ max_bytes_per_sec の値を変更することで、転送速度を変更できます。 詳細については、「Logtail のスタートアップパラメータを構成する」をご参照ください。

ログの最大処理速度

シングルコア対応の処理速度:

  • シンプルモードでは、最大処理速度は 100 MB/s です。

  • 完全正規表現モードでは、最大処理速度は 20 MB/s です。 これはデフォルト値です。 実際の処理速度は、正規表現の複雑さによって異なります。

  • デリミタモードでは、最大処理速度は 40 MB/s です。

  • JSON モードでは、最大処理速度は 30 MB/s です。

スタートアップパラメータ process_thread_count を構成して、複数のスレッドを構成できます。 これにより、パフォーマンスが 150% から 300% 向上します。

監視対象のディレクトリとファイルの最大数

監視対象のディレクトリとファイルの最大数は、mem_usage_limit パラメータに関連しています。 mem_usage_limit パラメータのデフォルト値は、ホスト環境では 384 MB、コンテナー環境では 2,048 MB です。 次のカテゴリが使用されます。

  • 監視対象ディレクトリの最大数 = (mem_usage_limit の値/100) × 5,000。 ディレクトリには、Logtail 構成で指定されたディレクトリのブラックリストは含まれません。

  • 監視対象のディレクトリとファイルの最大数 = (mem_usage_limit の値/100) × 50,000。 ディレクトリには、Logtail 構成で指定されたディレクトリのブラックリストは含まれません。 ファイルには、Logtail 構成と一致しないファイルが含まれます。

  • 単一の Logtail 構成によって監視されるディレクトリとファイルの数 = (mem_usage_limit の値/100) × 5,000。 ディレクトリには、Logtail 構成で指定されたディレクトリのブラックリストは含まれません。 ファイルには、Logtail 構成と一致しないファイルが含まれます。

  • 単一のディレクトリ内の監視対象のサブディレクトリとファイルの数 = (mem_usage_limit の値/100) × 5,000。 サブディレクトリには、Logtail 構成で指定されたディレクトリのブラックリストが含まれます。 ファイルには、Logtail 構成と一致しないファイルが含まれます。

上記のカテゴリのいずれかの数が上限に達した場合、Logtail はそのカテゴリに対応する残りのディレクトリとファイルを監視しなくなります。 Logtail 構成で監視対象ディレクトリの範囲を絞り込むか、スタートアップパラメータ mem_usage_limit の値を変更して、監視対象ディレクトリ数を増やすことができます。 mem_usage_limit パラメータの詳細については、「Logtail のスタートアップパラメータを構成する」をご参照ください。

Linux サーバーにインストールされている Logtail では、inotify メカニズムを使用してディレクトリを監視できます。 これにより、ログ収集の遅延を短縮できます。 inotify メカニズムを使用して監視できるディレクトリ (サブディレクトリを含む) の最大数は 3,000 です。

過剰なリソース消費を処理するために使用されるポリシー

Logtail によって占有されるリソース量が 5 分間上限を超えている場合、Logtail は強制的に再起動されます。 再起動により、データの損失または重複が発生する可能性があります。

マルチテナント分離

Logtail 構成は分離されています。 Logtail 構成でエラーが発生しても、他の Logtail 構成は影響を受けません。

ログ収集の遅延

通常のケースでは、Logtail はログがディスクに書き込まれてから 1 秒未満でログを収集できます。

ログアップロードポリシー

Logtail がログをアップロードする前に、Logtail は同じファイル内のログを集約します。 Logtail は、ログの数が 4,000 を超えた場合、ログの合計サイズが 512 KB を超えた場合、またはログ収集時間が 3 秒を超えた場合に、ログのアップロードを開始します。

エラー処理の制限

項目

説明

ネットワークエラー処理

ネットワークエラーが発生した場合、Logtail はデータ収集タスクを自動的に再試行し、再試行間隔を調整します。 極端なケースでは、次の問題により、ログが繰り返し収集されたり破棄されたりする可能性があります。

  • Logtail によって送信されたパケットが Simple Log Service によって受信され、Simple Log Service からのパケット応答が 15 秒以内に Logtail によって受信されない。 この場合、Logtail はリクエストを再送信し、重複データが収集されます。

  • ネットワークリンクエラーにより、Logtail が受信したパケットが破損し、エラーが 5 回連続して発生する。 この場合、Logtail は関連データを破棄します。

しきい値を超えるイベントの処理

データ転送速度がログストアの上限を超えると、Logtail はログ収集をブロックし、データ収集タスクを自動的に再試行します。 ログストアのシャード数を増やすことをお勧めします。

Logtail の時間エラー

リクエスト時間と応答時間の時間差が 15 分を超えているために再試行が 5 回失敗した場合、Logtail は関連データを破棄します。 最大 5 回の再試行が許可されます。 Logtail が存在するマシンの時間を修正することをお勧めします。

指定されたプロジェクトまたはログストアが存在しない

再試行が 5 回失敗した場合、Logtail は関連データを破棄します。 最大 5 回の再試行が許可されます。 このエラーは、API 操作を呼び出すことによってログストアを削除した場合に発生する可能性があります。 API 操作を呼び出すことによって、Logtail 構成を削除し、Logtail 構成をマシングループから関連付け解除することをお勧めします。

認証に失敗しました

再試行が 5 回失敗した場合、Logtail は関連データを破棄します。 最大 5 回の再試行が許可されます。 このエラーは、次のシナリオで発生する可能性があります。

  • Logtail の起動時にエラーが発生した場合、原因は、不安定なネットワーク経由で認証情報を取得できないことです。

  • エラーが繰り返し発生する場合、原因は、マシンが HTTPS 経由で Simple Log Service エンドポイントに接続できないときに認証情報を取得できないことです。

その他の不明なエラー

再試行が 5 回失敗した場合、Logtail は関連データを破棄します。 最大 5 回の再試行が許可されます。

タイムアウト前の最大再試行期間

データの転送に失敗し、問題が 6 時間以上続く場合、Logtail はデータを破棄します。

ステータスのセルフチェック

例外が発生した場合、Logtail は再起動します。 たとえば、アプリケーションが予期せず終了した場合、またはリソース使用量が指定された上限を超えた場合、Logtail は再起動します。

監視対象のフォルダとファイルの最大数を超えています

Logtail は収集パスをタイムリーかつ正確に特定できないため、データ損失が発生する可能性があります。

収集が大幅に遅延

ログ収集がログ生成に遅れをとっています。 未処理のログが 20 を超えると、データ損失が発生する可能性があります。