部署 Amazon Distro for OpenTelemetry 以收集 Amazon ECS 集群上的 EC2 实例级指标 - Amazon CloudWatch
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

部署 Amazon Distro for OpenTelemetry 以收集 Amazon ECS 集群上的 EC2 实例级指标

使用此部分中的步骤使用 Amazon Distro for OpenTelemetry 来收集 Amazon ECS 集群上的 EC2 实例级指标。有关 Amazon Distro for OpenTelemetry 的更多信息,请参阅 Amazon Distro for OpenTelemetry

这些步骤假设您已具有正在运行 Amazon ECS 的集群。此集群必须使用 EC2 启动类型进行部署。有关将 Amazon Distro for Open Telemetry 与 Amazon ECS 结合使用以及为此设置 Amazon ECS 集群的更多信息,请参阅设置 Amazon Elastic Container Service 中的 Amazon Distro for OpenTelemetry Collector 以了解 ECS EC2 实例级指标

使用 Amazon CloudFormation 进行快速设置

下载 Amazon CloudFormation 模板文件,用于在 EC2 上为 Amazon ECS 安装 Amazon Distro for OpenTelemetry 收集器。运行以下 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 替换为您保存模板文件的路径。然后导出以下参数并运行 Amazon CloudFormation 命令,如以下命令所示。

  • Cluster_Name– Amazon ECS 集群名称

  • AWS_Region– 将发送数据的区域

  • PATH_TO_CloudFormation_TEMPLATE– 保存 Amazon CloudFormation 模板文件的路径。

  • command– 要启用 Amazon Distro for OpenTelemetry 收集器来收集 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 控制台查看任务是否正在运行。

对快速设置进行故障排除

要查看 Amazon CloudFormation 堆栈的状态,请输入以下命令。

ClusterName=cluster-name Region=cluster-region aws cloudformation describe-stack --stack-name AOCECS-$ClusterName-$Region --region $Region

如果 StackStatus 的值不是 CREATE_COMPLETECREATE_IN_PROGRESS,请查看堆栈事件以查找错误。输入以下命令。

ClusterName=cluster-name Region=cluster-region aws cloudformation describe-stack-events --stack-name AOCECS-$ClusterName-$Region --region $Region

要查看 AOCECS 守护进程服务的状态,请输入以下命令。在输出中,您应看到部署部分中的 desiredCount 等于 runningCount。如果二者不相等,请查看输出中的故障部分。

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 Distro for OpenTelemetry 以从 Amazon EC2 实例上托管的 Amazon ECS 集群收集实例级别指标。

步骤 1:必要的角色和策略

需要两个 IAM 角色。如果这两个角色不存在,则必须创建它们。有关这些角色的更多信息,请参阅创建 IAM 策略创建 IAM 角色

步骤 2:创建任务定义

创建一个任务定义并使用它将 Amazon Distro for OpenTelemetry 作为守护进程服务启动。

要使用任务定义模板创建任务定义,请按照使用 Amazon OTel Collector 为 EC2 实例创建 ECS EC2 任务定义中的说明进行操作。

要使用 Amazon ECS 控制台创建任务定义,请按照通过 Amazon 控制台为 Amazon ECS EC2 实例指标创建任务定义来安装 Amazon OTel Collector 中的说明进行操作。

步骤 3:启动守护进程服务

要将 Amazon Distro for OpenTelemetry 作为守护进程服务启动,请按照使用守护进程服务在 Amazon Elastic Container Service (Amazon ECS) 上运行您的任务中的说明进行操作。

(可选)高级配置

(可选)您可以使用 SSM 来指定 Amazon EC2 实例上托管的 Amazon ECS 集群中 Amazon Distro for OpenTelemetry 的其他配置选项。有关创建配置文件的更多信息,请参阅自定义 OpenTelemetry 配置。有关在配置文件中可使用的选项的详细信息,请参阅 Amazon Container Insights Receiver