Amazon Aurora
Aurora 用户指南 (API 版本 2014-10-31)
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

Amazon RDS 监控概览

监控是保持 Amazon RDS 和您的 AWS 解决方案的可靠性、可用性和性能的重要方面。您应从 AWS 解决方案的所有部分收集监控数据,以便更轻松地调试出现的多点故障。在开始监控 Amazon RDS 之前,建议您创建一个可以回答以下问题的监控计划:

  • 您的监控目标是什么?

  • 您将监控哪些资源?

  • 监控这些资源的频率如何?

  • 您将使用哪些监控工具?

  • 谁负责执行监控任务?

  • 出现错误时应通知谁?

下一步,通过在不同时间和不同负载条件下测量性能,在您的环境中建立正常 Amazon RDS 性能的基准。监控 Amazon RDS 时,您应考虑存储历史监控数据。此存储数据将为您提供与当前性能数据进行比较的基准,确定正常性能模式和性能异常,以及设计解决问题的方法。

例如,使用 Amazon RDS,您可监控网络吞吐量、读写 I/O 和/或元数据操作、客户端连接以及数据库实例的突增积分余额。如果性能在您确定的基准之外,您可能需要更改数据库实例的实例类或可用于客户端的数据库实例和只读副本的数量,以便针对您的工作负载优化数据库可用性。

通常,性能指标的可接受值取决于您的基准性能以及应用程序执行的操作。应调查相对于基准性能的一致或趋势性变化。有关特定类型指标的建议如下:

  • 高 CPU 或 RAM 消耗 – CPU 或 RAM 消耗值高可能是正常情况,只要它们符合您的应用程序目标(如吞吐量或并发度)并且符合预期。

  • 磁盘空间消耗 – 如果使用的空间始终不低于总磁盘空间的 85%,则应调查磁盘空间消耗。应查看是否可以从实例中删除数据或是将数据存档到其他系统以释放空间。

  • 网络流量 – 对于网络流量,应与系统管理员进行讨论,以了解域网络和 Internet 连接的预期吞吐量。如果吞吐量始终低于预期,则应调查网络流量。

  • 数据库连接 – 如果发现用户连接数较高,同时实例性能下降并且响应时间延长,请考虑约束数据库连接。数据库实例的最佳用户连接数因您的实例类所执行操作的复杂性而异。您可以通过将数据库实例与 User Connections 参数设置为 0 以外的值 (无限制) 的参数组关联,确定数据库连接的数量。您可以使用现有参数组或新建一个。有关更多信息,请参阅 使用数据库参数组和数据库集群参数组

  • IOPS 指标 – IOPS 指标的预期值取决于磁盘规格和服务器配置,因此,请使用您的基准来了解典型状况。调查值是否始终与您的基准不同。要获得最佳 IOPS 性能,请确保典型工作集适合内存大小,以最大程度减少读取和写入操作。

监控工具

AWS 为您提供了各种可以用来监控 Amazon RDS 的工具。您可以配置其中的一些工具来为您执行监控任务,但有些工具需要手动干预。建议您尽可能实现监控任务自动化。

自动监控工具

您可以使用以下自动化监控工具来监控 Amazon RDS 并在出现错误时报告:

  • Amazon RDS 事件 – 订阅 Amazon RDS 事件以在数据库实例、数据库集群、 数据库集群快照、数据库参数组或数据库安全组出现更改时收到通知。有关更多信息,请参阅使用 Amazon RDS 事件通知

  • 数据库日志文件 – 使用 Amazon RDS 控制台或 Amazon RDS API 操作查看、下载或监控数据库日志文件。您还可以查询一些加载到数据库表中的数据库日志文件。有关更多信息,请参阅Amazon RDS 数据库日志文件

  • Amazon RDS 增强监控 — 实时查看操作系统的指标。有关更多信息,请参阅 增强监测

此外,Amazon RDS 与 Amazon CloudWatch 集成以提供其他监控功能:

  • Amazon CloudWatch 指标 – Amazon RDS 每分钟自动向 CloudWatch 发送一次每个活动数据库的指标。您无需为 CloudWatch 中的 Amazon RDS 指标额外付费。有关更多信息,请参阅查看数据库实例指标

  • Amazon CloudWatch 警报 – 您可以观察特定时间段中的单个 Amazon RDS 指标,并根据相对于您设置的阈值的指标值执行一项或多项操作。有关更多信息,请参阅 使用 Amazon CloudWatch 进行监控

  • Amazon CloudWatch Logs – 大多数数据库引擎使您能够在 CloudWatch Logs 中监控、存储和访问数据库日志文件。有关更多信息,请参阅 Amazon CloudWatch Logs User Guide

手动监控工具

监控 Amazon RDS 时的另一个重要环节是手动监控 CloudWatch 警报未涵盖的项目。Amazon RDS、CloudWatch、AWS Trusted Advisor 和其他 AWS 控制台控制面板提供您的 AWS 环境状态的概览视图。建议您还要查看 DB instance 上的日志文件。

  • 您可以从 Amazon RDS 控制台监视资源的以下项目:

    • 与数据库实例的连接数

    • 针对数据库实例的读写操作数量

    • 数据库实例当前使用的存储量

    • 为数据库实例使用的内存和 CPU 量

    • 流入和流出数据库实例的网络流量

  • 您可以从 AWS Trusted Advisor 控制面板查看以下成本优化、安全性、容错能力和性能改进检查:

    • Amazon RDS 闲置数据库实例

    • Amazon RDS 安全组访问风险

    • Amazon RDS 备份

    • Amazon RDS 多可用区

    • Aurora 数据库实例可访问性

    有关这些检查的更多信息,请参阅 Trusted Advisor 最佳实践 (检查)

  • CloudWatch 主页显示:

    • 当前警报和状态

    • 警报和资源的图表

    • 服务运行状况

    此外,您还可以使用 CloudWatch 执行以下操作:

    • 创建自定义控制面板以监控您关心的服务

    • 绘制指标数据图,以排除问题并弄清楚趋势

    • 搜索并浏览您所有的 AWS 资源指标

    • 创建和编辑警报以接收有关问题的通知

使用 Amazon CloudWatch 进行监控

您可以使用 Amazon CloudWatch 监控数据库实例,此工具可从 Amazon RDS 收集原始数据,并将数据处理为易读、近乎实时的指标。这些统计数据会保存两周,从而使您能够访问历史信息,并能够更好地了解您的 Web 应用程序或服务的执行情况。默认情况下,Amazon RDS 指标数据以 1 分钟为间隔自动发送到 CloudWatch。有关 CloudWatch 的更多信息,请参阅 Amazon CloudWatch 用户指南 中的什么是 Amazon CloudWatch、Amazon CloudWatch Events 和 Amazon CloudWatch Logs?

Amazon RDS 指标与维度

在使用 Amazon RDS 资源时,Amazon RDS 每分钟向 Amazon CloudWatch 发送指标和维度一次。您可以按照以下步骤查看 Amazon RDS 的各项指标。

使用 Amazon CloudWatch 控制台查看指标

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

  1. 通过以下网址打开 CloudWatch 控制台:https://console.amazonaws.cn/cloudwatch/

  2. 如果需要,可以更改 AWS 区域。从导航栏中,选择 AWS 资源所在的 AWS 区域。有关更多信息,请参阅 Regions and Endpoints

  3. 在导航窗格中,选择 Metrics。选择 RDS 指标命名空间。

    
                        选择指标命名空间
  4. 选择指标维度,例如,按数据库类

  5. 要对指标进行排序,请使用列标题。要为指标绘制图表,请选中该指标旁的复选框。要按资源进行筛选,请选择资源 ID,然后选择添加到搜索。要按指标进行筛选,请选择指标名称,然后选择添加到搜索

    
                          筛选指标

使用 AWS CLI 查看指标

  • 在命令提示符处,输入以下命令:

    aws cloudwatch list-metrics --namespace AWS/RDS

Amazon RDS 指标

AWS/RDS 命名空间包括以下指标。

指标 说明
BinLogDiskUsage

主节点上的二进制日志所占的磁盘空间大小。适用于 MySQL 只读副本。

单位:字节

BurstBalance

可用的通用型 SSD (GP2) 突增存储桶 I/O 点数的百分比。

单位:百分比

CPUUtilization

CPU 使用百分率。

单位:百分比

CPUCreditUsage

[T2 实例] 实例为保持 CPU 使用率而花费的 CPU 积分数。一个 CPU 积分等于一个 vCPU 按 100% 利用率运行一分钟,或者 vCPU、利用率和时间的等效组合(例如, 一个 vCPU 按 50% 利用率运行两分钟,或者两个 vCPU 按 25% 利用率运行两分钟)。

CPU 积分指标仅每 5 分钟提供一次。如果您指定一个大于五分钟的时间段,请使用Sum 统计数据,而非 Average 统计数据。

单位:积分 (vCPU 分钟)

CPUCreditBalance

[T2 实例] 实例自启动后已累积获得的 CPU 积分数。对于 T2 标准,CPUCreditBalance 还包含已累积的启动积分数。

在获得积分后,积分将在积分余额中累积;在花费积分后,将从积分余额中扣除积分。积分余额具有最大值限制,这是由实例大小决定的。在达到限制后,将丢弃获得的任何新积分。对于 T2 标准,启动积分不计入限制。

实例可以花费 CPUCreditBalance 中的积分,以便突增到基准 CPU 使用率以上。

在实例运行过程中,CPUCreditBalance 中的积分不会过期。在实例停止时,CPUCreditBalance 不会保留,并且所有累积的积分都将丢失。

CPU 积分指标仅每 5 分钟提供一次。

单位:积分 (vCPU 分钟)

DatabaseConnections

使用中的数据库连接数。

单位:计数

DiskQueueDepth

等待访问磁盘的未完成 IO(读取/写入请求)的数量。

单位:计数

FailedSQLServerAgentJobsCount

过去 1 分钟内失败的 SQL Server 代理作业的数量。

单位:计数/分钟

FreeableMemory

随机存取内存的可用大小。

单位:字节

FreeStorageSpace

可用存储空间的大小。

单位:字节

MaximumUsedTransactionIDs

已使用的最大事务 ID。适用于 PostgreSQL。

单位:计数

NetworkReceiveThroughput

数据库实例的传入(接收)网络流量,包括用于监控和复制的客户数据库流量和 Amazon RDS 流量。

单位:字节/秒

NetworkTransmitThroughput

数据库实例的传出(传输)网络流量,包括用于监控和复制的客户数据库流量和 Amazon RDS 流量。

单位:字节/秒

OldestReplicationSlotLag

在接收 WAL 数据方面最滞后的副本的滞后大小。适用于 PostgreSQL。

单位:MB

ReadIOPS

每秒平均磁盘读取 I/O 操作数。

单位:计数/秒

ReadLatency

每个磁盘 I/O 操作所需的平均时间。

单位:秒

ReadThroughput

每秒从磁盘读取的平均字节数。

单位:字节/秒

ReplicaLag

只读副本数据库实例滞后于源数据库实例的时间量。适用于 MySQL、MariaDB 和 PostgreSQL 只读副本。

单位:秒

ReplicationSlotDiskUsage

复制插槽文件使用的磁盘空间。适用于 PostgreSQL。

单位:MB

SwapUsage

数据库实例上使用的交换空间的大小。此指标对于 SQL Server 不可用。

单位:字节

TransactionLogsDiskUsage

事务日志使用的磁盘空间。适用于 PostgreSQL。

单位:MB

TransactionLogsGeneration

每秒生成的事务日志的大小。适用于 PostgreSQL。

单位:字节/秒

WriteIOPS

每秒平均磁盘写入 I/O 操作数。

单位:计数/秒

WriteLatency

每个磁盘 I/O 操作所需的平均时间。

单位:秒

WriteThroughput

每秒写入磁盘的平均字节数。

单位:字节/秒

Amazon RDS 维度

Amazon RDS 指标数据可使用下表中的任意维度进行筛选:

维度 说明
DBInstanceIdentifier

该维度筛选您为特定数据库实例请求的数据。

DBClusterIdentifier

此维度将筛选您为特定 Amazon Aurora 数据库集群请求的数据。

DBClusterIdentifier, Role

此维度将筛选您为特定 Aurora 数据库集群请求的数据,并按实例角色 (WRITER/READER) 聚合指标。例如,您可以聚合属于某个集群的所有 READER 实例的指标。

DatabaseClass

该维度筛选您为数据库类中的所有实例请求的数据。例如,您可以聚合属于数据库类 db.m1.small 的所有实例的指标。

EngineName

该维度筛选您仅为已识别的引擎名称请求的数据。例如,您可以聚合具有引擎名称 mysql 的所有实例的指标。

SourceRegion

此维度筛选您仅为指定的区域请求的数据。例如,您可以聚合区域 us-east-1 中的所有实例的指标。

创建 CloudWatch 警报以监控 Amazon RDS

您可以创建 CloudWatch 警报,用于在警报改变状态时发送 Amazon SNS 消息。警报会每隔一段时间 (由您指定) 监控一个指标,并根据相对于给定阈值的指标值每隔若干个时间段执行一项或多项操作。操作是向 Amazon SNS 主题或 Auto Scaling 策略发送的通知。

警报仅在出现持续状态变化时才会调用操作。CloudWatch 警报将不会仅因为其处于特定状态而调用操作,该状态必须已改变并在指定的若干个时间段内保持不变。以下过程说明如何为 Amazon RDS 创建警报。

使用 CloudWatch 控制台设置警报

  1. 登录 AWS 管理控制台并通过以下网址打开 CloudWatch 控制台 https://console.amazonaws.cn/cloudwatch/

  2. 选择 Alarms,然后选择 Create Alarm。创建警报向导随即启动。

  3. 选择 RDS 指标并滚动 Amazon RDS 指标以找到要为其设置警报的指标。要仅在此对话框中显示 Amazon RDS 指标,请搜索资源的标识符。选择要为其创建警报的指标,然后选择 Next (下一步)

  4. 输入指标的 Name (名称)Description (描述)Whenever (每当) 值。

  5. 如果您希望 CloudWatch 在达到警报状态时向您发送一封电子邮件,对于 Whenever this alarm: (每当此警报:),请选择 State is ALARM (状态为“警报”)。对于发送通知到:,选择一个现有 SNS 主题。如果您选择创建主题,则可以为新电子邮件订阅列表设置名称和电子邮件地址。此列表将保存下来并会在将来的警报字段中显示出来。

    注意

    如果您使用 Create topic (创建主题) 创建一个新 Amazon SNS 主题,那么电子邮件地址在接收通知之前必须通过验证。当警报进入警报状态时,才会发送电子邮件。如果在验证电子邮件地址之前警报状态发生了变化,那么它们不会接收到通知。

  6. 此时,Alarm Preview 区域将为您提供一次机会来预览即将创建的警报。选择 Create Alarm。

使用 AWS CLI 设置警报

使用 CloudWatch API 设置警报

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

您可以配置 Amazon RDS 数据库引擎以将日志数据发布到 Amazon CloudWatch Logs 中的日志组。利用 CloudWatch Logs,可以对日志数据进行实时分析并使用 CloudWatch 创建警报和查看指标。您可以使用 CloudWatch Logs 在高持久性存储中存储日志记录,并且可以使用 CloudWatch Logs 代理对日志记录进行管理。例如,您可以确定何时将日志记录从主机轮换到日志服务,以便可在需要时访问原始日志。

您可以导出 Aurora MySQL 的日志。有关更多信息,请参阅将 Amazon Aurora MySQL 日志发布到 Amazon CloudWatch Logs

注意

您必须具有服务相关角色才能启用日志数据发布。有关服务相关角色的更多信息,请参阅以下内容:对 Amazon Aurora 使用服务相关角色

配置 CloudWatch 日志集成

要将数据库日志文件发布到 CloudWatch Logs,请选择要发布的日志。在创建新数据库实例时,在高级设置部分中做出此选择。您也可以修改现有数据库实例以开始发布。


                    添加 CloudWatch 日志

在启用发布之后,Amazon RDS 会持续将所有数据库实例日志记录流式传输到日志组。例如,对于您发布的每种类型的日志,您具有日志组 /aws/rds/instance/log type。此日志组与生成日志的数据库实例位于同一 AWS 区域中。

在发布了日志记录后,可以使用 CloudWatch Logs 搜索和筛选记录。有关搜索和筛选日志的更多信息,请参阅搜索和筛选日志数据

查看数据库实例指标

Amazon RDS 提供多个指标,以便您可以监控数据库实例的运行状况。您可以监控数据库实例指标和操作系统 (OS) 指标。

本节提供有关如何使用 RDS 控制台和 CloudWatch 查看数据库实例指标的详细信息。有关使用 CloudWatch Logs 实时监控数据库实例的操作系统指标的信息,请参阅增强监测

使用控制台查看指标

查看数据库实例的数据库和操作系统指标

  1. 登录 AWS 管理控制台 并通过以下网址打开 Amazon RDS 控制台:https://console.amazonaws.cn/rds/

  2. 在导航窗格中,选择 Databases (数据库)

  3. 选择您需了解其信息的数据库实例的名称以显示其详细信息。

  4. 选择 Monitoring 选项卡。

  5. 对于监控,从下面选择指标查看方式选项:

    • CloudWatch – 显示可从 Amazon CloudWatch 获得的数据库实例指标的摘要。每个指标均包括一个图形,显示特定时间范围内监控的指标。

    • 增强监控 – 在启用增强监控的情况下显示数据库实例的可用操作系统指标的摘要。每个指标均包括一个图形,显示特定时间范围内监控的指标。

    • OS 进程列表 – 显示所选实例中运行的每个进程的详细信息。

    
                            RDS 指标查看选项

    提示

    您可以选择由带时间范围列表的图表表示的指标的时间范围。

    您可以选择任意图表来呈现更详细的视图。您还可以对数据应用指标特定的筛选条件。

使用 CLI 或 API 查看数据库实例指标

Amazon RDS 与 CloudWatch 指标集成以提供多种数据库实例指标。您可以使用 RDS 控制台、AWS CLI 或 API 查看 CloudWatch 指标。

有关 Amazon RDS 指标的完整列表,请转到 Amazon CloudWatch 用户指南 中的 Amazon RDS 维度与指标

使用 CloudWatch CLI 查看数据库指标

注意

下列 CLI 示例需要使用 CloudWatch 命令行工具。有关 CloudWatch 的更多信息和下载开发人员工具,请参阅 Amazon CloudWatch 产品页面。该示例中提供的 StartTimeEndTime 值均供说明之用。您必须为数据库实例替换相应的开始时间和结束时间值。

查看数据库实例的使用情况和性能统计数据

  • 结合下列参数使用 CloudWatch 命令 mon-get-stats

    PROMPT>mon-get-stats FreeStorageSpace --dimensions="DBInstanceIdentifier=mydbinstance" --statistics= Average --namespace="AWS/RDS" --start-time 2009-10-16T00:00:00 --end-time 2009-10-16T00:02:00
使用 CloudWatch API 查看数据库指标

该示例中提供的 StartTimeEndTime 值均供说明之用。您必须为数据库实例替换相应的开始时间和结束时间值。

查看数据库实例的使用情况和性能统计数据

  • 使用以下参数调用 CloudWatch API GetMetricStatistics

    • Statistics.member.1 = Average

    • Namespace = AWS/RDS

    • StartTime = 2009-10-16T00:00:00

    • EndTime = 2009-10-16T00:02:00

    • Period = 60

    • MeasureName = FreeStorageSpace