文档中心>腾讯云可观测平台>告警管理>实践教程>云数据库 MongoDB 告警监控实践

云数据库 MongoDB 告警监控实践

最近更新时间:2024-01-24 17:23:31

我的收藏

简介

云数据库 MongoDB(TencentDB for MongoDB)是腾讯云基于开源非关系型数据库 MongoDB 专业打造的高性能、分布式数据存储服务,完全兼容 MongoDB 协议,适用于面向非关系型数据库的场景。
产品特点:
1. 提供云存储服务,云存储服务是腾讯云平台面向互联网应用的数据存储服务。
2. 完全兼容 MongoDB 协议,既适用于传统表结构的场景,也适用于缓存、非关系型数据以及利用 MapReduce 进行大规模数据集的并行运算的场景。
3. 提供高性能、可靠、易用、便捷的 MongoDB 集群服务,每一个实例都是至少一主一从的副本集或者是包含多个副本集的分片集群。
4. 拥有整合备份、扩容等功能,尽可能的保证用户数据安全以及动态伸缩能力。

技术特征

分片集群
1. 每个副本集是一个分片。
2. 数据写入会根据片键经过一定的 hash 算法写入不同的片中,不需要应用程序进行分片。
3. 根据需要去指定读写库表。
4. 存储量扩容只需要添加分片即可。


自动容灾
1. 当发生意外导致主节点不可达时, 集群内部会自动选举出主节点。
2. 如果挂掉的是主节点,重新拉起时,那么它就会变身成一个从节点;如果拉起失败会补充新节点进入集群以达到用户所选择的集群规模。
3. 同样的当任何一个从节点不可达时,也会尝试拉起节点或者补充新节点。


在线扩容
1. 在 Web 控制台或者 API 发起扩容操作。
2. 系统根据需要按新规格创建对应数量的 Secondary 节点。
3. 依次把新创建的 Secondary 节点加入集群实例内部,同步数据。
4. 待最后一个 Secondary 节点数据同步完成以后,开始一个一个剔除原节点,剔除的原节点按先从(Secondary)后主(Primary)。
5. 当集群内部没有主节点时,会选举出新的主节点。


完整的备份机制
1. MongoDB 支持全量备份增量备份两种备份方式。
2. 回档功能支持实例回档和库表级别的细粒度回档,极大降低了海量数据库实例的管理难度。


灵活的读写分离策略
1. 基于 Secondary 的读写分离策略。连接参数中设置 readrefence=secondary 指定从库读。
2. 基于只读实例的读写分离策略。通过购买 MongoDB 主实例的一个或多个只读实例来实现读写分离需求,通过只读实例读操作来满足大量读应用需求,减轻主库的压力。


提供库表回档
1. 细粒度快速处理错误。
2. 可回档至7天内的任意时刻。



MongoDB 架构和监控指标

架构图和指标





全量监控指标

MongoDB 实例

类别
指标英文名
指标中文名
含义
单位
维度
请求类
Inserts
写入请求次数
单位时间内写入次数
target(实例 ID)
Reads
读取请求次数
单位时间内读取次数
target(实例 ID)
Updates
更新请求次数
单位时间内更新次数
target(实例 ID)
Deletes
删除请求次数
单位时间内删除次数
target(实例 ID)
Counts
count 请求次数
单位时间内 count 次数
target(实例 ID)
Aggregates
聚合请求次数
单位时间内聚合请求次数
target(实例 ID)
Success
成功请求次数
单位时间内成功请求次数
target(实例 ID)
Commands
Command 请求次数
单位时间内 Command 请求次数
target(实例 ID)
Timeouts
超时请求次数
单位时间内超时请求次数
target(实例 ID)
Qps
每秒钟请求次数
每秒操作数,包含 CRUD 操作
次/秒
target(实例 ID)
时延请求类
Delay10
时延在10 - 50毫秒间请求次数
单位时间内成功请求延迟在10ms - 50ms次数
target(实例 ID)
Delay50
时延在50 - 100毫秒间请求次数
单位时间内成功请求延迟在50ms - 100ms次数
target(实例 ID)
Delay100
时延在100毫秒以上请求次数
单位时间内成功请求延迟在100ms以上次数
target(实例 ID)
连接数类
ClusterConn
集群连接数
集群总连接数,指当前集群 proxy 收到的连接数
target(实例 ID)
Connper
连接使用率
当前集群的连接数与集群总连接配置的比例
%
target(实例 ID)
系统类
ClusterDiskusage
磁盘使用率
集群当前实际占用存储空间与总容量配置的比例
target(实例 ID)

MongoDB 副本集

类别
指标英文名
指标中文名
含义
单位
维度
系统类
ReplicaDiskusage
磁盘使用率
副本集容量使用率
%
target(副本集 ID)
主从类
SlaveDelay
主从延迟
主从单位时间内平均延迟
target(副本集 ID)
Oplogreservedtime
oplog 保存时间
oplog 记录中最后一次操作和首次操作时间差
小时
target(副本集 ID)
Cache 类
CacheDirty
Cache 脏数据百分比
当前内存 Cache 中脏数据百分比
%
target(副本集 ID)
CacheUsed
Cache 使用百分比
当前 Cache 使用百分比
%
target(副本集 ID)
HitRatio
Cache 命中率
当前 Cache 命中率
%
target(副本集 ID)

MongoDB 节点

类别
指标英文名
指标中文名
含义
单位
维度
系统类
CpuUsage
CPU 使用率
CPU 使用率
%
target(节点 ID)
MemUsage
内存使用率
内存使用率
%
target(节点 ID)
NetIn
网络入流量
网络入流量
MB/s
target(节点 ID)
NetOut
网络出流量
网络出流量
MB/s
target(节点 ID)
Disk
节点磁盘用量
节点磁盘用量
MB
target(节点 ID)
连接数
Conn
连接数
节点连接数
target(节点 ID)
读写类
Qr
Read 请求等待队列中的个数
Read 请求等待队列中的个数
target(节点 ID)
Qw
Write 请求等待队列中的个数
Write 请求等待队列中的个数
target(节点 ID)
Ar
WT 引擎的 ActiveRead
Read 请求活跃个数
target(节点 ID)
Aw
WT 引擎的ActiveWrite
Write 请求活跃个数
target(节点 ID)
TTL 索引类
TtlDeleted
TTL 删除的数据条数
TTL 删除的数据条数
target(节点 ID)
TtlPass
TTL 运转轮数
TTL 运转轮数
target(节点 ID)

告警核心指标和建议阈值

告警指标
统计粒度
判断条件
阈值
持续周期
告警方式
时延在100毫秒以上请求次数(实例)
统计粒度1分钟
>
5000
持续一个周期
每三十分钟告警一次
磁盘使用率(实例)
统计粒度1分钟
>
80%
持续一个周期
每三十分钟告警一次
集群连接数百分比(实例)
统计粒度1分钟
>
80%
持续一个周期
每三十分钟告警一次
磁盘使用率(副本集)
统计粒度1分钟
>
80%
持续一个周期
每三十分钟告警一次
CPU 使用率(节点)
统计粒度1分钟
>
90%
持续一个周期
每三十分钟告警一次
内存使用率(节点)
统计粒度1分钟
>
90%
持续一个周期
每三十分钟告警一次
Qr(节点)
统计粒度1分钟
>
100
持续一个周期
每三十分钟告警一次
Qw(节点)
统计粒度1分钟
>
100
持续一个周期
每三十分钟告警一次
Ar(节点)
统计粒度1分钟
>
100
持续一个周期
每三十分钟告警一次
Aw(节点)
统计粒度1分钟
>
100
持续一个周期
每三十分钟告警一次

云数据库 MongoDB 实例维度

磁盘使用率 > 80% 代表集群容量使用率,集群容量使用率达到100%会被写封禁,影响用户写入,所以需要用户注意提前扩容。
时延在100毫秒以上请求次数 > 5000时延在100毫秒以上请求在 MongoDB 中可以理解为慢查询,是性能问题排查的重要指标。
集群连接数百分比 > 80% 预防集群连接数过多,导致 MongoDB 服务端无法建立更多连接造成客户端无法访问 MongoDB 集群。

云数据库 MongoDB 副本集维度

磁盘使用率 > 80% 代码副本集容量使用率,副本集容量使用率达到100%会被写封禁,影响用户写入,所以需要用户注意提前扩容。

云数据库 MongoDB 节点

CPU 使用率 > 80% CPU 使用率过高会影响在服务器正常运行程序等系统层面问题。
内存使用率 > 80% 内存使用率过高容易引起服务响应速度变慢,服务器登录不上等系统层面问题。 Qr>100,Qw>100,Ar>100,Aw>100
说明
Qr|Qw 为等待读/写的队列长度, Ar|Aw 为执行读/写操作客户端数量,都为0的话表示 MongoDB 毫无压力。
MongoDB 负载高时,命令来不及处理,MongoDB 将命令放入队列。高并发时,一般队列值会升高。
Qr|Qw ,Ar|Aw 如果一直0说明很健康,如果过高的话那就说明 MongoDB 处理起来很慢了,有可能有慢查询,锁表排队等现象(Ar|Aw 表示引擎层当前时刻获取“ticket令牌”执行读写操作的请求数。如果请求处理的很快,这个值会很低。如果请求处理很慢,一直占用“ticket令牌”,这个值会很高,需要关注)。

操作步骤

配置云数据库 MongoDB 告警

2. 单击告警管理 > 策略管理 > 新建策略
3. 进入新建告警策略页,配置告警策略。根据要求填写如下信息:


配置的 MongoDB 节点告警总览




配置 MongoDB 节点告警总览

配置 Dashboard
2. 单击 Dashboard > Dashboard 列表
3. 在 Dashboard 列表中选择“云数据库 MongoDB 预设面板”。
选择 MongoDB 实例
选择 MongoDB 副本集
选择 MongoDB 节点


选择 MongoDB 实例,副本集,节点,系统会自动展示出预设的 Dashboard