跳至内容

如何优化 CloudWatch Logs 在大容量数据摄取和长期存储方面的成本?

2 分钟阅读
0

我需要优化我的 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。

实施日志保留策略

通过以下步骤查看和修改日志组的保留期:

  1. 打开 CloudWatch 控制台。
  2. 导航到 Log groups(日志组)部分。
  3. 选择要修改的日志组。
  4. 从 Actions(操作)菜单中选择 Edit retention setting(编辑保留设置)。
  5. 根据您的合规性和运营要求设置适当的保留期(例如 7 天、14 天或 30 天)。

使用不频繁访问日志类

对于不频繁访问的日志组,使用 Infrequent Access(不频繁访问)类创建新的日志组。有关更多信息,请参阅 CreateLogGroup。

注意: 您只能在创建期间分配此日志组类。之后您无法对其进行更改。

降低日志详细程度

检查您的应用程序和 AWS 服务,通过以下操作减少不必要的日志记录:

  • 分析您的日志数据以识别和删除调试级别消息或重复消息。有关详细信息,请参阅 Analyzing log data with CloudWatch Logs Insights(使用 CloudWatch Logs Insights 分析日志数据)。
  • 对于 AWS Lambda 函数,如果对您的使用案例适用,您可以修改执行角色策略以限制日志摄取。
  • 对于 AWS Glue 任务,实施减少 CloudWatch 日志输出的策略。

实施日志筛选和聚合

要实施日志筛选和聚合,请执行以下操作:

  • 使用 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)以进行长期保留。

监控和分析成本

通过以下操作监控和分析成本:

  • 使用 AWS Cost Explorer 成本管理服务跟踪一段时间内的 CloudWatch Logs 成本。有关详细信息,请参阅 Getting started with Cost Explorer(开始使用 Cost Explorer 成本管理服务)。
  • 使用 AWS Budgets 设置预算告警,在 CloudWatch Logs 成本超出预定义阈值时提醒您。
  • 定期审查和审计未使用的 CloudWatch 指标和警报。

考虑使用集中式日志记录解决方案

对于多区域和多账户设置,请通过 Amazon OpenSearch Service 或第三方日志管理工具等服务评估集中式日志记录解决方案。这有助于整合来自多个来源的日志,并有可能降低总体成本。

相关信息

Amazon CloudWatch 定价

What is Amazon CloudWatch Logs?(什么是 Amazon CloudWatch Logs?)