使用操作日志监控 Amazon ECS 操作
Amazon ECS 操作日志概述
借助 Amazon ECS 操作日志,您可以监控 Amazon ECS 在容器生命周期操作期间代表您执行的所有操作。操作日志会记录集群内的每个资源操作、状态变化和服务发起的 API 调用并添加时间戳。
操作日志会记录以前不可见的操作,例如容器映像下载、负载均衡器注册和安全组配置等。未启用操作日志时,您只能观测资源的起始和结束状态。启用操作日志后,您可以看到 Amazon ECS 在这些状态变换之间执行的每个中间步骤。
启用操作日志后,Amazon 管理控制台中的 Amazon Q 将可以访问这些日志,从而帮助您直接从控制台调试部署失败和进程守护程序问题。
操作日志的优势
操作日志为 Amazon ECS 工作负载的管理提供了以下优势:
-
更好了解服务操作:可以查看 Amazon ECS 在状态变换之间执行的但以前不可见的操作,包括基础设施预置、网络配置和资源注册等。
-
改进问题排查:无需联系 Amazon Support 即可诊断部署失败和基础设施问题。操作日志支持的失败原因类型不断增加。
-
更长失败元数据保留期:失败任务元数据保留期超过标准的 1 小时保留期。您可以按照自己的节奏查看有关失败的详细信息。
-
可自助调试:可通过检查引致失败的完整操作顺序,来独立调查并解决问题。
记录的内容
操作日志会捕获以下 Amazon ECS 操作的相关记录:
-
服务部署:状态变换、回滚和生命周期挂钩执行。
-
托管式进程守护程序生命周期:托管式进程守护程序的创建、更新、删除和实例耗尽操作。
操作日志的工作原理
您可以在集群级别选择启用操作日志。您可以通过 Amazon ECS 控制台或使用 Amazon CloudWatch API(PutDeliverySource、PutDeliveryDestination 和 CreateDelivery)启用操作日志。
启用操作日志后,Amazon ECS 将通过 CloudWatch Ingestion Hub 发出结构化的 JSON 日志。Amazon ECS 会将日志传输到您选择的目标:CloudWatch Logs、Amazon S3 或 Amazon Data Firehose。
操作日志采用即发即弃(fire-and-forget)的发布方式。日志发布永远不会阻止或降低 Amazon ECS 资源操作的性能。如果出现暂时性传输失败问题,Amazon ECS 会继续处理您的工作负载而不会中断服务。
日志架构概览
每个操作日志条目都包含以下字段:
-
timestamp:事件发生时的 Unix 时间(以毫秒为单位)。 -
logLevel:严重度级别:INFO、WARN或ERROR。 -
account:Amazon 账户 ID。 -
region:发生该事件的 Amazon 区域。 -
resourceArn:代表选择启用范围的集群 ARN。 -
actionSourceId:子资源标识符,例如服务 ARN 或进程守护程序 ARN。 -
eventName:操作标识符,例如DAEMON_DEPLOYMENT_IN_PROGRESS。 -
detail:包含其他操作上下文的事件特定 JSON 有效载荷。
日志目标与组织
您可以将操作日志发送到以下目标:
-
CloudWatch Logs:CloudWatch Logs 会将日志存储在一个名为
/aws/vendedlogs/ecs/action-logs/{resourceId}的日志组中。Amazon ECS 使用{actionSourceId}作为日志流名称,为每个子资源创建单独的日志流。 -
Amazon S3:Amazon S3 按账户、区域和 5 分钟时间段对日志进行分区。Amazon S3 使用 gzip 格式压缩文件,从而实现高效存储。
-
Amazon Data Firehose:Amazon Data Firehose 以换行符分隔的 JSON 记录格式近乎实时地传输日志。
定价
操作日志是一项付费功能,执行标准的 CloudWatch 已出售日志定价。您需要支付日志摄取和存储费用,具体取决于集群生成的日志量。您可以通过目标设置来配置保留期。通过 Amazon ECS 控制台启用操作日志时,CloudWatch Logs 使用的默认保留期为 7 天。