作者:朱丹阳,腾讯云监控开发工程师
文章旨在通过对 MongoDB 监控指标的梳理和架构的分解,帮助广大的腾讯云 MongoDB 用户更好的通过监控告警及时发现业务异常,实时监控数据趋势。内容将会包括三个部分:
1. 介绍 MongoDB 的产品特性、技术特征;
2. 通过内部专业团队提供的指标及告警阈值建议;
3. 云监控控制台监控 MongoDB 的最佳实践;
云数据库 MongoDB(TencentDB for MongoDB)是腾讯云基于开源非关系型数据库 MongoDB 专业打造的高性能、分布式数据存储服务,完全兼容 MongoDB 协议,适用于面向非关系型数据库的场景。
云存储服务是腾讯云平台面向互联网应用的数据存储服务。 2. 完全兼容 MongoDB 协议
既适用于传统表结构的场景,也适用于缓存、非关系型数据以及利用 MapReduce 进行大规模数据集的并行运算的场景。 3. 提供高性能、可靠、易用、便捷的 MongoDB 集群服务
每一个实例都是至少一主一从的副本集或者是包含多个副本集的分片集群。 4. 支持整合备份、扩容等功能
尽可能的保证用户数据安全以及动态伸缩能力。
细粒度快速处理错误。
可回档至 7 天内的任意时刻。
MongoDB 架构 & 监控指标
因为篇幅问题,放至文末供大家查阅,也可登录云监控官网查阅:
https://cloud.tencent.com/document/product/248/45104
以下指标均为专家建议数据库监控需要覆盖的核心指标,以及需要引起关注的阈值,避免面对一片指标无从下手:
磁盘使用率 > 80%
注:代表集群容量使用率,集群容量使用率达到 100% 会被写封禁,影响用户写入,所以需要用户注意提前扩容。
时延在 100 毫秒以上请求次数 > 5000
注:时延在 100 毫秒以上请求在 MongoDB 中可以理解为慢查询,是性能问题排查的重要指标。
集群连接数百分比 > 80%
注:预防集群连接数过多,导致 MongoDB 服务端无法建立更多连接造成客户端无法访问 MongoDB 集群。
磁盘使用率 > 80%
注:代码副本集容量使用率,副本集容量使用率达到 100% 会被写封禁,影响用户写入,所以需要用户注意提前扩容。
CPU 使用率 > 80%
注:CPU 使用率过高会影响在服务器正常运行程序等系统层面问题。
内存使用率 > 80%
注:内存使用率过高容易引起服务响应速度变慢,服务器登录不上等系统层面问题。
Qr>100,Qw>100,Ar>100,Aw>100
注:
1. Qr|Qw 为等待读/写的队列长度, Ar|Aw 为执行读/写操作客户端数量,都为0的话表示MongoDB毫无压力。
2. MongoDB负载高时,命令来不及处理,MongoDB将命令放入队列。高并发时,一般队列值会升高。
3. Qr|Qw ,Ar|Aw如果一直0说明很健康,如果过高的话那就说明MongoDB处理起来很慢了,有可能有慢查询,锁表排队等现象(Ar|Aw 表示引擎层当前时刻获取“ticket令牌”执行读写操作的请求数。如果请求处理的很快,这个值会很低。如果请求处理很慢,一直占用“ticket令牌”,这个值会很高,需要关注。)
https://console.cloud.tencent.com/monitor/overview 进入腾讯云监控,选择告警配置下告警策略,并新建告警策略。
设置 MongoDB 告警
1. 输入策略名称
2. 输入备注
3. 选择策略类型
4. 选择 MongoDB 实例
5. 设置告警指标及触发条件
6. 选择告警渠道,包括接收对象,接收渠道,有效时段,接收语言
7. 保存
配置的 MongoDB 节点告警总览
腾讯云监控 Dashboard 提供了云数据库 MongoDB 的预设面板,无需添加任何指标,即可在预设面板内直接查看专家建议指标详情。
https://console.cloud.tencent.com/monitor/overview 进入腾讯云监控,选择 Dashboard,点击进入【云数据库 MongoDB 预设面板】后可选择实例,副本集,节点,自动展示出预设的 Dashboard。
云数据库 MongoDB 预设面板总览:
附录:监控指标
欢迎联系云监控小助手微信号,加群讨论:)
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。