我想使用订阅筛选条件、Logs Insights 查询、Amazon Simple Storage Service (Amazon S3) 导出、CloudWatch API 以及将日志下载为 CSV 文件的方法检索 Amazon CloudWatch Logs 中的日志数据。
解决方法
**注意:**如果您在运行 AWS 命令行界面 (AWS CLI) 命令时收到错误,请参阅 AWS CLI 错误故障排除。此外,请确保您使用的是最新版本的 AWS CLI。
要检索 CloudWatch Logs 中的日志数据,请遵循以下最佳实践:
使用订阅筛选条件流式传输日志数据
要实时检索 CloudWatch Logs 中的日志数据,请使用订阅筛选条件。日志数据订阅筛选条件可防止 CloudWatch API 节流。有关更多信息,请参阅使用订阅实时处理日志数据和日志组级订阅筛选条件。
**注意:**Amazon Kinesis Data Streams 会自动重试被节流的服务 API。
使用 CloudWatch API
要手动定位日志数据,请使用 GetLogEvents 或 FilterLogEvents CloudWatch API 操作。由于存在每秒事务数 (TPS) 配额,您无法扩展这些 API 操作。当通过令牌获取的可用日志事件较多时,GetLogEvents API 操作可能会返回空结果。有关当前配额,请参阅 CloudWatch Logs 配额。如遇 API 节流,请使用订阅筛选条件。
运行 CloudWatch Logs Insights 查询
要搜索和分析日志数据,请在 CloudWatch Logs Insights 中运行查询。查询有助于响应问题并确定原因,从而进一步进行故障排除。有关详细信息,请参阅使用 CloudWatch Logs Insights 分析日志数据。
将日志数据导出到 Amazon S3
可以在批量使用案例中将 CloudWatch Logs 数据导出到 Amazon S3。从 CloudWatch Logs 导出日志数据最多可能需要 12 个小时。要进行实时分析和处理,请使用订阅筛选条件。
**注意:**对于处于 PENDING、PENDING_CANCEL 或 RUNNING 状态的日志数据,一个 AWS 账户只能有一个导出任务。
将日志下载到 .csv 文件中
您可以使用 CloudWatch 控制台、AWS CLI 或 CloudWatch Logs Insights 来检索日志数据。使用 CloudWatch 控制台
完成以下步骤:
- 打开 CloudWatch 控制台。
- 选择您的日志组。
- 选择包含要下载的日志事件的日志流。
- 选择 Actions(操作),然后选择 Download Search Results(下载搜索结果)。
使用 AWS CLI
要检索 .csv 文件格式的日志事件,请运行以下 AWS CLI get-log-events 命令:
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
**注意:**请将 example-loggroup-name 替换为您的日志组名称,将 example-logstream-name 替换为您的日志流名称,将 1705147529 替换为您的开始时间,并将 1705233929 替换为您的结束时间。
.csv 文件存储在启动命令的同一目录中。此外,AWS CLI 会使用工作站配置的默认 AWS 区域和配置文件。在上述 AWS CLI 命令中为您的工作站指定区域。
使用 CloudWatch Logs Insights 检索日志数据
运行查询以检索日志数据。要导出少于 10,000 个日志的数据,请选择 Export results(导出结果)。或者,要导出超过 10,000 个日志的数据,请将日志导出到 S3 存储桶,然后将数据下载到 .csv 文件中。