Amazon RDS 事件 - AWS 规范性指导

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

Amazon RDS 事件

Amazon RDS 事件表示 Amazon RDS 环境中的更改。例如,当数据库实例状态从正在启动变为可用时,Amazon RDS 会生成事件 RDS-EVENT-0088 The DB instance has been started。Amazon RDS 将事件近乎实时地传输到 Amazon EventBridge。您可以通过 Amazon RDS 控制台、AWS CLI 命令 describe-events 或 Amazon RDS API 操作 DescribeEvents 访问事件。以下屏幕插图显示了 Amazon RDS 控制台上显示的事件和日志。

Amazon RDS 控制台上显示的告警、事件和日志

Amazon RDS 会发出不同类型的事件,包括数据库实例事件、数据库参数组事件、数据库安全组事件、数据库快照事件、RDS 代理事件和蓝/绿部署事件。信息包括:

  • 来源名称和来源类型;例如:"SourceIdentifier": "database-1", "SourceType": "db-instance"

  • 事件的日期和时间;例如:"Date": "2022-12-01T09:20:28.595000+00:00"

  • 与事件关联的消息;例如:"Message": "Finished updating DB parameter group"

  • 事件类别;例如:"EventCategories": ["configuration change"]

有关完整参考,请参阅 Amazon RDS 文档中的 Amazon RDS 事件类别和事件消息

我们建议您监控 Amazon RDS 事件,因为这些事件表示数据库实例可用性的状态更改、配置更改、只读副本状态更改、备份和恢复事件、失效转移操作、故障事件、对安全组的修改以及许多其他通知。例如,如果您已设置只读副本数据库实例以提高数据库的性能和持久性,我们建议您监控与数据库实例关联的只读副本事件类别的 Amazon RDS 事件。这是因为诸如 RDS-EVENT-0057 Replication on the read replica was terminated 之类的事件表明您的只读副本不再与主数据库实例同步。向负责团队通报发生了此类事件可能有助于及时缓解问题。Amazon EventBridge 和其他 AWS 服务 [例如 AWS Lambda、Amazon Simple Queue Service(Amazon SQS)和 Amazon Simple Notification Service(Amazon SNS)] 可以帮助您自动响应系统事件,例如数据库可用性问题或资源更改。

在 Amazon RDS 控制台上,您可以检索过去 24 小时的事件。如果您使用 AWS CLI 或 Amazon RDS API 查看事件,则使用 describe-events 命令检索过去 14 天内的事件,如下所示。

$ aws rds describe-events --source-identifier database-1 --source-type db-instance { "Events": [ { "SourceIdentifier": "database-1", "SourceType": "db-instance", "Message": "CloudWatch Logs Export enabled for logs [audit, error, general, slowquery]", "EventCategories": [], "Date": "2022-12-01T09:20:28.595000+00:00", "SourceArn": "arn:aws:rds:eu-west-3:111122223333:db:database-1" }, { "SourceIdentifier": "database-1", "SourceType": "db-instance", "Message": "Finished updating DB parameter group", "EventCategories": [ "configuration change" ], "Date": "2022-12-01T09:22:40.413000+00:00", "SourceArn": "arn:aws:rds:eu-west-3:111122223333:db:database-1" } ] }

如果想长期存储事件,则无论是一直存储到指定的到期期限还是永久存储,您都可以使用 CloudWatch Logs 来记录有关 Amazon RDS 生成的事件的信息。要实施此解决方案,您可以使用 Amazon SNS 主题来接收 Amazon RDS 事件通知,然后调用 Lambda 函数将事件记录在 CloudWatch Logs 中。

  1. 创建将在事件上调用的 Lambda 函数,并将事件中的信息记录到 CloudWatch Logs。CloudWatch Logs 与 Lambda 集成,并提供了一种便捷方法来记录事件信息,即使用 print 函数将信息输出到 stdout

  2. 通过订阅 Lambda 函数创建 SNS 主题(将协议设置为 Lambda),并将端点设置为您在上一步中创建的 Lambda 函数的 Amazon 资源名称(ARN)。

  3. 配置您的 SNS 主题以接收 Amazon RDS 事件通知。有关详细说明,请参阅 AWS re:Post 文章,了解如何让您的 Amazon SNS 主题接收 Amazon RDS 通知。

  4. 在 Amazon RDS 控制台上,创建新的事件订阅。将目标设置为 ARN,然后选择您之前创建的 SNS 主题。根据您的要求设置来源类型要包括的事件类别。有关更多信息,请参阅 Amazon RDS 文档中的订阅 Amazon RDS 事件通知