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 構成を作成します。この変数をログ収集パスに設定します。
|
プロジェクト | aliyun_logs_{key}_project | この変数は、Simple Log Service のプロジェクトを指定します。プロジェクト名は、次の要件を満たしている必要があります。
説明 名前はグローバルに一意である必要があります。プロジェクトの作成後は変更できません。名前が上記の要件を満たしておらず、名前形式の検証に失敗した場合、プロジェクト構成は無視され、デフォルトのプロジェクトが使用されます。 |
ログストア | aliyun_logs_{key}_logstore | この変数はログストアを指定します。ログストア名は、次の要件を満たしている必要があります。
説明 名前が上記の要件を満たしておらず、名前形式の検証に失敗した場合、ログストア構成は無視され、デフォルトのログストアが使用されます。デフォルトでは、ログストア名と Logtail 構成名の |
マシン・グループ | aliyun_logs_{key}_machinegroup | この変数はマシン・グループを指定します。マシン・グループ名は、次の要件を満たしている必要があります。
説明 名前が上記の要件を満たしておらず、名前形式の検証に失敗した場合、マシン・グループ構成は無視され、デフォルトのマシン・グループが使用されます。 |
シャード | aliyun_logs_{key}_shard | この変数は、ログストア内のシャード数を指定します。有効な値:1 ~ 10。 読み取りおよび書き込みログは、ログストアのシャードに保存する必要があります。デフォルトでは、各ログストアには 2 つのシャードが含まれています。 |
ログ保存期間 | aliyun_logs_{key}_ttl | この変数はログの保存期間を指定します。有効な値:1 ~ 3650。単位:日。
|
タグ | aliyun_logs_{key}_tags | この変数は、ログに追加されるタグを指定します。この変数の値は、 |
構成例
たとえば、次のログ構成を指定する必要があります。
ログストアと 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 コンソール) で弾性コンテナインスタンスを作成する際に、コンテナ設定 セクションでコンテナを選択し、コンテナの高度な設定を展開して、環境変数 をオンにして環境変数を追加できます。次の図に示すように操作します。
サンプル結果
Simple Log Service コンソールで、管理するプロジェクトを見つけ、プロジェクト名をクリックしてプロジェクトの詳細ページに移動します。次に、左側のナビゲーションペインのログストアリストからログストアを選択して、ログを表示します。次の図を参照してください。