AWS RDS 可观测性最佳实践

AWS RDS 介绍

AWS RDS(Amazon Relational Database Service)是一种由亚马逊提供的完全托管的关系数据库服务,支持多种流行的数据库引擎,如 MySQL、MariaDB、PostgreSQL、Oracle 和 SQL Server。这项服务的主要优势在于简化了在云中部署、操作和扩展关系数据库的复杂性,无需用户自行管理底层的基础设施。它提供了自动备份和恢复、自动维护、高可用性和容错能力、可扩展性以及安全性等关键特性。

尽管 AWS RDS 极大地降低了数据库管理的复杂性,但对其进行监控和可观测性仍然是至关重要的。监控可以帮助优化数据库性能,通过分析性能指标如 CPU、内存使用率、磁盘 I/O 和网络流量等,及时识别并解决性能瓶颈。此外,监控还有助于故障检测,可以快速识别并响应数据库的异常情况,如连接失败、查询超时等。它还支持容量规划,通过分析历史使用数据预测资源需求,以合理规划和分配资源。安全性方面,监控可以帮助检测潜在的安全威胁,如未授权访问和 SQL 注入攻击,从而采取相应的防御措施。此外,监控还有助于成本控制,通过识别不必要的资源消耗来优化成本,同时也可以满足某些行业或地区对于数据库可观测性的特定合规要求。

观测云

观测云是一款专为 IT 工程师打造的全链路可观测产品,它集成了基础设施监控、应用程序性能监控和日志管理,为整个技术栈提供实时可观察性。这款产品能够帮助工程师全面了解端到端的用户体验追踪,了解应用内函数的每一次调用,以及全面监控云时代的基础设施。此外,观测云还具备快速发现系统安全风险的能力,为数字化时代提供安全保障。

采集器配置

  1. 登陆观测云控制台
  2. 点击【集成】菜单,选择【云账号管理】
  3. 点击【添加云账号】,选择【AWS】,填写界面所需的信息,如之前已配置过云账号信息,则忽略此步骤
  4. 点击【测试】,测试成功后点击【保存】,如果测试失败,请检查相关配置信息是否正确,并重新测试
  5. 点击【云账号管理】列表上可以看到已添加的云账号,点击相应的云账号,进入详情页
  6. 点击云账号详情页的【集成】按钮,在未安装列表下,找到AWS RDS Mysql,点击【安装】按钮,弹出安装界面安装即可。

关键指标

指标 控制台名称 描述 单位
BinLogDiskUsage 二进制日志磁盘使用情况(MB) 二进制日志所占的磁盘空间大小。如果为 MySQL 和 MariaDB 实例(包括只读副本)启用了自动备份,则会创建二进制日志。 字节
BurstBalance 突发余额(百分比) 可用的通用型 SSD (GP2) 突增存储桶 I/O 点数的百分比。 百分比
CheckpointLag 检查点滞后(毫秒) 自最近一次检查点以来的时间。仅适用于 RDS for PostgreSQL。 毫秒
ConnectionAttempts 连接尝试(计数) 尝试连接实例的次数,无论成功与否。 计数
CPUUtilization CPU 利用率(百分比) CPU 使用百分率。 百分比
CPUCreditUsage CPU 额度使用(计数) (T2 实例)实例为保持 CPU 使用率而花费的 CPU 积分数。一个 CPU 积分等于一个 vCPU 以 100% 的使用率运行一分钟或等同的 vCPU、使用率与时间的组合。例如,您可以有一个 vCPU 按 50% 使用率运行两分钟,或者两个 vCPU 按 25% 使用率运行两分钟。CPU 积分指标仅每 5 分钟提供一次。如果您指定一个大于五分钟的时间段,请使用Sum 统计数据,而非 Average 统计数据。 积分 (vCPU 分钟)
CPUCreditBalance CPU 额度余额(计数) (T2 实例)实例自启动后已累积获得的 CPU 积分数。对于 T2 标准,CPUCreditBalance 还包含已累积的启动积分数。在获得积分后,积分将在积分余额中累积;在花费积分后,将从积分余额中扣除积分。积分余额具有最大值限制,这是由实例大小决定的。在达到限制后,将丢弃获得的任何新积分。对于 T2 标准,启动积分不计入限制。实例可以花费 CPUCreditBalance 中的积分,以便突增到基准 CPU 使用率以上。在实例运行过程中,CPUCreditBalance 中的积分不会过期。在实例停止时,CPUCreditBalance 不会保留,并且所有累积的积分都将丢失。CPU 信用指标仅每 5 分钟提供一次。启动积分在 Amazon RDS 中的作用方式与在 Amazon EC2 中的作用方式相同。 积分(vCPU 分钟)
DatabaseConnections 数据库连接(计数) 连接至数据库实例的客户端网络连接数。数据库会话数可能高于指标值,因为指标值不包括以下内容:不再具有网络连接但数据库尚未清理的会话数据库引擎出于自身目的创建的会话由数据库引擎的并行执行功能创建的会话由数据库引擎任务计划程序创建的会话Amazon RDS 连接 计数
DiskQueueDepth 队列深度(计数) 等待访问磁盘的未完成 I/O(读取/写入请求)的数量。 计数
EBSByteBalance EBS 字节余额(百分比) RDS 数据库突增存储桶中剩余的吞吐量积分的百分比 此指标仅对基本监控可用。该指标值基于包括根卷在内的所有卷的吞吐量和 IOPS,而不是仅基于那些包含数据库文件的卷。 百分比
EBSIOBalance EBS IO 余额(百分比) RDS 数据库突增存储桶中剩余的 I/O 积分的百分比 此指标仅对基本监控可用。该指标值基于包括根卷在内的所有卷的吞吐量和 IOPS,而不是仅基于那些包含数据库文件的卷。 百分比
FailedSQLServerAgentJobsCount 失败的 SQL Server Agent 作业计数(计数/分钟) 过去 1 分钟内失败的 Microsoft SQL Server Agent 作业的数量。 每分钟计数
FreeableMemory 可用内存(MB) 随机存取内存的可用大小。对于 MariaDB、MySQL、Oracle 和 PostgreSQL 数据库实例,此指标报告 MemAvailable 的 /proc/meminfo 字段的值。 字节
FreeLocalStorage 可用本地存储(MB) 可用本地存储空间的大小。此指标仅适用于具有 NVMe SSD 实例存储卷的数据库实例类。 字节
FreeStorageSpace 可用存储空间 (MB) 可用存储空间的大小。 字节
MaximumUsedTransactionIDs 最大已用事务 ID(计数) 已使用的最大事务 ID。仅适用于 PostgreSQL。 计数
NetworkReceiveThroughput 网络接收吞吐量(MB/秒) 数据库实例的传入(接收)网络流量,包括用于监控和复制的客户数据库流量和 Amazon RDS 流量。 每秒字节数
NetworkTransmitThroughput 网络传输吞吐量(MB/秒) 数据库实例的传出(传输)网络流量,包括用于监控和复制的客户数据库流量和 Amazon RDS 流量。 每秒字节数
OldestReplicationSlotLag 最早副本槽滞后 (MB) 在接收预写日志 (WAL) 数据方面最滞后的副本的滞后大小。适用于 PostgreSQL。 字节
ReadIOPS 读取 IOPS(计数/秒) 每秒平均磁盘读取 I/O 操作数。 每秒计数
ReadIOPSLocalStorage 读取 IOPS 本地存储(计数/秒) 每秒至本地存储的平均磁盘读取输入/输出操作数。此指标仅适用于具有 NVMe SSD 实例存储卷的数据库实例类。 每秒计数
ReadLatency 读取延迟(毫秒) 每个磁盘 I/O 操作所需的平均时间。 毫秒
ReadLatencyLocalStorage 读取延迟本地存储(毫秒) 每个磁盘对本地存储输入/输出操作所需的平均时间。此指标仅适用于具有 NVMe SSD 实例存储卷的数据库实例类。 毫秒
ReadThroughput 读取吞吐量(MB/秒) 每秒从磁盘读取的平均字节数。 每秒字节数
ReadThroughputLocalStorage 读取吞吐量本地存储(MB/秒) 每秒从磁盘至本地存储读取的平均字节数。此指标仅适用于具有 NVMe SSD 实例存储卷的数据库实例类。 每秒字节数
ReplicaLag 副本滞后(毫秒) 对于只读副本配置,只读副本数据库实例滞后于源数据库实例的时间量。适用于 MariaDB、Microsoft SQL Server、MySQL、Oracle 和 PostgreSQL 只读副本。对于多可用区数据库集群,写入器数据库实例上的最新事务与读取器数据库实例上的最新应用事务之间的时间差异。 毫秒
ReplicationSlotDiskUsage 副本插槽磁盘使用情况(MB) 副本槽文件使用的磁盘空间。适用于 PostgreSQL。 字节
SwapUsage 交换区使用情况(MB) 数据库实例上使用的交换空间的大小。此指标对于 SQL Server 不可用。 字节
TransactionLogsDiskUsage 事务日志磁盘使用情况(MB) 事务日志使用的磁盘空间。适用于 PostgreSQL。 字节
TransactionLogsGeneration 事务日志生成(MB/秒) 每秒生成的事务日志的大小。适用于 PostgreSQL。 每秒字节数
WriteIOPS 写入 IOPS(计数/秒) 每秒平均磁盘写入 I/O 操作数。 每秒计数
WriteIOPSLocalStorage 写入 IOPS 本地存储(计数/秒) 本地存储上的每秒平均磁盘写入 I/O 操作数。此指标仅适用于具有 NVMe SSD 实例存储卷的数据库实例类。 每秒计数
WriteLatency 写入延迟(毫秒) 每个磁盘 I/O 操作所需的平均时间。 毫秒
WriteLatencyLocalStorage 写入延迟本地存储(毫秒) 本地存储上每个磁盘 I/O 操作所需的平均时间。此指标仅适用于具有 NVMe SSD 实例存储卷的数据库实例类。 毫秒
WriteThroughput 写入吞吐量(MB/秒) 每秒写入磁盘的平均字节数。 每秒字节数
WriteThroughputLocalStorage 写入吞吐量本地存储(MB/秒) 本地存储每秒写入磁盘的平均字节数。此指标仅适用于具有 NVMe SSD 实例存储卷的数据库实例类。 每秒字节数

场景视图

登录观测云控制台,点击「场景」 -「新建仪表板」,输入 "AWS RDS", 选择 "AWS RDS MySQL 监控视图",点击 "确定" 即可添加视图。

监控器(告警)

观测云内置了监控器模板,可以选择从模版创建监控器,并开启适合业务的监控器以及时通知相关成员关注问题,触发条件、频率等信息可以依据实际业务进行调整。

登录观测云控制台,点击「监控」 -「新建监控器」,输入 "AWS RDS", 选择对应的监控器,点击 "确定" 即可添加。

AWS RDS Mysql 实例名称为 {{DBInstanceIdentifier}} CPU 使用率过高

总结

通过将 AWS RDS 的原生监控数据集成到观测云平台,用户可以实现对关系数据库服务(RDS)实例的实时性能监控、资源使用分析以及安全事件的可视化。观测云平台提供的高级分析和可视化功能,包括实时仪表板、智能告警和根因分析,能够帮助用户快速定位数据库性能问题、优化资源成本,并确保数据的高可用性和安全性。

相关推荐
科技小花2 小时前
数据治理平台架构演进观察:AI原生设计如何重构企业数据管理范式
数据库·重构·架构·数据治理·ai-native·ai原生
一江寒逸2 小时前
零基础从入门到精通MySQL(中篇):进阶篇——吃透多表查询、事务核心与高级特性,搞定复杂业务SQL
数据库·sql·mysql
D4c-lovetrain2 小时前
linux个人心得22 (mysql)
数据库·mysql
阿里小阿希3 小时前
CentOS7 PostgreSQL 9.2 升级到 15 完整教程
数据库·postgresql
荒川之神3 小时前
Oracle 数据仓库雪花模型设计(完整实战方案)
数据库·数据仓库·oracle
做个文艺程序员3 小时前
MySQL安全加固十大硬核操作
数据库·mysql·安全
不吃香菜学java3 小时前
Redis简单应用
数据库·spring boot·tomcat·maven
一个天蝎座 白勺 程序猿3 小时前
Apache IoTDB(15):IoTDB查询写回(INTO子句)深度解析——从语法到实战的ETL全链路指南
数据库·apache·etl·iotdb
不知名的老吴3 小时前
Redis的延迟瓶颈:TCP栈开销无法避免
数据库·redis·缓存
YOU OU3 小时前
三大范式和E-R图
数据库