

# 使用 Amazon CloudWatch 监控 Amazon RDS 指标
<a name="monitoring-cloudwatch"></a>

Amazon CloudWatch 是一个指标存储库。此存储库可从 Amazon RDS 收集原始数据，并将数据处理为易读的近乎实时的指标。有关发送到 CloudWatch 的 Amazon RDS 指标的完整列表，请参阅 [Amazon RDS 的指标参考](https://docs.aws.amazon.com/en_us/AmazonRDS/latest/UserGuide/metrics-reference.html)。

要大规模分析数据库性能并对其进行故障排除，请使用 [CloudWatch 数据库洞察](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_DatabaseInsights.html)。

**Topics**
+ [Amazon RDS 和 Amazon CloudWatch 概述](#cw-metrics-overview)
+ [在 CloudWatch 控制台和 AWS CLI 中查看数据库实例指标](metrics_dimensions.md)
+ [将 Performance Insights 指标导出到 CloudWatch](PI_metrics_export_CW.md)
+ [创建 CloudWatch 警报以监控 Amazon RDS](creating_alarms.md)
+ [教程：为 Amazon RDS 的多可用区数据库集群副本滞后创建 Amazon CloudWatch 警报](multi-az-db-cluster-cloudwatch-alarm.md)

## Amazon RDS 和 Amazon CloudWatch 概述
<a name="cw-metrics-overview"></a>

默认情况下，以 1 分钟为间隔自动将 Amazon RDS 指标数据发送到 CloudWatch。例如，`CPUUtilization` 指标记录了一段时间内数据库实例的 CPU 使用率百分比。时间段为 60 秒（1 分钟）的数据点可用 15 天。这意味着您能够访问历史信息，了解您的 Web 应用程序或服务的执行情况。

现在，您可以将 Performance Insights 指标控制面板从 Amazon RDS 导出到 Amazon CloudWatch。您可以将预配置或自定义的指标控制面板导出为新的控制面板，也可以将其添加到现有的 CloudWatch 控制面板中。导出的控制面板可在 CloudWatch 控制台中查看。有关如何将 Performance Insights 指标控制面板导出到 CloudWatch 的更多信息，请参阅[将 Performance Insights 指标导出到 CloudWatch](PI_metrics_export_CW.md)。

如下图所示，您可以为 CloudWatch 指标设置警报。例如，您可能会创建一个警报，在实例的 CPU 使用率超过 70% 时发出信号。您可以配置 Amazon Simple Notification Service 以在超过阈值时向您发送电子邮件。

![\[AWS CloudWatch 中的 RDS 指标\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/rds-cloudwatch.png)


Amazon RDS 向 Amazon CloudWatch 发布以下类型的指标：
+ RDS 数据库实例的指标

  有关这些指标的表格，请参阅 [Amazon RDS 的 Amazon CloudWatch 指标](rds-metrics.md)。
+ Performance Insights 指标

  有关这些指标的表格，请参阅 [Amazon RDS 性能详情的 Amazon CloudWatch 指标](USER_PerfInsights.Cloudwatch.md) 和 [性能详情计数器指标](USER_PerfInsights_Counters.md)。
+ 增强监控指标（发布到 Amazon CloudWatch Logs）

  有关这些指标的表格，请参阅 [增强监控中的操作系统指标](USER_Monitoring-Available-OS-Metrics.md)。
+ 您的 AWS 账户中 Amazon RDS 服务配额的用量指标

  有关这些指标的表格，请参阅 [Amazon RDS 的 Amazon CloudWatch 用量指标](rds-metrics.md#rds-metrics-usage)。有关 Amazon RDS 配额的更多信息，请参阅 [Amazon RDS 的配额和限制](CHAP_Limits.md)。

有关 CloudWatch 的更多信息，请参阅 *Amazon CloudWatch 用户指南* 中的[什么是 Amazon CloudWatch？](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/WhatIsCloudWatch.html)。有关 CloudWatch 指标保留的更多信息，请参阅[指标保留](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/cloudwatch_concepts.html#metrics-retention)。

# 在 CloudWatch 控制台和 AWS CLI 中查看数据库实例指标
<a name="metrics_dimensions"></a>

在下文中，您可以了解有关如何使用 CloudWatch 查看数据库实例指标的详细信息。有关使用 CloudWatch Logs 实时监控数据库实例的操作系统指标的信息，请参阅[使用增强监控来监控操作系统指标](USER_Monitoring.OS.md)。

在使用 Amazon RDS 资源时，Amazon RDS 每分钟向 Amazon CloudWatch 发送一次指标和维度。

现在，您可以将 Performance Insights 指标控制面板从 Amazon RDS 导出到 Amazon CloudWatch，然后在 CloudWatch 控制台中查看这些指标。有关如何将 Performance Insights 指标控制面板导出到 CloudWatch 的更多信息，请参阅[将 Performance Insights 指标导出到 CloudWatch](PI_metrics_export_CW.md)。

使用以下过程在 CloudWatch 控制台和 CLI 中查看 Amazon RDS 的指标。

## 控制台
<a name="metrics_dimensions.console"></a>

**使用 Amazon CloudWatch 控制台查看指标**

指标的分组首先依据服务命名空间，然后依据每个命名空间内的各种维度组合。

1. 访问 [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) 打开 CloudWatch 控制台。

   将显示 CloudWatch 概览主页。  
![\[CloudWatch 概述页面\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/monitoring-overviewpage-console2.png)

1. 如果需要，更改 AWS 区域。从导航栏中，选择您的 AWS 资源所在的 AWS 区域。有关更多信息，请参阅[区域和端点](https://docs.aws.amazon.com/general/latest/gr/rande.html)。

1. 在导航窗格中，选择 **Metrics**（指标），然后选择 **All metrics**（所有指标）。  
![\[选择指标命名空间\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/cw-all-metrics.png)

1. 向下滚动并选择 **RDS** 指标命名空间。

   该页面将显示 Amazon RDS 维度。有关这些维度的说明，请参阅 [Amazon RDS 的 Amazon CloudWatch 维度](dimensions.md)。  
![\[选择指标命名空间\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/rds-monitoring-01.png)

1. 选择指标维度，例如，**按数据库类**。  
![\[筛选指标\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/metrics-by-instance-class.png)

1. 执行以下任一操作：
   + 要对指标进行排序，请使用列标题。
   + 要为指标绘制图表，请选中该指标旁的复选框。
   + 要按资源进行筛选，请选择资源 ID，然后选择**添加到搜索**。
   + 要按指标进行筛选，请选择指标名称，然后选择**添加到搜索**。

   以下示例筛选 **db.t3.medium** 类并绘制 **CPUUtilization** 指标。  
![\[筛选指标\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/rds-monitoring-03.png)

## AWS CLI
<a name="metrics_dimensions.CLI"></a>

若要通过使用 AWS CLI 获取指标信息，请使用 CloudWatch 命令 [https://docs.aws.amazon.com/cli/latest/reference/cloudwatch/list-metrics.html](https://docs.aws.amazon.com/cli/latest/reference/cloudwatch/list-metrics.html)。在以下示例中，您将列出 `AWS/RDS` 命名空间中的所有指标。

```
aws cloudwatch list-metrics --namespace AWS/RDS
```

要获取指标数据，请使用命令 [https://docs.aws.amazon.com/cli/latest/reference/cloudwatch/get-metric-data.html](https://docs.aws.amazon.com/cli/latest/reference/cloudwatch/get-metric-data.html)。

以下示例以 5 分钟为间隔，获取实例 `my-instance` 在特定 24 小时时段内的 `CPUUtilization` 统计数据。

使用以下内容创建 JSON 文件 `CPU_metric.json`。

```
 1. {
 2.    "StartTime" : "2023-12-25T00:00:00Z",
 3.    "EndTime" : "2023-12-26T00:00:00Z",
 4.    "MetricDataQueries" : [{
 5.      "Id" : "cpu",	    
 6.      "MetricStat" : {
 7. 	   "Metric" : {	  
 8.   	     "Namespace" : "AWS/RDS",
 9.   	     "MetricName" : "CPUUtilization",
10.   	     "Dimensions" : [{ "Name" : "DBInstanceIdentifier" , "Value" : my-instance}]
11. 	   },  
12.        "Period" : 360,
13.        "Stat" : "Minimum" 
14.      }
15.    }]
16. }
```

**Example**  
对于 Linux、macOS 或 Unix：  

```
1. aws cloudwatch get-metric-data \
2.     --cli-input-json file://CPU_metric.json
```
对于：Windows  

```
1. aws cloudwatch get-metric-data ^
2.      --cli-input-json file://CPU_metric.json
```
示例输出如下：  

```
{
    "MetricDataResults": [
        {
            "Id": "cpu",
            "Label": "CPUUtilization",
            "Timestamps": [
                "2023-12-15T23:48:00+00:00",
                "2023-12-15T23:42:00+00:00",
                "2023-12-15T23:30:00+00:00",
                "2023-12-15T23:24:00+00:00",
                ...
            ],
            "Values": [
                13.299778337027714,
                13.677507543049558,
                14.24976250395827,
                13.02521708695145,
                ...
            ],
            "StatusCode": "Complete"
        }
    ],
    "Messages": []
}
```
有关更多信息，请参阅《Amazon CloudWatch 用户指南**》中的[获取指标统计数据](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/getting-metric-data.html)。

# 将 Performance Insights 指标导出到 CloudWatch
<a name="PI_metrics_export_CW"></a>

Performance Insights 允许您将数据库实例的预配置或自定义指标控制面板导出到 Amazon CloudWatch。您可以将指标控制面板导出为新的控制面板，也可以将其添加到现有的 CloudWatch 控制面板中。当您选择将控制面板添加到现有 CloudWatch 控制面板时，可以创建标题标签，以便指标单独显示在 CloudWatch 控制面板的某个部分中。

您还可以在 CloudWatch 控制台中查看导出的指标控制面板。如果您在导出 Performance Insights 指标控制面板后向其添加了新指标，则必须再次导出此控制面板，然后才能在 CloudWatch 控制台中查看新指标。

您还可以在 Performance Insights 控制面板中选择一个指标小组件，然后在 CloudWatch 控制台中查看指标数据。

有关在 CloudWatch 控制台中查看指标的更多信息，请参阅 [在 CloudWatch 控制台和 AWS CLI 中查看数据库实例指标](metrics_dimensions.md)。

在以下各节中，将性能详情指标导出到 CloudWatch 作为新的或现有控制面板，并在 CloudWatch 中查看性能详情指标。

**Topics**
+ [将 Performance Insights 指标作为新的控制面板导出到 CloudWatch](PI_metrics_export_CW.new_dashboard.md)
+ [向现有的 CloudWatch 控制面板添加 Performance Insights 指标](PI_metrics_export_CW.existing_dashboard.md)
+ [在 CloudWatch 中查看 Performance Insights 指标小组件](PI_metrics_export_CW.individual_widget.md)

# 将 Performance Insights 指标作为新的控制面板导出到 CloudWatch
<a name="PI_metrics_export_CW.new_dashboard"></a>

从 Performance Insights 控制面板中选择预配置或自定义的指标控制面板，然后将其作为新控制面板导出到 CloudWatch。您可以在 CloudWatch 控制台中查看这些导出的控制面板。

**将 Performance Insights 指标控制面板作为新控制面板导出到 CloudWatch**

1. 通过以下网址打开 Amazon RDS 控制台：[https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)。

1. 在左侧导航窗格中，选择**性能详情**。

1. 选择一个数据库实例。

   将显示该数据库实例的 Performance Insights 控制面板。

1. 向下滚动并选择**指标**。

   默认情况下，会显示包含 Performance Insights 指标的预配置控制面板。

1. 选择预配置或自定义控制面板，然后选择**导出到 CloudWatch**。

   随后会显示**导出到 CloudWatch** 窗口。  
![\[包含“导出到 CloudWatch”按钮的 Performance Insights 控制面板\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/PI-ExprtToCW.png)

1. 选择**导出为新控制面板**。  
![\[选中“导出为新控制面板”选项的“导出到 CloudWatch”窗口\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/PI-ExprtToCW-NewDashboard.png)

1. 在**控制板名称**字段中输入新控制面板的名称，然后选择**确认**。

   控制面板导出成功后，横幅会显示一条消息。  
![\[显示成功消息的横幅\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/PI-ExprtToCW-SuccessBanner.png)

1. 选择横幅中的链接或**在 CloudWatch 中查看**，即可在 CloudWatch 控制台中查看指标控制面板。

# 向现有的 CloudWatch 控制面板添加 Performance Insights 指标
<a name="PI_metrics_export_CW.existing_dashboard"></a>

向现有的 CloudWatch 控制面板添加预配置或自定义指标控制面板。您可以向指标控制面板添加标签，使其单独显示在 CloudWatch 控制面板的某个部分中。

**将指标导出到现有的 CloudWatch 控制面板**

1. 通过以下网址打开 Amazon RDS 控制台：[https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)。

1. 在左侧导航窗格中，选择 **Performance Insights**。

1. 选择一个数据库实例。

   将显示该数据库实例的 Performance Insights 控制面板。

1. 向下滚动并选择**指标**。

   默认情况下，会显示包含 Performance Insights 指标的预配置控制面板。

1. 选择预配置或自定义控制面板，然后选择**导出到 CloudWatch**。

   随后会显示**导出到 CloudWatch** 窗口。

1. 选择**添加到现有控制面板**。  
![\[选中“添加到现有控制面板”选项的“导出到 CloudWatch”窗口\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/Pi-ExprtToCW-AddToExistingBoard.png)

1. 指定控制面板目标和标签，然后选择**确认**。
   + **CloudWatch 控制面板目标** - 选择现有的 CloudWatch 控制面板。
   + **CloudWatch 控制面板部分标签 - 可选** - 输入要在 CloudWatch 控制面板的此部分中显示的 Performance Insights 指标的名称。

   控制面板导出成功后，横幅会显示一条消息。

1. 选择横幅中的链接或**在 CloudWatch 中查看**，即可在 CloudWatch 控制台中查看指标控制面板。

# 在 CloudWatch 中查看 Performance Insights 指标小组件
<a name="PI_metrics_export_CW.individual_widget"></a>

在 Amazon RDS Performance Insights 控制面板中选择一个 Performance Insights 指标小组件，然后在 CloudWatch 控制台中查看指标数据。

**导出指标小组件并在 CloudWatch 控制台中查看指标数据**

1. 通过以下网址打开 Amazon RDS 控制台：[https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)。

1. 在左侧导航窗格中，选择 **Performance Insights**。

1. 选择一个数据库实例。

   将显示该数据库实例的 Performance Insights 控制面板。

1. 向下滚动到**指标**。

   默认情况下，会显示包含 Performance Insights 指标的预配置控制面板。

1. 选择一个指标小组件，然后在菜单中选择**在 CloudWatch 中查看**。  
![\[包含“在 CloudWatch 中查看”菜单的选定小组件\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/PI-ExprtToCW-SelectedMetric.png)

   指标数据显示在 CloudWatch 控制台中。

# 创建 CloudWatch 警报以监控 Amazon RDS
<a name="creating_alarms"></a>

您可以创建在警报改变状态时发送 Amazon SNS 消息的 CloudWatch 警报。警报会监控您指定的时间段内的某个指标。此外，警报会根据指标值在多个时间段内对比给定阈值的情况执行一项或多项操作。操作是向 Amazon SNS 主题或 Amazon EC2 Auto Scaling 策略发送的通知。

警报只会调用操作进行持续的状态变更。CloudWatch 警报不会仅仅因为处于特定状态而调用操作。该状态必须改变并在指定数量的时间段内一直保持。

您可以使用 CloudWatch 控制台中的 **DB\$1PERF\$1INSIGHTS** 指标数学函数来查询 Amazon RDS 以获取性能详情计数器指标。**DB\$1PERF\$1INSIGHTS** 函数还包括以亚分钟为间隔的 DBLoad 指标。您可以根据这些指标设置 CloudWatch 警报。

有关如何创建警报的更多详细信息，请参阅[针对 AWS 数据库中的性能详情计数器指标创建警报](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_alarm_database_performance_insights.html)。

**使用 AWS CLI 设置警报**
+ 调用 [https://docs.aws.amazon.com/cli/latest/reference/cloudwatch/put-metric-alarm.html](https://docs.aws.amazon.com/cli/latest/reference/cloudwatch/put-metric-alarm.html)。有关更多信息，请参阅 *[AWS CLI Command Reference](https://docs.aws.amazon.com/cli/latest/reference/)*。

**使用 CloudWatch API 设置警报**
+ 调用 [https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_PutMetricAlarm.html](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_PutMetricAlarm.html)。有关更多信息，请参阅 *[Amazon CloudWatch API 参考](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/)*。

有关设置 Amazon SNS 主题和创建告警的更多信息，请参阅[使用 Amazon CloudWatch 告警](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html)。

# 教程：为 Amazon RDS 的多可用区数据库集群副本滞后创建 Amazon CloudWatch 警报
<a name="multi-az-db-cluster-cloudwatch-alarm"></a>

您可以创建 Amazon CloudWatch 告警，使其在多可用区数据库集群的副本滞后超过阈值时发送 Amazon SNS 消息。告警会在您指定的时间范围内监控 `ReplicaLag` 指标。操作是向 Amazon SNS 主题或 Amazon EC2 Auto Scaling 策略发送的通知。

**为多可用区数据库集群副本滞后设置 CloudWatch 告警**

1. 登录 AWS 管理控制台 并打开 CloudWatch 控制台，网址为 [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/)。

1. 在导航窗格中，依次选择 **Alarms**（警报）和 **All alarms**（所有警报）。

1. 选择**Create alarm（创建警报）**。

1. 在 **Specify metric and conditions (指定指标和条件)** 页面上，选择 **Select metric (选择指标)**。

1. 在搜索框中，输入多可用区数据库集群的名称，然后按 Enter。

   下图显示 **Select metric**（选择指标）页面，其中输入了名为 `rds-cluster` 的多可用区数据库集群。  
![\[Select metric（选择指标）页面\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/multi-az-db-cluster-cw-tutorial-select-metric.png)

1. 依次选择 **RDS**、**Per-Database Metrics**（每个数据库的指标）。

1. 在搜索框中，输入 **ReplicaLag** 并按 Enter，然后选择数据库集群中的每个数据库实例。

   下图显示 **Select metric**（选择指标）页面，及为 **ReplicaLag** 指标选择的数据库实例。  
![\[Select metric（选择指标）页面及为 ReplicaLag 指标选择的数据库实例\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/multi-az-db-cluster-cw-tutorial-metric-replica-lag.png)

   此告警考虑多可用区数据库集群中所有三个数据库实例的副本滞后。任何数据库实例超过阈值时，该告警都会响应。它使用一个数学表达式，返回三个指标的最大值。首先按指标名称排序，然后选择所有三个 **RepliaLag** 指标。

1. 从 **Add math**（添加数学表达式）中，依次选择 **All functions**（所有函数）、**MAX**。  
![\[Add math（添加数学表达式）设置\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/multi-az-db-cluster-cw-tutorial-select-metric-math.png)

1. 选择 **Graphed metrics**（绘制的指标）选项卡，然后将 **Expression1**（表达式 1）的详细信息编辑为 **MAX([m1,m2,m3])**。

1. 对于所有三个 **ReplicaLag** 指标，将 **Period**（周期）更改为 **1 minute**（1 分钟）。

1. 清除所有指标的选择， **Expression1**（表达式 1）除外。

   **Select metric**（选择指标）页面应类似于以下图像。  
![\[Select metric（选择指标）页面，指标已选择\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/multi-az-db-cluster-cw-tutorial-select-metric-expression1.png)

1. 选择**选择指标**。

1. 在 **Specify metric and conditions**（指定指标和条件）页面中，将标签更改为有意义的名称（例如 **ClusterReplicaLag**），然后在 **Define the threshold value**（定义阈值）中输入秒数。对于本教程，请输入 **1200** 秒（20 分钟）。您可以根据工作负载要求调整该值。

   **Specify metric and conditions**（指定指标和条件）页面应类似于以下图像。  
![\[Specify metric and conditions（指定指标和条件）页面\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/multi-az-db-cluster-cw-tutorial-specify-metric-conditions.png)

1. 选择 **Next**（下一步），随即显示 **Configure actions**（配置操作）页面。

1. 保持选中 **In alarm**（处于告警中），选择 **Create new topic**（创建新主题），然后输入主题名称和有效的电子邮件地址。  
![\[Configure actions（配置操作）页面\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/multi-az-db-cluster-cw-tutorial-configure-actions.png)

1. 选择 **Create topic**（创建主题），然后选择 **Next**（下一步）。

1. 在 **Add name and description**（添加名称和说明）页面中，输入 **Alarm name**（告警名称）和 **Alarm description**（告警说明），然后选择 **Next**（下一步）。  
![\[Add name and description（添加名称和说明）页面\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/multi-az-db-cluster-cw-tutorial-add-name-and-description.png)

1. 预览您将在 **Preview and create**（预览和创建）页面上创建的告警，然后选择 **Create alarm**（创建告警）。