使用AWS re:Post即您表示您同意 AWS re:Post 使用条款

如何检索 CloudWatch Logs 的日志数据?

2 分钟阅读
0

我想了解如何使用订阅筛选器、Logs Insights 查询、S3 导出、CloudWatch API 以及将日志下载为 CSV 文件等各种方法检索 Amazon CloudWatch Logs 的日志数据。

简短描述

要检索 CloudWatch Logs 的日志数据,请根据您的用例使用以下最佳实践:

  • 使用订阅筛选器流式传输日志数据。
  • 运行 CloudWatch Logs Insights 查询。
  • 将日志数据导出到 Amazon Simple Storage Service (Amazon S3)。
  • 使用 CloudWatch API。
  • 将日志下载到 .csv 文件中。

解决方法

使用订阅筛选器流式传输日志数据

要实时检索 CloudWatch Logs 的日志数据,请使用订阅筛选器。日志数据订阅筛选器可防止 CloudWatch API 节流。有关更多信息,请参阅“使用订阅实时处理日志数据”和“日志组级订阅筛选器”。对于 Amazon Kinesis Data Streams,会自动重试被节流的服务 API。

运行 CloudWatch Logs Insights 查询

要搜索和分析日志数据,请在 CloudWatch Logs Insights 中运行查询。查询有助于响应问题并确定原因,从而进一步进行故障排除。有关详细信息,请参阅使用 CloudWatch Logs Insights 分析日志数据

将日志数据导出到 Amazon S3

可以在批量用例中将 CloudWatch Logs 数据导出到 Amazon S3。从 CloudWatch Logs 导出日志数据最多可能需要 12 个小时。要进行实时分析和处理,请使用订阅筛选器。

**注意:**对于处于 PENDINGPENDING_CANCELRUNNING 状态的日志数据,一个 AWS 账户只能有一个导出任务。

使用 CloudWatch API

要手动查找日志数据,请使用 GetLogEventsFilterLogEvents CloudWatch API。由于存在每秒事务量 (TPS) 配额,这些 API 无法扩展。有关当前配额,请参阅 CloudWatch Logs 配额。如遇 API 节流,请使用订阅筛选器。

将日志下载到 .csv 文件中

**注意:**如果在运行 AWS 命令行界面(AWS CLI)命令时收到错误,请参阅排查 AWS CLI 错误。此外,确保您使用的是最新版本的 AWS CLI

要检索 .csv 文件格式的日志数据,请使用以下方法:

  • 打开 CloudWatch 控制台。
  • 使用 AWS CLI。
  • 使用 CloudWatch Logs Insights。

使用 CloudWatch 控制台

完成以下步骤:

  1. 打开 CloudWatch 控制台,然后选择日志组。
  2. 选择包含要下载的日志事件的日志流。
  3. 选择操作,然后选择下载搜索结果

使用 AWS CLI

要检索 .csv 文件格式的日志事件,请运行 get-log-events 命令:

**注意:**请将 example-loggroup-name 替换为您的日志组名称,将 example-logstream-name 替换为日志流名称。

aws logs get-log-events --log-group-name example-loggroup-name  --log-stream-name example-logstream-name  --start-time 1705147529 --end-time 1705233929 > log_events.csv

注意:.csv 文件存储在启动命令的同一目录中。此外,AWS CLI 会使用工作站配置的默认 AWS 区域和配置文件。请指定对应的区域。存在较多通过令牌可用的日志事件时,GetLogEvents API 可能会返回空结果。

使用 CloudWatch Logs Insights

完成以下步骤:

  1. 运行查询以检索日志数据。
  2. 根据日志数量,使用以下一种方法导出数据:
    少于 10000 个日志时,请选择导出结果
    超过 10000 个日志时,请将日志导出到 Amazon S3 存储桶。然后,将数据下载到 .csv 文件中。
AWS 官方
AWS 官方已更新 8 个月前