我需要优化我的 Amazon CloudWatch Logs,因为在多个 AWS 服务和 AWS 区域中存在大量数据摄取和长期存储。
解决方法
识别高容量日志组
使用 CloudWatch 指标数学表达式来识别数据摄取量高的日志组:
SORT(SEARCH('{AWS/Logs,LogGroupName} MetricName="IncomingBytes"', 'Sum', 86400), MAX, 10)
此表达式可帮助您识别过去 24 小时内传入数据量排名前 10 的日志组。
注意: 如果您在运行 AWS 命令行界面 (AWS CLI) 命令时收到错误,请参阅 Troubleshooting errors for the AWS CLI(AWS CLI 错误故障排除)。此外,请确保您使用的是最新版本的 AWS CLI。
实施日志保留策略
通过以下步骤查看和修改日志组的保留期:
- 打开 CloudWatch 控制台。
- 导航到 Log groups(日志组)部分。
- 选择要修改的日志组。
- 从 Actions(操作)菜单中选择 Edit retention setting(编辑保留设置)。
- 根据您的合规性和运营要求设置适当的保留期(例如 7 天、14 天或 30 天)。
使用不频繁访问日志类
对于不频繁访问的日志组,使用 Infrequent Access(不频繁访问)类创建新的日志组。有关更多信息,请参阅 CreateLogGroup。
注意: 您只能在创建期间分配此日志组类。之后您无法对其进行更改。
降低日志详细程度
检查您的应用程序和 AWS 服务,通过以下操作减少不必要的日志记录:
实施日志筛选和聚合
要实施日志筛选和聚合,请执行以下操作:
- 使用 CloudWatch Logs Insights 来分析日志模式并识别筛选机会。
- 实施 CloudWatch Logs 指标筛选条件,根据特定的日志模式创建自定义指标。
- 在摄取之前,使用 AWS Lambda 函数处理和聚合日志。有关详细信息,请参阅 Create your first Lambda function(创建您的第一个 Lambda 函数)。
使用 Amazon S3 进行长期存储
要使用 Amazon Simple Storage Service (Amazon S3) 进行长期存储,请执行以下操作:
- 设置 CloudWatch Logs 订阅筛选条件,将日志发送到 Amazon S3 进行存档。有关详细信息,请参阅 Export log data to Amazon S3 using the console(使用控制台将日志数据导出到 Amazon S3)。
- 实施日志导出流程,将较旧日志从 CloudWatch 移至 Amazon S3。
- 使用 Amazon S3 生命周期策略将日志转移到更便宜的存储层(例如 Amazon S3 Glacier)以进行长期保留。
监控和分析成本
通过以下操作监控和分析成本:
考虑使用集中式日志记录解决方案
对于多区域和多账户设置,请通过 Amazon OpenSearch Service 或第三方日志管理工具等服务评估集中式日志记录解决方案。这有助于整合来自多个来源的日志,并有可能降低总体成本。
相关信息
Amazon CloudWatch 定价
What is Amazon CloudWatch Logs?(什么是 Amazon CloudWatch Logs?)