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

Simple Log Service:Kubernetes の stdout および stderr(新バージョン)

最終更新日:Jun 12, 2025

Logtail 構成の入力構成セクションでパラメーターを構成して、コンテナーの stdout および stderr を収集できます。 このトピックでは、Logtail 構成を作成し、それを使用してコンテナーの stdout および stderr を収集する方法について説明します(新バージョン)。

特徴

Logtail は、コンテナーの stdout および stderr を収集し、コンテナーのメタデータと共に Simple Log Service にアップロードできます。 Logtail には次の機能があります。

  • stdout および stderr を収集します。

  • コンテナーラベルのホワイトリストを使用して、ログを収集するコンテナーを指定します。

  • コンテナーラベルのブラックリストを使用して、ログを収集しないコンテナーを指定します。

  • 環境変数のホワイトリストを使用して、ログを収集するコンテナーを指定します。

  • 環境変数のブラックリストを使用して、ログを収集しないコンテナーを指定します。

  • 複数行のログを収集します。 たとえば、Logtail は Java スタックログを収集できます。

  • 収集されたコンテナーログと共にアップロードする必要があるコンテナーメタデータを自動的に関連付けます。 メタデータには、コンテナー名、イメージ名、ポッド名、名前空間、環境変数が含まれます。

  • コンテナーが Kubernetes クラスタで実行されている場合、Logtail は次の機能もサポートします。

    • Kubernetes 名前空間、ポッド名、コンテナー名を使用して、ログを収集するコンテナーを指定します。

    • Kubernetes ラベルのホワイトリストを使用して、ログを収集するコンテナーを指定します。

    • Kubernetes ラベルのブラックリストを使用して、ログを収集しないコンテナーを指定します。

    • 収集されたコンテナーログと共にアップロードする必要がある Kubernetes ラベルを自動的に関連付けます。

制限

  • stdout および stderr 収集プラグインの新バージョンは、Logtail が V2.1.5 以降で Linux 上で実行されている場合にのみ使用できます。 サーバーからコンテナーの stdout および stderr を収集するために Logtail を使用する場合は、このプラグインは使用できません。 Logtail のバージョンとバージョンアップデートの詳細については、「ACK クラスタに Logtail コンポーネントをインストールする」および「自己管理型 Kubernetes クラスタに Logtail コンポーネントをインストールする」をご参照ください。

  • Logtail は、Docker または containerd エンジンを使用するコンテナーからのみデータを収集できます。

    • Docker: Logtail は /run/docker.sock ディレクトリにある Docker エンジンにアクセスします。 ディレクトリが存在し、Logtail にディレクトリへのアクセス許可があることを確認してください。

    • containerd: Logtail は /run/containerd/containerd.sock ディレクトリにある containerd エンジンにアクセスします。 ディレクトリが存在し、Logtail にディレクトリへのアクセス許可があることを確認してください。

  • Logtail が読み取ることができるログの最大サイズには制限があります。 単位: バイト。 デフォルト値: 524288。 デフォルト値 524288 は、最大サイズが 512 KB であることを示します。 最大値: 8388608。 値 8388608 は、最大サイズが 8 MB であることを示します。 ログのサイズが 524,288 バイトを超える場合は、Logtail コンテナーに max_read_buffer_size 環境変数を追加して、変数を変更できます。

  • Logtail が停止されたコンテナーで die イベントを検出した場合、Logtail はそのコンテナーから stdout または stderr を収集しなくなります。 収集のレイテンシが存在する場合、コンテナーが停止される前に収集された stdout および stderr の一部が失われる可能性があります。

  • コンテナーが Docker エンジンを使用する場合、ロギングドライバーは JSON 形式でのみ stdout および stderr を収集できます。

  • デフォルトでは、収集されたデータは content フィールドに保存されます。 Logtail は、収集されたコンテナーの stdout および stderr を処理できます。 詳細については、「データ処理用 Logtail プラグインの概要」をご参照ください。 stdout および stderr 収集プラグインの新バージョンは、ネイティブプラグインと拡張プラグインの組み合わせをサポートしています。 ネイティブプラグインは高性能で、マルチスレッドをサポートしています。

  • AliyunPipelineConfig CRD を使用できます。

  • CreateLogtailPipelineConfig および UpdateLogtailPipelineConfig 操作を呼び出して、Logtail パイプライン構成を管理できます。 詳細については、「CreateLogtailPipelineConfig」および「UpdateLogtailPipelineConfig」をご参照ください。

利点

stdout および stderr 収集プラグインの旧バージョンと比較して、新バージョンにはさまざまな利点があります。 次の表に、利点を示します。

項目

stdout および stderr 収集プラグインの新バージョン(C++)の利点

劇的に向上したパフォーマンス

stdout および stderr 収集プラグインの新バージョンは、再構築に C++ を使用しています。 パフォーマンスは、stdout および stderr 収集プラグインの旧バージョンと比較して 100% 以上向上しています。

stdout および stderr 収集プラグインの新バージョンは、データ処理におけるネイティブプラグインと同時マルチスレッディングをサポートしています。 これにより、システムリソースが完全に活用されます。

stdout および stderr 収集プラグインの新バージョンは、ネイティブプラグインと Go プラグインの柔軟な組み合わせをサポートしています。

より強力な信頼性

stdout および stderr 収集プラグインの新バージョンは、ログファイルのローテーションをサポートしています。 stdout および stderr 収集プラグインの新バージョンを使用した stdout および stderr 収集のメカニズムは、テキストログ収集のメカニズムと一致しています。 stdout および stderr のファイルが迅速にローテーションされる場合、新バージョンは高い信頼性を保証します。

低いリソース消費量

CPU 使用率は 20% 削減されます。

メモリ使用量は 20% 削減されます。

O&M の一貫性

stdout および stderr 収集プラグインの新バージョンのパラメーターと、テキストログ収集プラグインのパラメーターは一貫しています。

コンテナーメタデータフィールドの名前と、タグが追加されたログが保存される場所は、テキストログ収集シナリオのものと一貫しています。 同じ処理ロジックのセットを維持するだけで済みます。

構成の説明

フォーム構成(コンソール構成)

パラメーター

説明

Stdout および Stderr

コンテナーの stdout を収集するかどうかを指定します。

標準エラー

コンテナーの stderr を収集するかどうかを指定します。

異なる Logtail 構成による収集を許可する

デフォルトでは、stdout および stderr 収集プラグインの新バージョンが構成されている Logtail 構成を 1 つだけ使用して、コンテナーから stdout および stderr を収集できます。 stdout および stderr 収集プラグインの新バージョンが構成されている複数の Logtail 構成を使用して、コンテナーから stdout および stderr を収集するには、異なる Logtail 構成による収集を許可する をオンにします。

コンテナーメタデータプレビューを有効にする

コンテナーメタデータのプレビューを有効にするかどうかを指定します。 コンテナーメタデータプレビューを有効にする をオンにすると、Logtail 構成の作成後に、一致するコンテナー情報と完全なコンテナー情報を含むコンテナーメタデータを表示できます。

コンテナーフィルタリング

  • フィルター条件

重要
  • コンテナーラベルは、docker inspect コマンドを実行することで取得されます。 コンテナーラベルは Kubernetes ラベルとは異なります。 詳細については、「ラベルを取得する」をご参照ください。

  • このトピックで構成されている環境変数は、コンテナーを起動するために構成されている環境変数と同じです。 詳細については、「環境変数を取得する」をご参照ください。

  • Kubernetes クラスタでは、さまざまなレベルの Kubernetes 情報を使用してコンテナーをフィルタリングすることをお勧めします。 情報には、K8s ポッド名正規表現マッチングK8s 名前空間正規表現マッチングK8s コンテナー名正規表現マッチングKubernetes ポッドラベルホワイトリストが含まれます。

  1. Kubernetes 名前空間とコンテナー名は、コンテナーラベルにマッピングできます。名前空間のラベルは io.kubernetes.pod.namespace で、コンテナー名のラベルは io.kubernetes.container.name です。両方のラベルを使用してコンテナーをフィルタリングすることをお勧めします。たとえば、ポッドの名前空間が backend-prod で、ポッド内のコンテナーの名前が worker-server であるとします。 worker-server コンテナーのログを収集するには、コンテナーラベルのホワイトリストに io.kubernetes.pod.namespace : backend-prod または io.kubernetes.container.name : worker-server を指定します。

  2. 2 つのラベルがビジネス要件を満たしていない場合は、環境変数 ホワイトリストまたはブラックリストを使用してコンテナーをフィルタリングします。

K8s ポッド名正規表現マッチング

ポッド名。ポッド名は、stdout および stderr が収集されるコンテナーを指定します。正規表現マッチングがサポートされています。たとえば、^(nginx-log-demo.*)$ を指定すると、名前が nginx-log-demo で始まるポッド内のすべてのコンテナーが一致となります。

[K8s 名前空間の正規表現マッチング]

名前空間。名前空間は、stdout および stderr が収集されるコンテナーを指定します。正規表現マッチングがサポートされています。たとえば、^(default|nginx)$ を指定すると、nginx 名前空間と default 名前空間のすべてのコンテナーが一致となります。

K8s コンテナー名正規表現マッチング

コンテナー名。コンテナー名は、stdout および stderr が収集されるコンテナーを指定します。正規表現マッチングがサポートされています。Kubernetes コンテナー名は spec.containers で定義されています。たとえば、^(container-test)$ を指定すると、名前が container-test であるすべてのコンテナーが一致となります。

コンテナーラベルのホワイトリスト

コンテナーラベルのホワイトリスト。ホワイトリストは、stdout および stderr が収集されるコンテナーを指定します。このパラメーターはデフォルトでは空であり、stdout および stderr がすべてのコンテナーから収集されることを指定します。コンテナーラベルのホワイトリストを設定する場合、[ラベル名] パラメーターは必須であり、[ラベル値] パラメーターはオプションです。

  • [ラベル値] パラメーターが空の場合、[ラベルキー] で指定されたキーを含むコンテナーラベルを持つコンテナーが一致とみなされます。

  • [ラベル値] パラメーターが空でない場合、[ラベルキー] と [ラベル値] で指定されたキーと値のペアで構成されるコンテナーラベルを持つコンテナーが一致とみなされます。

    デフォルトでは、[ラベル値] パラメーターの値に対して文字列マッチングが実行されます。コンテナーラベルの値が [ラベル値] パラメーターの値と同じ場合にのみ、コンテナーは一致とみなされます。^ で始まり $ で終わる値を [ラベル値] パラメーターに指定すると、正規表現マッチングが実行されます。たとえば、[ラベルキー] パラメーターを io.kubernetes.container.name に設定し、[ラベル値] パラメーターを ^(nginx|cube)$ に設定すると、nginx という名前のコンテナーと cube という名前のコンテナーが一致とみなされます。

キーと値のペアは OR 演算子を使用して接続されます。コンテナーが、指定されたキーと値のペアのいずれかで構成されるコンテナーラベルを持っている場合、そのコンテナーは一致とみなされます。

コンテナーラベルブラックリスト

コンテナーラベルブラックリスト。ブラックリストは、stdout および stderr が収集されないコンテナーを指定します。このパラメーターはデフォルトでは空であり、すべてのコンテナーから stdout および stderr が収集されることを指定します。コンテナーラベルブラックリストを設定する場合、ラベル名パラメーターは必須で、ラベル値パラメーターはオプションです。

  • LabelValue パラメーターが空の場合、LabelKey で指定されたキーを含むコンテナーラベルを持つコンテナーは除外されます。

  • LabelValue パラメーターが空でない場合、LabelKey および LabelValue で指定されたキーと値のペアで構成されるコンテナーラベルを持つコンテナーは除外されます。

    デフォルトでは、LabelValue パラメーターの値に対して文字列マッチングが実行されます。コンテナーラベルの値が LabelValue パラメーターの値と同じ場合にのみ、コンテナーが一致と見なされます。LabelValue パラメーターに、キャレット (^) で始まりドル記号 ($) で終わる値を指定すると、正規表現マッチングが実行されます。たとえば、[LabelKey] パラメーターを io.kubernetes.container.name に設定し、[LabelValue] パラメーターを ^(nginx|cube)$ に設定すると、nginx という名前のコンテナーと cube という名前のコンテナーが一致と見なされます。

キーと値のペアは OR 演算子を使用して接続されます。コンテナーが、指定されたキーと値のペアのいずれかで構成されるコンテナーラベルを持っている場合、そのコンテナーは除外されます。

環境変数ホワイトリスト

環境変数ホワイトリスト。ホワイトリストは、stdout および stderr が収集されるコンテナーを指定します。このパラメーターはデフォルトでは空であり、stdout および stderr がすべてのコンテナーから収集されることを指定します。環境変数ホワイトリストを設定する場合、環境変数名パラメーターは必須であり、環境変数値パラメーターはオプションです。

  • EnvValue パラメーターが空の場合、EnvKey で指定されたキーを含む環境変数を持つコンテナーが一致とみなされます。

  • EnvValue パラメーターが空でない場合、EnvKey および EnvValue で指定されたキーと値のペアで構成される環境変数を持つコンテナーが一致とみなされます。

    デフォルトでは、EnvValue パラメーターの値に対して文字列マッチングが実行されます。環境変数の値が EnvValue パラメーターの値と同じ場合にのみ、コンテナーは一致とみなされます。キャレット(^)で始まりドル記号($)で終わる値を EnvValue パラメーターに指定すると、正規表現マッチングが実行されます。たとえば、[ EnvKey ] パラメーターを NGINX_SERVICE_PORT に設定し、[ EnvValue ] パラメーターを ^(80|6379)$ に設定すると、ポート番号が 80 のコンテナーとポート番号が 6379 のコンテナーが一致とみなされます。

キーと値のペアは OR 演算子を使用して接続されます。コンテナーが、指定されたキーと値のペアのいずれかで構成される環境変数を持っている場合、そのコンテナーは一致とみなされます。

環境変数ブラックリスト

環境変数ブラックリスト。ブラックリストは、stdout および stderr が収集されないコンテナーを指定します。このパラメーターはデフォルトでは空であり、すべてのコンテナーから stdout および stderr が収集されることを指定します。環境変数ブラックリストを設定する場合、環境変数名パラメーターは必須であり、環境変数値パラメーターはオプションです。

  • EnvValue パラメーターが空の場合、EnvKey で指定されたキーを含む環境変数を持つコンテナーは除外されます。

  • EnvValue パラメーターが空でない場合、EnvKey および EnvValue で指定されたキーと値のペアで構成される環境変数を持つコンテナーは除外されます。

    デフォルトでは、EnvValue パラメーターの値に対して文字列マッチングが実行されます。環境変数の値が EnvValue パラメーターの値と同じ場合にのみ、コンテナーが一致とみなされます。EnvValue パラメーターに、キャレット (^) で始まりドル記号 ($) で終わる値を指定すると、正規表現マッチングが実行されます。たとえば、[EnvKey] パラメーターを NGINX_SERVICE_PORT に設定し、[EnvValue] パラメーターを ^(80|6379)$ に設定すると、ポート番号が 80 のコンテナーとポート番号が 6379 のコンテナーが一致とみなされます。

キーと値のペアは OR 演算子を使用して接続されます。コンテナーが、指定されたキーと値のペアのいずれかで構成される環境変数を持っている場合、そのコンテナーは除外されます。

Kubernetes ポッドラベルのホワイトリスト

Kubernetes ラベルのホワイトリスト。ホワイトリストは、stdout および stderr が収集されるコンテナーを指定します。[ラベル名] パラメーターと [ラベル値] パラメーターを設定できます。 [ラベル名] パラメーターは必須で、[ラベル値] パラメーターはオプションです。

  • [ラベル値] パラメーターが空の場合、[ラベルキー] で指定されたキーを含む Kubernetes ラベルを持つコンテナーが一致とみなされます。

  • [ラベル値] パラメーターが空でない場合、[ラベルキー] と [ラベル値] で指定されたキーと値のペアで構成される Kubernetes ラベルを持つコンテナーが一致とみなされます。

    デフォルトでは、[ラベル値] パラメーターの値に対して文字列マッチングが実行されます。Kubernetes ラベルの値が [ラベル値] パラメーターの値と同じ場合にのみ、コンテナーは一致とみなされます。キャレット(^)で始まりドル記号($)で終わる値を指定すると、正規表現マッチングが実行されます。たとえば、[ラベルキー] パラメーターを app に設定し、[ラベル値] パラメーターを ^(test1|test2)$ に設定すると、Kubernetes ラベルが app:test1 または app:test2 で構成されるコンテナーが一致とみなされます。

キーと値のペアは OR 演算子を使用して接続されます。コンテナーが、指定されたキーと値のペアのいずれかで構成される Kubernetes ラベルを持っている場合、そのコンテナーは一致とみなされます。

説明
  • デプロイメントなどの Kubernetes コントロールリソースの実行中に Kubernetes ラベルを変更した場合、操作中のポッドは再起動されません。したがって、ポッドは変更を検出できません。これにより、一致ルールが無効になる可能性があります。Kubernetes ラベルのホワイトリストとブラックリストを設定する場合は、ポッドの Kubernetes ラベルを使用することをお勧めします。 Kubernetes ラベルの詳細については、「ラベルとセレクター」をご参照ください。

Kubernetes ポッドラベルブラックリスト

Kubernetes ラベルブラックリスト。ブラックリストは、stdout および stderr が収集されないコンテナーを指定します。[ラベル名] パラメーターと [ラベル値] パラメーターを設定できます。 [ラベル名] パラメーターは必須で、[ラベル値] パラメーターはオプションです。

  • [ラベル値] パラメーターが空の場合、[ラベルキー] で指定されたキーを含む Kubernetes ラベルを持つコンテナーは除外されます。

  • [ラベル値] パラメーターが空でない場合、[ラベルキー] と [ラベル値] で指定されたキーと値のペアで構成される Kubernetes ラベルを持つコンテナーは除外されます。

    デフォルトでは、[ラベル値] パラメーターの値に対して文字列マッチングが実行されます。Kubernetes ラベルの値が [ラベル値] パラメーターの値と同じ場合にのみ、コンテナーが一致と見なされます。キャレット(^)で始まりドル記号($)で終わる値を指定すると、正規表現マッチングが実行されます。たとえば、[ラベルキー] パラメーターを app に設定し、[ラベル値] パラメーターを ^(test1|test2)$ に設定すると、Kubernetes ラベルが app:test1 または app:test2 で構成されるコンテナーが一致と見なされます。

キーと値のペアは OR 演算子を使用して接続されます。コンテナーに、指定されたキーと値のペアのいずれかで構成される Kubernetes ラベルがある場合、そのコンテナーは除外されます。

説明
  • デプロイメントなどの Kubernetes コントロールリソースの実行中に Kubernetes ラベルを変更した場合、動作中のポッドは再起動されません。したがって、ポッドは変更を検出できません。これにより、マッチングルールが無効になる可能性があります。Kubernetes ラベルのホワイトリストとブラックリストを設定する場合は、ポッドの Kubernetes ラベルを使用することをお勧めします。 Kubernetes ラベルの詳細については、「ラベルとセレクター」をご参照ください。

ログタグエンリッチメント

環境変数または Kubernetes ラベルをログタグとしてログに追加できます。

環境変数

このパラメーターを構成すると、Simple Log Service は環境変数関連のフィールドをログに追加します。たとえば、[環境変数名] パラメーターを VERSION に設定し、[タグ名] パラメーターを env_version に設定し、コンテナーの環境変数設定に VERSION=v1.0.0 が含まれている場合、Simple Log Service は __tag__:__env_version__: v1.0.0 フィールドをログに追加します。

ポッドラベル

このパラメーターを構成すると、Simple Log Service は Kubernetes ポッドラベル関連のフィールドをログに追加します。たとえば、[ポッドラベル名] パラメーターを app に設定し、[タグ名] パラメーターを k8s_pod_app に設定し、Kubernetes クラスターのラベル設定に app=serviceA が含まれている場合、Simple Log Service は __tag__:__k8s_pod_app__: serviceA フィールドをログに追加します。

初回収集サイズ

Logtail が初めてファイルからデータを収集するときに、stdout および stderr のファイルから収集できるデータのサイズです。デフォルト値:1024。単位:KB。

  • ファイルサイズが 1,024 KB 未満の場合、Logtail はファイルの先頭からデータを収集します。

  • ファイルサイズが 1,024 KB を超える場合、Logtail はファイルの最後の 1,024 KB のデータを収集します。

ビジネス要件に基づいて [初回収集サイズ] パラメーターを変更できます。有効な値:0 ~ 10485760。単位:KB。

[詳細パラメーター]

Logtail 構成の特定のパラメーターを手動で構成するかどうかを指定します。詳細については、「CreateLogtailPipelineConfig」をご参照ください。

  • 設定例image

CRD - AliyunPipelineConfig

警告

AliyunPipelineConfig CRD を使用して Logtail 構成を管理する場合、alibaba-log-controller のイメージバージョンは V0.5.1 以降である必要があります。

パラメーター

タイプ

必須

デフォルト値

説明

Type

string

はい

/

プラグインのタイプ。値を input_container_stdio に設定します。

IgnoringStdout

Boolean

いいえ

false

stdout を無視するかどうかを指定します。

IgnoringStderr

Boolean

いいえ

false

stderr を無視するかどうかを指定します。

TailSizeKB

uint

いいえ

1024

Logtail が stdout および stderr のファイルから初めてデータを収集するときに、Logtail が収集できるデータサイズ。ファイルサイズがこの値より小さい場合、Logtail はファイルの先頭からデータを収集します。有効な値: 0 ~ 10485760 。単位: KB 。

Multiline

object

いいえ

なし

複数行集約オプション。詳細については、「表 1:複数行集約オプション」をご参照ください。

ContainerFilters

object

いいえ

なし

コンテナフィルターオプション。複数のオプションは論理 AND を使用して評価されます。詳細については、「表 2:コンテナフィルターオプション」をご参照ください。

ExternalK8sLabelTag

map

いいえ

なし

収集したログに追加するタグ。タグは、必要なコンテナが属するポッドのラベルに関連付けられています。コンテナとは、データを収集する Kubernetes コンテナのことです。マップを作成するには、ポッドラベルの名前をマップのキーとして指定し、必要なタグの名前をマップの値として指定します。たとえば、app: k8s_label_app のマップが作成されます。ポッドに app=serviceA ラベルが含まれている場合、システムは関連情報をタグとして収集ログに追加します。この例では、__tag__:k8s_label_app: serviceA フィールドが収集ログに追加されます。ポッドに app ラベルが含まれていない場合は、__tag__:k8s_label_app: フィールドが追加されます。

ExternalEnvTag

map

いいえ

なし

収集したログに追加するタグ。タグは、必要なコンテナの環境変数に関連付けられています。コンテナとは、データを収集する Kubernetes コンテナのことです。マップを作成するには、環境変数の名前をマップのキーとして指定し、必要なタグの名前をマップの値として指定します。たとえば、VERSION: env_version のマップが作成されます。コンテナに VERSION=v1.0.0 環境変数が含まれている場合、システムは関連情報をタグとして収集ログに追加します。この例では、__tag__:env_version: v1.0.0 フィールドが収集ログに追加されます。コンテナに VERSION 環境変数が含まれていない場合は、__tag__:env_version: フィールドが追加されます。

FlushTimeoutSecs

uint

いいえ

5

タイムアウト期間。このパラメーターで指定されたタイムアウト期間に達したときに、データを読み取るファイルに対して完全なログが生成されない場合、キャッシュから読み取ったコンテンツがログとして収集されます。

AllowingIncludedByMultiConfigs

bool

いいえ

false

別の Logtail 構成で一致するファイルから Logtail が stdout および stderr を収集することを許可するかどうかを指定します。

  • 表 1:複数行集約オプション

    パラメーター

    タイプ

    必須

    デフォルト値

    説明

    Mode

    string

    いいえ

    custom

    複数行集約モード。 custom のみがサポートされています。

    StartPattern

    string

    Mode を custom に設定する場合は、このパラメーターが必須です。

    なし

    ログの最初の行の先頭と一致するために使用される正規表現。

    UnmatchedContentTreatment

    string

    いいえ

    single_line

    一致しないログコンテンツの処理方法を指定します。有効な値:

    • discard: コンテンツを破棄します。

    • single_line: 一致しないログコンテンツの各行を別々のイベントとして配置します。

  • 表 2:コンテナフィルターオプション

    パラメーター

    タイプ

    必須

    デフォルト値

    説明

    K8sNamespaceRegex

    string

    いいえ

    なし

    必要なコンテナが属するポッドの名前空間。コンテナとは、データを収集する Kubernetes コンテナのことです。このパラメーターを指定しない場合、Logtail はすべてのコンテナからデータを収集します。正規表現マッチングがサポートされています。

    K8sPodRegex

    string

    いいえ

    なし

    必要なコンテナが属するポッドの名前。コンテナとは、データを収集する Kubernetes コンテナのことです。このパラメーターを指定しない場合、Logtail はすべてのコンテナからデータを収集します。正規表現マッチングがサポートされています。

    IncludeK8sLabel

    map

    いいえ

    なし

    必要なコンテナが属するポッドのラベル。コンテナとは、データを収集する Kubernetes コンテナのことです。ラベルは条件とも呼ばれます。複数の条件は論理 OR を使用して評価されます。このパラメーターを指定しない場合、Logtail はすべてのコンテナからデータを収集します。正規表現マッチングがサポートされています。マップを作成するには、ポッドラベルの名前をマップのキーとして指定し、ポッドラベルの値をマップの値として指定します。

    • マップの値が空の場合、ラベルにキーが含まれるポッドが照合されます。

    • マップの値が空でない場合は、次の情報に注意してください。

      • 値がキャレット(^)で始まり、ドル記号($)で終わる場合、次の条件を満たすポッドが照合されます。ポッドラベルの名前にマップのキーが含まれ、ポッドラベルの値がマップの値で指定された正規表現と一致します。

      • それ以外の場合は、ラベルがマップのキーと値と完全に一致するポッドが照合されます。

    ExcludeK8sLabel

    map

    いいえ

    なし

    必要なコンテナが属さないポッドのラベル。コンテナとは、データを収集する Kubernetes コンテナのことです。複数の条件は論理 OR を使用して評価されます。このパラメーターを指定しない場合、Logtail はすべてのコンテナからデータを収集します。正規表現マッチングがサポートされています。マップを作成するには、ポッドラベルの名前をマップのキーとして指定し、ポッドラベルの値をマップの値として指定します。

    • マップの値が空の場合、ラベルにキーが含まれるポッドが照合されます。

    • マップの値が空でない場合は、次の情報に注意してください。

      • 値がキャレット(^)で始まり、ドル記号($)で終わる場合、次の条件を満たすポッドが照合されます。ポッドラベルの名前にマップのキーが含まれ、ポッドラベルの値がマップの値で指定された正規表現と一致します。

      • それ以外の場合は、ラベルがマップのキーと値と完全に一致するポッドが照合されます。

    K8sContainerRegex

    string

    いいえ

    なし

    必要なコンテナの名前。コンテナとは、データを収集する Kubernetes コンテナのことです。このパラメーターを指定しない場合、Logtail はすべてのコンテナからデータを収集します。正規表現マッチングがサポートされています。

    IncludeEnv

    map

    いいえ

    なし

    データを収集するコンテナの環境変数。環境変数は条件とも呼ばれます。複数の条件は論理 OR を使用して評価されます。このパラメーターを指定しない場合、Logtail はすべてのコンテナからデータを収集します。正規表現マッチングがサポートされています。マップを作成するには、環境変数の名前をマップのキーとして指定し、環境変数の値をマップの値として指定します。

    • マップの値が空の場合、環境変数にキーが含まれるコンテナが照合されます。

    • マップの値が空でない場合は、次の情報に注意してください。

      • 値がキャレット(^)で始まり、ドル記号($)で終わる場合、次の条件を満たすコンテナが照合されます。環境変数の名前はマップのキーであり、環境変数の値はマップの値で指定された正規表現と一致します。

      • それ以外の場合は、環境変数がマップのキーと値と完全に一致するコンテナが照合されます。

    ExcludeEnv

    map

    いいえ

    なし

    データを収集しないコンテナの環境変数。複数の条件は論理 OR を使用して評価されます。このパラメーターを指定しない場合、Logtail はすべてのコンテナからデータを収集します。正規表現マッチングがサポートされています。マップを作成するには、環境変数の名前をマップのキーとして指定し、環境変数の値をマップの値として指定します。

    • マップの値が空の場合、環境変数にキーが含まれるコンテナが照合されます。

    • マップの値が空でない場合は、次の情報に注意してください。

      • 値がキャレット(^)で始まり、ドル記号($)で終わる場合、次の条件を満たすコンテナが照合されます。環境変数の名前はマップのキーであり、環境変数の値はマップの値で指定された正規表現と一致します。

      • それ以外の場合は、環境変数がマップのキーと値と完全に一致するコンテナが照合されます。

    IncludeContainerLabel

    map

    いいえ

    なし

    データを収集するコンテナのラベル。複数の条件は論理 OR を使用して評価されます。このパラメーターを指定しない場合、このパラメーターはデフォルトで空のままになり、Logtail がすべてのコンテナからデータを収集することを示します。正規表現マッチングがサポートされています。マップを作成するには、コンテナラベルの名前をマップのキーとして指定し、コンテナラベルの値をマップの値として指定します。

    • マップの値が空の場合、ラベルにキーが含まれるコンテナが照合されます。

    • マップの値が空でない場合は、次の情報に注意してください。

      • 値がキャレット(^)で始まり、ドル記号($)で終わる場合、次の条件を満たすコンテナが照合されます。コンテナラベルの名前にマップのキーが含まれ、コンテナラベルの値がマップの値で指定された正規表現と一致します。

      • それ以外の場合は、ラベルがマップのキーと値と完全に一致するコンテナが照合されます。

    ExcludeContainerLabel

    map

    いいえ

    なし

    データを収集しないコンテナのラベル。複数の条件は論理 OR を使用して評価されます。このパラメーターを指定しない場合、このパラメーターはデフォルトで空のままになり、Logtail がすべてのコンテナからデータを収集することを示します。正規表現マッチングがサポートされています。マップを作成するには、コンテナラベルの名前をマップのキーとして指定し、コンテナラベルの値をマップの値として指定します。

    • マップの値が空の場合、ラベルにキーが含まれるコンテナが照合されます。

    • マップの値が空でない場合は、次の情報に注意してください。

      • 値がキャレット(^)で始まり、ドル記号($)で終わる場合、次の条件を満たすコンテナが照合されます。コンテナラベルの名前にマップのキーが含まれ、コンテナラベルの値がマップの値で指定された正規表現と一致します。

      • それ以外の場合は、ラベルがマップのキーと値と完全に一致するコンテナが照合されます。

  • 構成例

    詳細については、「AliyunPipelineConfig を使用して Logtail 構成を管理する」をご参照ください。

    apiVersion: telemetry.alibabacloud.com/v1alpha1
    # カスタムリソース(CR)を ClusterAliyunPipelineConfig CRD から作成します。
    kind: ClusterAliyunPipelineConfig
    metadata:
      # リソースの名前を指定します。名前は、現在の Kubernetes クラスター内で一意である必要があります。名前は、作成される Logtail 構成の名前と同じです。
      name: example-k8s-stdout
    spec:
      # ログが収集されるプロジェクトを指定します。
      project:
        name: k8s-log-clusterid
      # ログを格納するログストアを作成します。
      logstores:
        - name: k8s-stdout
      # Logtail 構成のパラメーターを構成します。
      config:
        # サンプルログを指定します。このパラメーターは空のままにすることができます。
        sample: |
          2024-06-19 16:35:00 INFO test log
          line-1
          line-2
          end
          # 入力プラグインを構成します。
        inputs:
          # input_container_stdio プラグインを使用して、コンテナーの stdout を収集します。
          - Type: input_container_stdio
            # stdout を収集します。
            IgnoringStdout: false
            # stderr を収集しません。
            IgnoringStderr: true
            # コンテナをフィルタリングするための条件を構成します。複数のオプションは論理 AND を使用して評価されます。
            ContainerFilters:
              # 必要なコンテナが属するポッドの名前空間を指定します。正規表現マッチングがサポートされています。
              K8sNamespaceRegex: "^(default)$"
              # 必要なコンテナの名前を指定します。正規表現マッチングがサポートされています。
              K8sContainerRegex: "^(.*app.*)$"
            # 複数行ログ収集の設定を構成します。
            # ログの最初の行の先頭と一致するために使用される正規表現を指定します。
            Multiline:
              Mode: custom
              StartPattern: \d+-\d+-\d+.*
              UnmatchedContentTreatment: single_line
        # 出力プラグインを構成します。
        flushers:
          # flusher_sls プラグインを使用して、ログを特定のログストアに配信します。
          - Type: flusher_sls
            Logstore: k8s-stdout
            Endpoint: cn-hangzhou.log.aliyuncs.com
            Region: cn-hangzhou
            TelemetryType: logs

コンテナメタデータのプレビュー

説明

Logtail 構成を作成した後、Logtail 構成ページでコンテナメタデータと、特定のコンテナがフィルター条件に一致しなかった理由を確認できます。

  1. [プロジェクト] セクションで、目的のプロジェクトをクリックします。

  2. 左側のナビゲーションウィンドウで、[ログストレージ] をクリックします。[ログストア] リストで、目的のログストアを見つけ、ログストアの左側にある [>] ドロップダウン矢印をクリックし、[データ収集] > [Logtail 構成] を選択します。

  3. Logtail 構成ページで、作成した Logtail 構成をクリックします。

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

  5. [コンテナメタデータプレビューを有効にする] をオンにします。

  6. [コンテナメタデータプレビュー] をクリックします。

  7. コンテナープレビュー ダイアログボックスで、コンテナメタデータを表示します。

    • マッチングコンテナー タブには、指定されたフィルター条件に一致するコンテナのメタデータが表示されます。

    • フルコンテナー タブには、現在の Kubernetes クラスタ内のすべてのコンテナのメタデータと、特定のコンテナがフィルター条件に一致しなかった理由が表示されます。

ログフィールド

次の表は、Kubernetes クラスターの各ログについてデフォルトでアップロードされるフィールドを示しています。

フィールド

説明

_time_

ログが収集された時間。

_source_

ログソースの種類。有効な値: stdout および stderr 。

__tag__:_image_name_

イメージの名前。

__tag__:_container_name_

コンテナーの名前。

__tag__:_pod_name_

ポッドの名前。

__tag__:_namespace_

ポッドの名前空間。

__tag__:_pod_uid_

ポッドの一意の識別子。

トラブルシューティング

Logtail を使用して、標準コンテナーや Kubernetes コンテナーなどのコンテナーからログを収集するときにエラーが発生した場合は、次のリファレンスに基づいてエラーをトラブルシューティングします。

stderr がアクセスログとは異なる形式であるために解析できない場合は、エラー関連のログレコードのクエリを容易にするために、ログコンテンツにインデックスを追加することをお勧めします。Simple Log Service は、フィールドを抽出するプラグインを使用した解析をサポートしていません。詳細については、「インデックスを作成する」をご参照ください。