View a markdown version of this page

Amazon ECS 操作日志入门 - Amazon Elastic Container Service

Amazon ECS 操作日志入门

Amazon ECS 操作日志使用 Amazon CloudWatch Logs 已出售日志传输机制,将服务操作的详细记录发布到您偏好的目标。启用操作日志后,您可以看到 Amazon ECS 在部署和进程守护程序操作期间执行的每一个步骤,包括基础设施预置、资源注册和故障详细信息。这种可见性有助您在不联系 AWS 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 以编程方式启用操作日志。此方法需要完成三个步骤:注册传输源、配置目标以及创建传输。

使用 AWS 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 日志组,然后验证是否出现该新日志流。

删除操作日志

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

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

{ "Effect": "Allow", "Action": [ "logs:DeleteDelivery", "logs:DeleteDeliverySource", "logs:DeleteDeliveryDestination" ], "Resource": "*" }
使用 AWS 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 集群监控和问题排查: