使用适用于 的 Amazon ECS Distro AWS 在 上设置 Container Insights OpenTelemetry - Amazon CloudWatch
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用适用于 的 Amazon ECS Distro AWS 在 上设置 Container Insights OpenTelemetry

如果要使用 AWS Distro for OpenTelemetry 在 CloudWatch 集群上设置 Amazon ECS Container Insights,请使用此部分。有关 AWS Distro for Open Telemetry 的更多信息,请参阅 AWS Distro for OpenTelemetry

这些步骤假定您已经有一个运行 的集群Amazon ECS。有关将 AWS Distro for Open Telemetry 与 结合使用Amazon ECS以及设置 Amazon ECS 集群以实现此目的的更多信息,请参阅 中的OpenTelemetry设置 AWS Distro for Amazon Elastic Container Service Collector。

步骤 1:创建任务角色

第一步是在AWSOpenTelemetry收集器将使用的集群中创建任务角色。

为适用于 的 AWS Distro 创建任务角色 OpenTelemetry

  1. 通过以下网址打开 IAM 控制台:https://console.amazonaws.cn/iam/

  2. 在导航窗格中选择策略,然后选择创建策略.

  3. 选择 JSON 选项卡并复制以下策略中的 :

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:PutLogEvents", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DescribeLogStreams", "logs:DescribeLogGroups", "ssm:GetParameters" ], "Resource": "*" } ] }
  4. 选择查看策略.

  5. 对于 name (名称),输入 AWSDistroOpenTelemetryPolicy,然后选择 Create policy (创建策略)。

  6. 在左侧导航窗格中,选择 Roles (角色),然后选择 Create role (创建角色)。

  7. 在服务列表中,选择 Elastic Container Service。

  8. 在页面的下方,选择 Elastic Container Service Task (弹性容器服务任务),然后选择 Next: Permissions (下一步: 权限)。

  9. 在策略列表中,搜索 AWSDistroOpenTelemetryPolicy

  10. 选中 旁边的复选框AWSDistroOpenTelemetryPolicy.

  11. Coose Next: Tags,然后选择 Next: Review。

  12. 对于 Role nameAWSOpenTelemetryTaskRole (角色名称),输入 ,然后选择 Create role (创建角色)。

步骤 2:创建任务执行角色

下一步是为 AWS OpenTelemetry 收集器创建任务执行角色。

为适用于 的 AWS Distro 创建任务执行角色 OpenTelemetry

  1. 通过以下网址打开 IAM 控制台:https://console.amazonaws.cn/iam/

  2. 在左侧导航窗格中,选择 Roles (角色),然后选择 Create role (创建角色)。

  3. 在服务列表中,选择 Elastic Container Service。

  4. 在页面的下方,选择 Elastic Container Service Task (弹性容器服务任务),然后选择 Next: Permissions (下一步: 权限)。

  5. 在策略列表中,搜索 AmazonECSTaskExecutionRolePolicy ,然后选中 AmazonECSTaskExecutionRolePolicy 旁边的复选框。

  6. 在策略列表中,搜索 CloudWatchLogsFullAccess ,然后选中 CloudWatchLogsFullAccess 旁边的复选框。

  7. 在策略列表中,搜索 AmazonSSMReadOnlyAccess ,然后选中 AmazonSSMReadOnlyAccess 旁边的复选框。

  8. 选择 Next: Tags,然后选择 Next: Review。

  9. 对于 Role name (角色名称),输入 AWSOpenTelemetryTaskExecutionRole ,然后选择 Create role (创建角色)。

步骤 3:创建任务定义

下一步是创建任务定义。

为 AWS Distro for 创建任务定义 OpenTelemetry

  1. https://console.amazonaws.cn/ecs/ 上打开 Amazon ECS 控制台。

  2. 在左侧导航窗格中,选择 Task Definitions (任务定义),然后选择 Create new Task Definition (创建新的任务定义)。

  3. 选择 FARGATEEC2然后选择 Next step (下一步)。

  4. 输入任务定义名称,例如 aws-otel

  5. 对于 Task Role (任务角色),选择AWSOpenTelemetryTaskRole您之前创建的 。

  6. 对于 Task execution AWSOpenTelemetryTaskExecutionRole role (任务执行角色),选择您之前创建的 。

  7. 填写 Task memory (任务内存) 和 Task CPU (任务 CPU)。

  8. Container Definitions (容器定义) 下,选择 Add container (添加容器).

  9. 对于 Container name (容器名称),输入 aws-otel-collector。 对于 Image (映像),输入 public.ecr.aws/aws-observability/aws-otel-collector

  10. ENVIRONMENT (环境) 下,对于 Command (命令),输入 --config=/etc/ecs/container-insights/otel-task-metrics-config.yaml

    此 YAML 文件包含在 Docker 映像中,并包含用于使用容器指标的配置。

  11. 如果您使用的是 EC2 启动类型,请为 TCP 输入端口映射 55680。

  12. 完成添加容器的步骤。

有关将 AWS OpenTelemetry 收集器与 结合使用的更多信息Amazon ECS,请参阅在 中AWS设置OpenTelemetry收集器Amazon Elastic Container Service的 Distro。

步骤 4:运行任务

最后一步是运行您创建的任务。

运行适用于 AWS Distro for 的任务 OpenTelemetry

  1. https://console.amazonaws.cn/ecs/ 上打开 Amazon ECS 控制台。

  2. 在左侧导航窗格中,选择 Task Definitions (任务定义),然后选择刚刚创建的任务。

  3. 选择 ActionsRun Task.

    接下来,您可以在 CloudWatch 控制台中检查新指标。

  4. 通过以下网址打开 CloudWatch 控制台:https://console.amazonaws.cn/cloudwatch/

  5. 在左侧导航窗格中,选择 Metrics.

    您应看到 ContainerInsights命名空间。选择该命名空间,您应看到八个指标。