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

Elastic Container Instance:Elastic Container Instance のログ収集を設定する

最終更新日:Dec 28, 2024

Elastic Container Instance は、コンテナログを Simple Log Service にエクスポートできます。このトピックでは、環境変数を使用して Elastic Container Instance のログ収集を設定する方法について説明します。これには、プロジェクト、ログストア、およびマシン・グループの指定方法が含まれます。

背景情報

Alibaba Cloud Simple Log Service は、エンドツーエンドのデータロギングサービスです。これを使用すると、さらに開発を行うことなく、ログデータの収集、消費、配信、クエリ、および分析を行うことができます。詳細については、Simple Log Service とは? を参照してください。

重要

Simple Log Service を使用する場合、実際の使用量に基づいて課金されます。Simple Log Service の課金については、課金概要 を参照してください。

Elastic Container Instance の作成時にログ収集を有効にすると、システムによってプロジェクトとマシン・グループが自動的に生成されます。

  • プロジェクト名は eci-log-default-project-{Region}-{The account ID} です。

  • マシン・グループ名は eci-log-default-machine-group-{Region} です。

カスタムプロジェクトおよびカスタムログストアへのログ収集設定、または異なるアプリケーションをホストする Elastic Container Instance を異なるマシン・グループに追加するための設定など、ログ収集設定を構成するには、コンテナの環境変数を使用してログ関連のカスタム構成を渡すことができます。環境変数に対応するプロジェクト、ログストア、またはマシン・グループがない場合、システムによってプロジェクト、ログストア、またはマシン・グループが自動的に作成されます。

注記

  • 環境変数を使用してログ収集を設定できるのは、Elastic Container Instance を作成するときに限られます。Elastic Container Instance の更新時に渡すログ関連の環境変数は有効になりません。

  • カスタムプロジェクトまたは Logtail 構成を使用しなくなった場合は、不要なコストを避けるために、プロジェクトまたは Logtail 構成をタイムリーに削除してください。

構成の説明

Elastic Container Instance を作成するときに、コンテナの環境変数を使用して、プロジェクト、ログストア、Logtail 構成、マシン・グループ、シャード、ログ保存期間、タグなど、カスタムログ構成を渡すことができます。次の表に、構成可能な環境変数を示します。

説明

ログ関連の各環境変数の名前には、aliyun_logs_{key} の形式のプレフィックスが含まれています。{key} は、Simple Log Service の Logtail 構成の名前を指定します。{key} の値には、小文字、数字、およびハイフン (-) のみを含めることができます。

構成オブジェクト

環境変数名

環境変数の説明

Logtail 構成

aliyun_logs_{key}

この変数は Logtail 構成を作成します。この変数をログ収集パスに設定します。

  • Logtail が標準出力 (stdout) ログを収集する場合、この変数を次のいずれかの値に設定します。

    • stdout:stdout ログと標準エラー (stderr) ログを収集します。

    • stderr-only:stderr ログを収集しますが、stdout ログは収集しません。

    • stdout-only:stdout ログを収集しますが、stderr ログは収集しません。

  • Logtail がテキストログを収集する場合、この変数をコンテナ内のファイルディレクトリに設定します。

プロジェクト

aliyun_logs_{key}_project

この変数は、Simple Log Service のプロジェクトを指定します。プロジェクト名は、次の要件を満たしている必要があります。

  • 名前は 3 ~ 63 文字である必要があります。

  • 名前には、小文字、数字、およびハイフン (-) のみを含めることができます。名前は小文字または数字で始まり、小文字または数字で終わる必要があります。

説明

名前はグローバルに一意である必要があります。プロジェクトの作成後は変更できません。名前が上記の要件を満たしておらず、名前形式の検証に失敗した場合、プロジェクト構成は無視され、デフォルトのプロジェクトが使用されます。

ログストア

aliyun_logs_{key}_logstore

この変数はログストアを指定します。ログストア名は、次の要件を満たしている必要があります。

  • 名前は 3 ~ 63 文字である必要があります。

  • 名前には、小文字、数字、ハイフン (-)、およびアンダースコア (_) のみを含めることができます。名前は小文字または数字で始まり、小文字または数字で終わる必要があります。

説明

名前が上記の要件を満たしておらず、名前形式の検証に失敗した場合、ログストア構成は無視され、デフォルトのログストアが使用されます。デフォルトでは、ログストア名と Logtail 構成名の {key} の値は同じです。

マシン・グループ

aliyun_logs_{key}_machinegroup

この変数はマシン・グループを指定します。マシン・グループ名は、次の要件を満たしている必要があります。

  • 名前は 3 ~ 63 文字である必要があります。

  • 名前には、小文字、数字、ハイフン (-)、およびアンダースコア (_) のみを含めることができます。名前は小文字または数字で始まり、小文字または数字で終わる必要があります。

説明

名前が上記の要件を満たしておらず、名前形式の検証に失敗した場合、マシン・グループ構成は無視され、デフォルトのマシン・グループが使用されます。

シャード

aliyun_logs_{key}_shard

この変数は、ログストア内のシャード数を指定します。有効な値:1 ~ 10。

読み取りおよび書き込みログは、ログストアのシャードに保存する必要があります。デフォルトでは、各ログストアには 2 つのシャードが含まれています。

ログ保存期間

aliyun_logs_{key}_ttl

この変数はログの保存期間を指定します。有効な値:1 ~ 3650。単位:日。

  • 値 3650 は、ログデータがログストアに永続的に保存されることを指定します。

  • デフォルト値:90。

タグ

aliyun_logs_{key}_tags

この変数は、ログに追加されるタグを指定します。この変数の値は、tag-key=tag-value の形式である必要があります。タグはログを識別するために使用されます。

構成例

たとえば、次のログ構成を指定する必要があります。

  • ログストアと Logtail 構成:Stdout ログが収集され、stdout-eci という名前のログストアに保存されます。テキストログが収集され、file-eci という名前のログストアに保存されます。

  • プロジェクト名:eci-test-project。

  • マシン・グループ名:mg-eci-test。

説明

次の例では、ログ構成を指定する方法について説明します。実際のシナリオでは、ビジネス要件に基づいてログ構成を指定し、プロジェクト名がグローバルに一意であることを確認してください。

OpenAPI

CreateContainerGroup オペレーションを呼び出して Elastic Container Instance を作成するときに、次のサンプルコードに示すように、Container.N.EnvironmentVar.N.Key パラメータと Container.N.EnvironmentVar.N.Value パラメータを使用して環境変数を構成できます。

ContainerGroupName=test-sls
Container.1.Name=busybox
Container.1.Image=registry-vpc.cn-shanghai.aliyuncs.com/eci_open/busybox:1.30
Container.1.Command.1=/bin/sh
Container.1.Arg.1=-c
Container.1.Arg.2=mkdir -p /log;while true; do echo hello world; date; echo hello sls >> /log/busy.log; sleep 1;done
# stdout ログを収集します。
Container.1.EnvironmentVar.1.Key=aliyun_logs_stdout-eci
Container.1.EnvironmentVar.1.Value=stdout
Container.1.EnvironmentVar.2.Key=aliyun_logs_stdout-eci_project
Container.1.EnvironmentVar.2.Value=project-eci-test
Container.1.EnvironmentVar.3.Key=aliyun_logs_stdout-eci_machinegroup
Container.1.EnvironmentVar.3.Value=mg-eci-test
# テキストログを収集します。
Container.1.EnvironmentVar.4.Key=aliyun_logs_file-eci
Container.1.EnvironmentVar.4.Value=/log/*.log
Container.1.EnvironmentVar.5.Key=aliyun_logs_file-eci_project
Container.1.EnvironmentVar.5.Value=project-eci-test
Container.1.EnvironmentVar.6.Key=aliyun_logs_file-eci_machinegroup
Container.1.EnvironmentVar.6.Value=mg-eci-test

コンソール

Elastic Container Instance コンソール (Elastic Container Instance コンソール) で弾性コンテナインスタンスを作成する際に、コンテナ設定 セクションでコンテナを選択し、コンテナの高度な設定を展開して、環境変数 をオンにして環境変数を追加できます。次の図に示すように操作します。

设置环境变量采集日志.png

サンプル結果

Simple Log Service コンソールで、管理するプロジェクトを見つけ、プロジェクト名をクリックしてプロジェクトの詳細ページに移動します。次に、左側のナビゲーションペインのログストアリストからログストアを選択して、ログを表示します。次の図を参照してください。

stdout ログの収集

日志-标准.png

テキストログの収集

日志-文本.png