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

Posted

技术标签:

【中文标题】AWS RDS 数据库日志为日志组设置保留期【英文标题】:AWS RDS database logs set retention period for log group 【发布时间】:2021-04-13 16:59:00 【问题描述】:

根据 RDS 的 AWS 文档 -

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

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

我有两个问题

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

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

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

【问题讨论】:

【参考方案1】:
    保留期

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

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

    CloudWatch 日志到 S3。

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

【讨论】:

以上是关于AWS RDS 数据库日志为日志组设置保留期的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 cloudformation 或 yaml 将保留天数设置为日志流

AWS BeanStalk 不倾向于连接到 AWS RDS

AWS RDS Aurora - 如何使用 PgAdmin 进行连接?

MySQL慢日志功能分析及优化增强

如何使用 Terraform 自动切换到 AWS 的 RDS 中的新参数组?

识别 RDS 上 Postgresql 的慢查询