AWS RDS 数据库日志为日志组设置保留期

时间:2021-01-07 23:19:55

标签: amazon-web-services terraform amazon-rds

根据 RDS 的 AWS 文档 -

将数据库日志发布到 Amazon CloudWatch Logs

除了查看和下载数据库实例日志之外,您还可以将日志发布到 Amazon CloudWatch Logs。使用 CloudWatch Logs,您可以对日志数据执行实时分析,将数据存储在高度持久的存储中,并使用 CloudWatch Logs 代理管理数据。除非您指定保留期,否则 AWS 会无限期保留发布到 CloudWatch Logs 的日志数据。

我有两个问题

  1. 我想弄清楚如何在 terraform 中设置保留期 DbInstance 的 terraform 语法似乎没有用于设置自定义日志组名称的参数

  2. RDS 数据库日志的最佳实践是什么,我假设日志应该在使用 S3 生命周期规则一段时间后存档在 S3 中?那是对的吗 ?如何使用 Terraform 实现这一点

我无法在互联网上找到有关此主题的任何内容。非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

  1. 保留期

这不是您在创建数据库时可以设置的选项。它的工作方式是 RDS 将在 CloudWatch Logs 中为您创建日志组,例如/aws/rds/instance/<your-db-id>/error 保留为 Never expire

要更改这一点,您必须在日志组级别使用 AWS 控制台、AWS CLI 或开发工具包,而不是使用 RDS。要在 TF 中执行此操作,您可以将 local-exec 与 AWS CLI 结合使用来运行 put-retention-policy 并更改保留期。

  1. CloudWatch 将日志记录到 S3。

您可以为将写入 S3 的日志组创建 Subscription Filters with Amazon Kinesis Data Firehose。但同样,这不是RDS的设置,而是日志组。因此,就像以前一样,您必须使用 AWS CLI 通过 local-exec 修改由 RDS 创建的日志组。