

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

# Amazon RDS 事件
<a name="rds-events"></a>

*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](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/rds/describe-events.html) 或 Amazon RDS API 操作 [DescribeEvents](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeEvents.html) 访问事件。以下屏幕插图显示了 Amazon RDS 控制台上显示的事件和日志。

![\[Amazon RDS 控制台上显示的告警、事件和日志\]](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/amazon-rds-monitoring-alerting/images/alarms-events-logs-rds-console.png)


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 事件类别和事件消息](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Events.Messages.html)。

我们建议您监控 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](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html) 来记录有关 Amazon RDS 生成的事件的信息。要实施此解决方案，您可以使用 Amazon SNS 主题来接收 Amazon RDS 事件通知，然后调用 Lambda 函数将事件记录在 CloudWatch Logs 中。

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

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

1. 配置您的 SNS 主题以接收 Amazon RDS 事件通知。有关详细说明，请参阅 [AWS re:Post 文章](https://repost.aws/knowledge-center/sns-topics-rds-notifications)，了解如何让您的 Amazon SNS 主题接收 Amazon RDS 通知。

1. 在 Amazon RDS 控制台上，创建新的事件订阅。将**目标**设置为 ARN，然后选择您之前创建的 SNS 主题。根据您的要求设置**来源类型**和**要包括的事件类别**。有关更多信息，请参阅 Amazon RDS 文档中的[订阅 Amazon RDS 事件通知](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Events.Subscribing.html)。