操作指南

API 文档

云产品监控指标

文档中心 > 云监控 > 最佳实践 > 云数据库 MongoDB 告警监控实践

云数据库 MongoDB 告警监控实践

最近更新时间:2021-11-05 10:04:50

简介

云数据库 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 将命令放入队列。高并发时,一般队列值会升高。
  • 3Qr|Qw ,Ar|Aw 如果一直0说明很健康,如果过高的话那就说明 MongoDB 处理起来很慢了,有可能有慢查询,锁表排队等现象(Ar|Aw 表示引擎层当前时刻获取“ticket令牌”执行读写操作的请求数。如果请求处理的很快,这个值会很低。如果请求处理很慢,一直占用“ticket令牌”,这个值会很高,需要关注。)

操作步骤

配置云数据库 MongoDB 告警

  1. 登录 腾讯云监控控制台
  2. 单击告警配置 > 告警策略 > 新建
  3. 进入新建告警策略页,填写如下信息:
    • 输入策略名称
    • 输入备注
    • 选择策略类型
    • 选择 MongoDB 实例
    • 设置告警指标及触发条件
    • 选择告警渠道,包括接收对象,接收渠道,有效时段,接收语言

配置的 MongoDB 节点告警总览

配置 MongoDB 节点告警总览

配置 Dashboard

  1. 登录 腾讯云监控控制台
  2. 单击 Dashboard > Dashboard 列表
  3. 在 Dashboard 列表中选择“云数据库 MongoDB 预设面板”。
    • 选择 MongoDB 实例
    • 选择 MongoDB 副本集
    • 选择 MongoDB 节点
    • 选择 MongoDB 实例,副本集,节点,系统会自动展示出预设的 Dashboard
目录