

# 使用操作日志监控 Amazon ECS 操作
<a name="action-logs"></a>

## Amazon ECS 操作日志概述
<a name="action-logs-overview"></a>

借助 Amazon ECS 操作日志，您可以监控 Amazon ECS 在容器生命周期操作期间代表您执行的所有操作。操作日志会记录集群内的每个资源操作、状态变化和服务发起的 API 调用并添加时间戳。

操作日志会记录以前不可见的操作，例如容器映像下载、负载均衡器注册和安全组配置等。未启用操作日志时，您只能观测资源的起始和结束状态。启用操作日志后，您可以看到 Amazon ECS 在这些状态变换之间执行的每个中间步骤。

启用操作日志后，Amazon 管理控制台中的 Amazon Q 将可以访问这些日志，从而帮助您直接从控制台调试部署失败和进程守护程序问题。

## 操作日志的优势
<a name="action-logs-benefits"></a>

操作日志为 Amazon ECS 工作负载的管理提供了以下优势：
+ **更好了解服务操作**：可以查看 Amazon ECS 在状态变换之间执行的但以前不可见的操作，包括基础设施预置、网络配置和资源注册等。
+ **改进问题排查**：无需联系 Amazon Support 即可诊断部署失败和基础设施问题。操作日志支持的失败原因类型不断增加。
+ **更长失败元数据保留期**：失败任务元数据保留期超过标准的 1 小时保留期。您可以按照自己的节奏查看有关失败的详细信息。
+ **可自助调试**：可通过检查引致失败的完整操作顺序，来独立调查并解决问题。

## 记录的内容
<a name="action-logs-what-gets-logged"></a>

操作日志会捕获以下 Amazon ECS 操作的相关记录：
+ **服务部署**：状态变换、回滚和生命周期挂钩执行。
+ **托管式进程守护程序生命周期**：托管式进程守护程序的创建、更新、删除和实例耗尽操作。

## 操作日志的工作原理
<a name="action-logs-how-it-works"></a>

您可以在集群级别选择启用操作日志。您可以通过 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 会继续处理您的工作负载而不会中断服务。

## 日志架构概览
<a name="action-logs-schema"></a>

每个操作日志条目都包含以下字段：
+ `timestamp`：事件发生时的 Unix 时间（以毫秒为单位）。
+ `logLevel`：严重度级别：`INFO`、`WARN` 或 `ERROR`。
+ `account`：Amazon 账户 ID。
+ `region`：发生该事件的 Amazon 区域。
+ `resourceArn`：代表选择启用范围的集群 ARN。
+ `actionSourceId`：子资源标识符，例如服务 ARN 或进程守护程序 ARN。
+ `eventName`：操作标识符，例如 `DAEMON_DEPLOYMENT_IN_PROGRESS`。
+ `detail`：包含其他操作上下文的事件特定 JSON 有效载荷。

## 日志目标与组织
<a name="action-logs-destinations"></a>

您可以将操作日志发送到以下目标：
+ **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 记录格式近乎实时地传输日志。

## 定价
<a name="action-logs-pricing"></a>

操作日志是一项付费功能，执行标准的 CloudWatch 已出售日志定价。您需要支付日志摄取和存储费用，具体取决于集群生成的日志量。您可以通过目标设置来配置保留期。通过 Amazon ECS 控制台启用操作日志时，CloudWatch Logs 使用的默认保留期为 7 天。

**Topics**
+ [Amazon ECS 操作日志概述](#action-logs-overview)
+ [操作日志的优势](#action-logs-benefits)
+ [记录的内容](#action-logs-what-gets-logged)
+ [操作日志的工作原理](#action-logs-how-it-works)
+ [日志架构概览](#action-logs-schema)
+ [日志目标与组织](#action-logs-destinations)
+ [定价](#action-logs-pricing)
+ [Amazon ECS 操作日志入门](action-logs-getting-started.md)
+ [使用 Amazon ECS Action Logs 进行问题排查](action-logs-troubleshooting.md)