Exporting log data to Amazon S3 - Amazon CloudWatch 日志
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

Exporting log data to Amazon S3

本章为您提供了信息,以便您可以将日志数据从日志组导出到 Amazon S3 存储桶进行自定义处理和分析,或加载到其他系统。您可以将同一账户或其他账户的 S3 存储桶导出到 S3 存储桶。

您可执行以下操作:

  • 将日志数据导出到 () 中由 SSE-KMS 加密的 S3 存储桶 Amazon Key Management Service Amazon KMS

  • 将日志数据导出到已启用 S3 对象锁定且具有保留期的 S3 桶

我们建议您不要定期将日志导出到 Amazon S3 以持续归档日志。对于该使用案例,我们建议您使用订阅。有关订阅的更多信息,请参阅使用订阅实时处理日志数据

要开始导出进程,您必须创建一个用于存储导出的日志数据的 S3 存储桶。您可以将已导出的文件存储在您的 S3 桶中,并定义 Amazon S3 生命周期规则以自动存档或删除已导出的文件。

您可以导出到使用 AES-256 或 SSE-KMS 加密的 S3 存储桶。不支持导出到由 DSSE-KMS 加密的存储桶。

可将多个日志组或多个时间范围的日志导出至同一个 S3 存储桶中。要整理导出的数据,请为每个导出任务指定一个前缀,该前缀将用作所有导出对象的 Amazon S3 密钥前缀。例如,prod/app-logs/2026-01-03/log-group-name/backup/

注意

不确保会对导出文件中的日志数据块进行基于时间的排序。您可以使用 Linux 实用程序对导出的日志字段数据进行排序。例如,以下实用程序命令对单个文件夹中所有 .gz 文件中的事件进行排序。

find . -exec zcat {} + | sed -r 's/^[0-9]+/\x0&/' | sort -z

以下实用程序命令对多个子文件夹中的.gz 文件进行排序。

find ./*/ -type f -exec zcat {} + | sed -r 's/^[0-9]+/\x0&/' | sort -z

此外,您还可以使用其他 stdout 命令将排序后的输出通过管道传输到另一个文件进行保存。

日志数据可能需要长达 12 小时才能用于导出。导出任务在 24 小时后超时。如果导出任务超时,请在创建导出任务时缩短时间范围。

有关日志数据的近实时分析,请参阅 使用 “日志见解” 分析 CloudWatch 日志数据使用订阅实时处理日志数据

概念

开始之前,请熟悉以下导出概念:

日志组名称

与导出任务关联的日志组的名称。该日志组中的日志数据将导出至指定的 S3 桶中。

从(时间戳)

必填的时间戳,表示自 1970 年 1 月 1 日 00:00:00 UTC 以来的毫秒数。日志组中在此时间或之后提取的所有日志事件都将被导出。

至(时间戳)

必填的时间戳,表示自 1970 年 1 月 1 日 00:00:00 UTC 以来的毫秒数。日志组中该时间之前获得的所有日志事件都会被导出。

目标存储桶

与导出任务关联的 S3 桶的名称。此存储桶用于导出指定日志组中的日志数据。

目标前缀

可选属性,用作所有导出对象的 Amazon S3 键前缀。这有助于在您的存储桶中创建类似于文件夹的组织结构。