Amazon ECS クラスター上で EC2 インスタンスレベルのメトリクスを収集するための AWS Distro for OpenTelemetry のデプロイ
このセクションの手順を使用して、AWS Distro for OpenTelemetry を使用して Amazon ECS クラスターで EC2 インスタンスレベルのメトリクスを収集します。AWS Distro for OpenTelemetry の詳細については、AWS Distro for OpenTelemetry
以下の手順では、クラスターが Amazon ECS を実行するように既に設定されていることを前提としています。このクラスターは、EC2 起動タイプを使用してデプロイする必要があります。Amazon ECS で AWS Distro for Open Telemetry を使用し、この目的のために Amazon ECS クラスターを設定する方法の詳細については、「Amazon Elastic Container Service で ECS EC2 インスタンスレベルのメトリクスのための AWS Distro for OpenTelemetry Collector を設定する
AWS CloudFormation を使用した高速セットアップ
Amazon ECS 向けの AWS Distro for OpenTelemetry コレクターを EC2 にインストールするための AWS CloudFormation テンプレートファイルをダウンロードします。次の curl コマンドを実行します。
curl -O https://raw.githubusercontent.com/aws-observability/aws-otel-collector/main/deployment-template/ecs/aws-otel-ec2-instance-metrics-daemon-deployment-cfn.yaml
テンプレートファイルをダウンロードしたら、ファイルを開き、PATH_TO_CloudFormation_TEMPLATE
をテンプレートファイルを保存したパスに置き換えます。そして、次のコマンドのように、以下のパラメータをエクスポートして、AWS CloudFormation コマンドを実行します。
-
Cluster_Name — Amazon ECS のクラスター名
-
AWS_REGION — データが送信されるリージョン
-
PATH_TO_CloudFormation_TEMPLATE — AWS CloudFormation テンプレートファイルを保存したパス
-
command — AWS Distro for Open Telemetry コレクターが Amazon EC2 上で Amazon ECS のインスタンスレベルのメトリクスを収集できるようにするには、このパラメータの
--config=/etc/ecs/otel-instance-metrics-config.yaml
を指定する必要があります。
ClusterName=
Cluster_Name
Region=AWS_Region
command=--config=/etc/ecs/otel-instance-metrics-config.yaml aws cloudformation create-stack --stack-name AOCECS-${ClusterName}-${Region} \ --template-body file://PATH_TO_CloudFormation_TEMPLATE
\ --parameters ParameterKey=ClusterName,ParameterValue=${ClusterName} \ ParameterKey=CreateIAMRoles,ParameterValue=True \ ParameterKey=command,ParameterValue=${command} \ --capabilities CAPABILITY_NAMED_IAM \ --region ${Region}
このコマンドを実行したら、Amazon ECS コンソールを使用して、タスクが実行されているかどうかを確認します。
高速セットアップのトラブルシューティング
AWS CloudFormation スタックのステータスを確認するには、次のコマンドを入力します。
ClusterName=
cluster-name
Region=cluster-region
aws cloudformation describe-stack --stack-name AOCECS-$ClusterName-$Region --region $Region
StackStatus
が CREATE_COMPLETE
または CREATE_IN_PROGRESS
以外の場合、スタックイベントをチェックしてエラーを検出します。次のコマンドを入力します。
ClusterName=
cluster-name
Region=cluster-region
aws cloudformation describe-stack-events --stack-name AOCECS-$ClusterName-$Region --region $Region
AOCECS
デーモンサービスの状態を確認するには、次のコマンドを入力します。出力では、デプロイセクションの runningCount
が desiredCount
と等しいことがわかります。等しくない場合は、出力の「エラー」セクションを確認してください。
ClusterName=
cluster-name
Region=cluster-region
aws ecs describe-services --services AOCECS-daemon-service --cluster $ClusterName --region $Region
CloudWatch Logs コンソールを使用してエージェントログを確認することもできます。/aws/ecs/containerinsights/{ClusterName}/performance のロググループを探します。
手動およびカスタムセットアップ
このセクションの手順に従って、Amazon EC2 インスタンスでホストされている Amazon ECS クラスターからインスタンスレベルのメトリクスを収集するための AWS Distro for OpenTelemetry を手動でデプロイします。
ステップ 1: 必要なロールとポリシー
2 つの IAM ロールが必要です。まだ存在しない場合は、作成する必要があります。これらのロールの詳細については、「IAM ポリシーの作成
ステップ 2: タスク定義を作成する
タスク定義を作成し、それを使用して AWS Distro for OpenTelemetry をデーモンサービスとして起動します。
タスク定義テンプレートを使用してタスク定義を作成するには、「AWS OTel Collector を使用して EC2 インスタンスの ECS EC2 タスク定義を作成する
Amazon ECS コンソールを使用してタスク定義を作成するには、「Amazon ECS の EC2 インスタンスメトリクス用に、AWS コンソールでタスク定義を作成して AWS OTel Collector をインストールする
ステップ 3: デーモンサービスを起動する
AWS Distro for OpenTelemetry をデーモンサービスとして起動するには、「デーモンサービスを使用して Amazon Elastic Container Service (Amazon ECS) でタスクを実行する
(オプション) 詳細設定
オプションで、SSM を使用して、Amazon EC2 インスタンスでホストされている Amazon ECS クラスター内の AWS Distro for OpenTelemetry の他の設定オプションを指定できます。設定ファイルの作成についての詳細は、「OpenTelemetry のカスタム設定