我已在我们的生产和 UAT RDS 数据库中启用了 AWS RDS 增强监控。它们连接到 ERP 实例。
我在调试用户问题时寻找慢查询,并且审计日志、常规日志和慢速查询日志已消失。
它们曾经启用过,现在也仍然启用。它们曾经在 CloudWatch 中。尽管我们保留了 1 年以上,但一个也没有剩下。
如果我进入控制面板并点击“已发布日志”中的超链接,CloudWatch 会说
There was an error filtering log events
The specified log group does not exist
错误日志确实存在,并且没有显示任何日志错误。
我还尝试关闭其他日志,保留设置,然后将其打开。其他日志(慢速 SQL 等)仍然不存在。
这些生产日志对于业务至关重要 - 我的意思是,如果您的审计日志突然消失,很难建立警报,对吗?我不敢相信这些日志消失甚至没有错误。
我确实看到“增强监控”已被关闭,因此我将其打开,并得到了以下信息:
Amazon RDS 无法在您的实例上配置增强监控:uat,并且此功能已被禁用。这可能是由于 rds-monitoring-role 在您的账户中不存在且配置不正确。有关更多详细信息,请参阅 Amazon RDS 文档中的故障排除部分。
这个角色确实存在,而且自 2019 年以来就没有改变过。
rds-monitoring-role,信任关系:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "",
"Effect": "Allow",
"Principal": {
"Service": "monitoring.rds.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
还有一件事:大约两周前我确实安装了 DataDog 的 AWS 集成 CloudWatch 例程。那大概就是所有日志消失的时候,但我认为这更像是巧合,否则我会向他们开一张票。我删除了他们的 CloudWatch 堆栈,日志还没有恢复。
这个问题提到了日志参数,但我检查过,我们的没有改变。
答案1
我设置了一个 Amazon RDS 实例来记录审计、错误、常规和慢速查询。虽然这些日志在 RDS 配置中可见,但我在检查 CloudWatch 时遇到了错误。
为了解决这个问题,我按照 RDS 服务的建议将 log_output 参数更改为 FILE。进行此调整后,慢速查询日志开始显示在 CloudWatch 中。此外,我可能已将 long_query_time 设置为 0 以捕获所有查询,并将 slow_query_log 设置为 1。