Elastic Container Instanceは、コンテナーログをLog Serviceにエクスポートできます。 このトピックでは、エラスティックコンテナインスタンスのログ収集をカスタマイズする方法 (プロジェクト、Logstore、マシングループの指定方法など) について説明します。
背景情報
エラスティックコンテナインスタンスを使用しているときにログ収集を有効にすると、デフォルトで次のログ収集設定が生成されます。
エラスティックコンテナインスタンスを使用するためのAPI操作を呼び出すと、各リージョンでプロジェクトとマシングループが生成されます。
プロジェクト名は
eci-log-default-project-{Region}-{The account ID}
です。マシングループ名は
eci-log-default-machine-group-{Region}
です。
Kubernetesでelasticコンテナインスタンスを使用すると、各クラスターでプロジェクトとマシングループが生成されます。
プロジェクト名は
k8s-log-{KubernetesクラスターのID}
です。マシングループ名は
k8s-group-{KubernetesクラスターのID}
です。
ビジネス要件に基づいてエラスティックコンテナインスタンスのログを収集するには、Logstoreとプロジェクトをカスタマイズする必要があります。 エラスティックコンテナインスタンスを異なるアプリケーションやサービスと一緒に使用する場合、エラスティックコンテナインスタンスを異なるマシングループに追加する必要があります。 次のいずれかの方法を使用して、プロジェクト、Logstore、マシングループなどのログ関連アイテムをカスタマイズできます。
elasticコンテナインスタンスの環境変数を使用する
エラスティックコンテナインスタンスの環境変数を使用してログ設定を指定すると、システムは自動的にプロジェクト、Logstore、およびマシングループを作成します。
Log Serviceコンソールを使用するか、API操作を呼び出す
Log Serviceコンソールを使用するか、API操作を呼び出して、プロジェクト、Logstore、およびマシングループを作成できます。 その後、Logstoreの設定をカスタマイズし、マシングループに設定を適用できます。 次に、Log ServiceはエラスティックコンテナインスタンスのログをLogstoreにエクスポートします。
このトピックでは、環境変数を使用してエラスティックコンテナインスタンスのログ収集をカスタマイズする方法について説明します。
設定の説明
CreateContainerGroup APIを呼び出してエラスティックコンテナインスタンスを作成するときにSlsEnableパラメーターを使用してログ収集を有効にすると、エラスティックコンテナインスタンスの環境変数を使用して、プロジェクト、Logstore、設定、マシングループ、シャード、ログ保持期間などのログ設定を指定できます。 次の部分では、ログ設定を指定するときの各設定項目の形式と要件について説明します。
設定 (Logtail)
次のスニペットは、Logtail設定を設定する方法を示しています。
-name: aliyun_logs_{設定名} -value: {ログパス}
注意標準出力ログを収集する場合は、ログパスをstdoutに設定します。
プロジェクト
次のスニペットは、プロジェクトを設定する方法を示しています。
名: aliyun_logs_{設定名}_project -value: {プロジェクト名}
プロジェクト名は次の要件を満たす必要があります。
名前の長さは 3 ~ 63 文字である必要があります。
名前には、小文字、数字、ハイフン (-) のみを使用できます。 名前の先頭と末尾は、小文字または数字である必要があります。
説明名前が上記の要件を満たさず、名前形式の検証が失敗する場合、プロジェクトの構成は無視され、既定のプロジェクトが使用されます。
ログストア
デフォルトでは、Logstore名は設定名と同じです。 次のスニペットは、Logstoreを設定する方法を示しています。
名: aliyun_logs_{設定名}_logstore -value: {Logstore名}
Logstore名は次の要件を満たす必要があります。
名前の長さは 3 ~ 63 文字である必要があります。
名前には、小文字、数字、ハイフン ( - )、アンダースコア ( _ ) のみ使用できます。 名前の先頭と末尾は、小文字または数字である必要があります。
説明名前が上記の要件を満たさず、名前形式の検証が失敗する場合、Logstore設定は無視され、デフォルトのLogstoreが使用されます。
マシングループ
次のスニペットは、マシングループを設定する方法を示しています。
名: aliyun_logs_{設定名}_machinegroup -value: {マシングループ名}
マシングループ名は、次の要件を満たす必要があります。
名前の長さは 3 ~ 63 文字である必要があります。
名前には、小文字、数字、ハイフン ( - )、アンダースコア ( _ ) のみ使用できます。 名前の先頭と末尾は、小文字または数字である必要があります。
説明名前が上記の要件を満たさず、名前形式の検証が失敗する場合、マシングループの構成は無視され、デフォルトのマシングループが使用されます。
Shard
読み書きログは、Logstoreのシャードに保存する必要があります。 デフォルトでは、各Logstoreに2つのシャードが含まれます。 次のスニペットは、シャードを設定する方法を示しています。
名: aliyun_logs_{設定名}_shard -value: {シャードの数}# デフォルト値: 2。 有効な値: 1 ~ 10。
ログ保持期間
デフォルトでは、ログはLogstoreで90日間保持できます。 次のスニペットは、ログの保持期間を設定する方法を示しています。
名: aliyun_logs_{設定名}_ttl -value: {日数}# 単位: 日数。 デフォルト値: 90。 有効な値: 1 ~ 3650
タグ
次のスニペットは、タグを設定する方法を示しています。
-- name: aliyun_logs_{設定名}_タグ -value: {タグキー }={ タグ値}
サンプル設定
次のログ関連の設定項目をカスタマイズする必要がある場合:
LogstoreとLogtail: 標準出力ログは、stdout-testという名前のLogstoreに保存されます。 テキストログは、file-testという名前のLogstoreに保存されます。
プロジェクト: eci-test-Project
マシングループ: eci-test-mg
次のスニペットは、アイテムを設定する方法を示しています。
# ログ収集の有効化
'SlsEnable': 'true' 、# 標準出力ログの収集を設定します。
'Container.1.EnvironmentVar.1.Key ': 'aliyun_logs_stdout-test' 、'Container.1. EnvironmentVar.1.1.Value ': 'stdout' 、'Container.1.EnvironmentVar.2.Key ': 'aliyun_logs_stdout-test_project' 、'Container.1.EnvironmentVar.2.Value ': 'eci-test-project' 、'Container.1.EnvironmentVar.3.Key ': 'aliyun_logs_stdout-test_machinegroup' 、'Container.1.EnvironmentVar.3.Value ': 'eci-test-mg' 、# テキストログの収集を設定します。
'Container.1.EnvironmentVar.4.Key ': 'aliyun_logs_file-test' 、'Container.1.EnvironmentVar.4.Value ': '/log/*.log' 、'Container.1.EnvironmentVar.5.Key ': 'aliyun_logs_file-test_project' 、'Container.1.EnvironmentVar.5.Value ': 'eci-test-project' 、'Container.1.EnvironmentVar.6.Key ': 'aliyun_logs_file-test_machinegroup' 、'Container.1.EnvironmentVar.6.Value ': 'eci-test-mg' 、
エラスティックコンテナインスタンスの作成時にログ収集を有効にし、上記の設定に基づいて環境変数を指定すると、インスタンスのログをプロジェクトの対応するログストアに収集できます。 次の図は、設定の効果を示しています。
標準出力ログの収集
テキストログの収集