View a markdown version of this page

Amazon ECS 操作日志入门 - Amazon Elastic Container Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)。

Amazon ECS 操作日志入门

Amazon ECS 操作日志使用 Amazon CloudWatch Logs 已出售日志传输机制,将服务操作的详细记录发布到您偏好的目标。启用操作日志后,您可以看到 Amazon ECS 在部署和进程守护程序操作期间执行的每一个步骤,包括基础设施预置、资源注册和故障详细信息。这种可见性有助您在不联系 Amazon Support 的情况下排查问题,并缩短确定根本原因所需的时间。可以使用 Amazon ECS 控制台或 CloudWatch Logs API 为集群启用操作日志。

先决条件

在启用操作日志之前,请验证您的 IAM 身份是否具有所需的权限。

所需的 IAM 权限

您的 IAM 身份必须具有以下权限才能启用和管理操作日志:

{ "Effect": "Allow", "Action": [ "logs:PutDeliverySource", "logs:PutDeliveryDestination", "logs:CreateDelivery", "logs:GetDelivery", "ecs:AllowVendedLogDeliveryForResource" ], "Resource": "*" }

目标资源策略

目标 CloudWatch Logs 日志组必须具有允许 delivery.logs.amazonaws.com 服务写入日志的资源策略。请将以下语句添加到该日志组资源策略中:

{ "Effect": "Allow", "Principal": { "Service": "delivery.logs.amazonaws.com" }, "Action": [ "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": "arn:aws:logs:region:account-id:log-group:log-group-name:log-stream:*" }

使用 Amazon ECS 控制台启用操作日志

可以直接从 Amazon ECS 控制台中的集群详细信息页面启用操作日志。

使用控制台启用操作日志
  1. 在 https://console.aws.amazon.com/ecs/v2 打开控制台。

  2. 在导航窗格中,选择集群,然后选择相应的集群。

  3. 选择配置选项卡。

  4. 在操作日志部分,选择添加。

  5. 对于目标,请选择下列选项之一:

    • CloudWatch Logs(默认)

    • Amazon S3

    • Amazon Data Firehose

    对于 CloudWatch Logs,Amazon ECS 会创建一个名为 /aws/vendedlogs/ecs/action-logs/cluster-name 的默认日志组,保留期为 7 天。

  6. 选择保存。

使用 CloudWatch Logs API 启用操作日志

可以使用 CloudWatch Logs 已出售日志传输 API 以编程方式启用操作日志。此方法需要完成三个步骤:注册传输源、配置目标以及创建传输。

使用 Amazon CLI 启用操作日志
  1. 通过运行以下命令注册传输源:

    aws logs put-delivery-source \ --name my-ecs-action-logs \ --resource-arn arn:aws:ecs:region:account-id:cluster/cluster-name \ --log-type EcsActionLogs
  2. 通过运行以下命令配置传输目标:

    aws logs put-delivery-destination \ --name my-ecs-logs-destination \ --output-format json \ --delivery-destination-configuration '{"destinationResourceArn": "arn:aws:logs:region:account-id:log-group:/aws/vendedlogs/ecs/action-logs/cluster-name"}'
  3. 通过运行以下命令创建传输,以将源链接到目标:

    aws logs create-delivery \ --delivery-source-name my-ecs-action-logs \ --delivery-destination-arn arn:aws:logs:region:account-id:delivery-destination:my-ecs-logs-destination

验证日志传输

启用操作日志后,请验证日志是否会传输到目标。

验证日志传输
  1. 在集群中触发一个操作。例如,创建或更新进程守护程序服务。

  2. 通过 https://console.aws.amazon.com/cloudwatch/ 打开 CloudWatch 控制台。

  3. 在导航窗格中,选择 Log groups(日志组)。

  4. 选择您的 Action Logs 日志组,然后验证是否出现该新日志流。

删除操作日志

可以使用 Amazon CLI 或 Amazon ECS 控制台删除操作日志。

要删除操作日志,您的 IAM 身份必须具有以下附加权限:

{ "Effect": "Allow", "Action": [ "logs:DeleteDelivery", "logs:DeleteDeliverySource", "logs:DeleteDeliveryDestination" ], "Resource": "*" }
使用 Amazon CLI 删除操作日志
  1. 通过运行以下命令删除传输:

    aws logs delete-delivery \ --delivery-id delivery-id
  2. 通过运行以下命令删除传输源:

    aws logs delete-delivery-source \ --name my-ecs-action-logs
  3. 通过运行以下命令删除传输目标:

    aws logs delete-delivery-destination \ --name my-ecs-logs-destination

要使用控制台删除操作日志,请导航到集群详细信息页面,选择配置选项卡,然后在操作日志部分选择删除。

后续步骤

启用操作日志后,请使用以下资源进行 Amazon ECS 集群监控和问题排查: