Amazon Relational Database Service
用户指南 (API Version 2014-10-31)
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。请点击 Amazon 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 CloudWatch 警报 – 按您指定的时间段观察单个指标,并根据相对于给定阈值的指标值在若干时间段内执行一项或多项操作。该操作是向 Amazon Simple Notification Service (Amazon SNS) 主题或 Auto Scaling 策略发送通知。CloudWatch 警报将不会调用操作,因为这些操作处于特定状态;该状态必须改变并在指定数量的时间段内一直保持。有关更多信息,请参阅 使用 Amazon CloudWatch 进行监控

  • Amazon CloudWatch Logs – 监控、存储和访问来自 AWS CloudTrail 或其他来源的日志文件。有关更多信息,请参阅 Amazon CloudWatch 用户指南 中的监视日志文件

    Amazon RDS 增强监控为运行数据库实例或数据库群集的操作系统提供实时指标。有关更多信息,请参阅 增强监控

  • Amazon CloudWatch Events – 匹配事件并将事件传送到一个或多个目标函数或流来进行更改、捕获状态信息和采取纠正措施。有关更多信息,请参阅Amazon CloudWatch 用户指南中的什么是 Amazon CloudWatch Events

  • AWS CloudTrail 日志监控 – 在账户间共享日志文件,通过将 CloudTrail 日志文件发送到 CloudWatch Logs 对它们进行实时监控,在 Java 中编写日志处理应用程序,以及验证您的日志文件在被 CloudTrail 交付后未发生更改。有关更多信息,请参阅 AWS CloudTrail User Guide 中的使用 CloudTrail 日志文件

    有关将 AWS CloudTrail 日志监控与 Amazon RDS 结合使用的信息,请参阅 使用 AWS CloudTrail 记录 Amazon RDS API 调用

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

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

手动监控工具

监控 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 多可用区

    • Amazon Aurora 数据库实例的可访问性

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

  • CloudWatch 主页显示:

    • 当前警报和状态

    • 警报和资源的图表

    • 服务运行状况

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

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

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

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

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

使用 Amazon CloudWatch 进行监控

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

Amazon RDS 指标和维度

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

使用 Amazon CloudWatch 控制台查看指标

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

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

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

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

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

     选择指标维度
  5. 要对指标进行排序,请使用列标题。要为指标绘制图表,请选中该指标旁的复选框。要按资源进行筛选,请选择资源 ID,然后选择 Add to search。要按指标进行筛选,请选择指标名称,然后选择 Add to search

     筛选指标

使用 AWS CLI 查看指标

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

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

Amazon RDS 指标

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

指标 说明
BinLogDiskUsage

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

单位:字节

BurstBalance

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

单位:百分比

CPUUtilization

CPU 使用百分率。

单位:百分比

CPUCreditUsage

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

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

单位:计数

CPUCreditBalance

[T2 实例] 可供实例用于突增至超出基础 CPU 使用率的 CPU 积分数量。获得积分后,积分便存储在积分余额中,到期后便会从积分余额中删除。积分在获得后 24 小时到期。

CPU 积分指标每 5 分钟仅可用一次。

单位:计数

DatabaseConnections

使用中的数据库连接数。

单位:计数

DiskQueueDepth

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

单位:计数

FreeableMemory

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

单位:字节

FreeStorageSpace

可用存储空间的大小。

单位:字节

ReplicaLag

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

单位:秒

SwapUsage

数据库实例上使用的交换空间的大小。

单位:字节

ReadIOPS

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

单位:计数/秒

WriteIOPS

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

单位:计数/秒

ReadLatency

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

单位:秒

WriteLatency

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

单位:秒

ReadThroughput

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

单位:字节/秒

WriteThroughput

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

单位:字节/秒

NetworkReceiveThroughput

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

单位:字节/秒

NetworkTransmitThroughput

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

单位:字节/秒

Amazon RDS 维度

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

维度

描述

DBInstanceIdentifier

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

DBClusterIdentifier

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

DBClusterIdentifier, Role

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

DatabaseClass

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

EngineName

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

创建 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 AlarmCreate Alarm Wizard (创建警报向导) 将随即启动。

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

  4. 填写指标的 NameDescriptionWhenever 值。

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

    注意

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

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

使用 AWS CLI 设置警报

使用 CloudWatch API 设置警报

查看数据库实例指标

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

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

使用控制台查看指标

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

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

  2. 在导航窗格中,选择 DB Instances

  3. 选中需了解其信息的数据库群集左侧的复选框。对于 Show Monitoring,从下面选择指标查看方式选项:

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

    • Show Single Graph View – 一次详细显示一个指标。每个指标均包括一个图形,显示特定时间范围内监控的指标。

    • Show Latest Metrics View – 不带图形显示数据库实例指标摘要。Full Monitoring View 包括用于全屏查看的选项。

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

     RDS 指标查看选项

    提示

    要选择图形所示指标的时间范围,请使用 Time Range

    您可以选择任意图形获得更详细的图形视图,借助此视图您可对指标数据应用特定于指标的筛选条件。

    Time Range 对增强监控仪表板不可用。

数据库实例指标

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

    Copy
    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

    Copy
    http://monitoring.amazonaws.com/ ?SignatureVersion=2 &Action=GetMetricStatistics &Version=2009-05-15 &StartTime=2009-10-16T00:00:00 &EndTime=2009-10-16T00:02:00 &Period=60 &Statistics.member.1=Average &Dimensions.member.1="DBInstanceIdentifier=mydbinstance" &Namespace=AWS/RDS &MeasureName=FreeStorageSpace &Timestamp=2009-10-15T17%3A48%3A21.746Z &AWSAccessKeyId=<AWS Access Key ID> &Signature=<Signature>

相关主题