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 控制台中的集群详细信息页面启用操作日志。
使用控制台启用操作日志
-
在导航窗格中,选择集群,然后选择相应的集群。
-
选择配置选项卡。
-
在操作日志部分,选择添加。
-
对于目标,请选择下列选项之一:
-
CloudWatch Logs(默认)
-
Amazon S3
-
Amazon Data Firehose
对于 CloudWatch Logs,Amazon ECS 会创建一个名为
/aws/vendedlogs/ecs/action-logs/的默认日志组,保留期为 7 天。cluster-name -
-
选择保存。
使用 CloudWatch Logs API 启用操作日志
可以使用 CloudWatch Logs 已出售日志传输 API 以编程方式启用操作日志。此方法需要完成三个步骤:注册传输源、配置目标以及创建传输。
使用 Amazon CLI 启用操作日志
-
通过运行以下命令注册传输源:
aws logs put-delivery-source \ --namemy-ecs-action-logs\ --resource-arn arn:aws:ecs:region:account-id:cluster/cluster-name\ --log-type EcsActionLogs -
通过运行以下命令配置传输目标:
aws logs put-delivery-destination \ --namemy-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"}' -
通过运行以下命令创建传输,以将源链接到目标:
aws logs create-delivery \ --delivery-source-namemy-ecs-action-logs\ --delivery-destination-arn arn:aws:logs:region:account-id:delivery-destination:my-ecs-logs-destination
验证日志传输
启用操作日志后,请验证日志是否会传输到目标。
验证日志传输
-
在集群中触发一个操作。例如,创建或更新进程守护程序服务。
-
通过 https://console.aws.amazon.com/cloudwatch/ 打开 CloudWatch 控制台。
-
在导航窗格中,选择 Log groups(日志组)。
-
选择您的 Action Logs 日志组,然后验证是否出现该新日志流。
删除操作日志
可以使用 Amazon CLI 或 Amazon ECS 控制台删除操作日志。
要删除操作日志,您的 IAM 身份必须具有以下附加权限:
{ "Effect": "Allow", "Action": [ "logs:DeleteDelivery", "logs:DeleteDeliverySource", "logs:DeleteDeliveryDestination" ], "Resource": "*" }
使用 Amazon CLI 删除操作日志
-
通过运行以下命令删除传输:
aws logs delete-delivery \ --delivery-iddelivery-id -
通过运行以下命令删除传输源:
aws logs delete-delivery-source \ --namemy-ecs-action-logs -
通过运行以下命令删除传输目标:
aws logs delete-delivery-destination \ --namemy-ecs-logs-destination
要使用控制台删除操作日志,请导航到集群详细信息页面,选择配置选项卡,然后在操作日志部分选择删除。
后续步骤
启用操作日志后,请使用以下资源进行 Amazon ECS 集群监控和问题排查: