mongo监控工具研究
mongo监控工具研究
一、前言
今天,领导过来问,我们的阅卷系统最近2天在钉钉监控群上发的时间不太对劲,明明8点半发的数据统计,要8点40多分才发到群上。一开始问我这个监控是不是像定时任务那样挂在服务器上的(非常肯定滴说没有这玩意),还是程序跑的(至于跑在哪,我也不知道)。叫我查下是不是阿里云的服务器时间有问题,这个我真的百分百肯定阿里云服务器还是让人放心的,不会出现跟互联网时间相差N秒到几分钟不等的情况(只有天翼云才那么不靠谱,搞到还得定时2分钟跑一次时间同步)
后来叫我查下阅卷系统的mysql的阿里云监控,看看慢查询日志,当我想把这些sql发给开发的时候,开发一把拒绝了,就说他是知道哪些sql比较慢的,不用发他。慢是因为使用到的mongo有问题,但目前没有工具去做监控。然后就有我这个题目:mongo监控工具可视化的研究了。
二、工具研究历程
老实说,我对这个mongo一点都不熟,就用过Studio 3T去连mongo(好像只乌龟图,如下,反正这动物我从来没见过,动物世界也是),对mongo的认识就停留在:命令行上创建数据库、用户授权,还有数据库导入导出的迁移工作。。。
谷歌查阅了下相关工具的资料。女人直觉:prometheus+grafana肯定能做,果然是有的,不过我不是很想从这里入手,因为看了下导入监控模板的界面,发现其实是没有太有价值的监控数据在里面的(当然自己写应该是可以的,反正以前研究过promQL的语法好难写,放弃了),看着就比较虚(数据库查询就是希望找到哪些sql执行效率不高,需要改善嘛,比如建索引,分表分库之类),所以放到万不得已的候选方案中。
大半天下来,研究了3种工具
1、mms(全称:MongoDB Management Service)
对服务器有侵入性(要在服务器上装东西),这玩意我不好评估(究竟会不会搞坏服务器,会不会搞死服务?),所以特意打了个快照,而且还是在之前的测试性能的临时服务器测试的(这几天要备份释放啦,搞死罢就呗,而且跟正式版环境的部署一摸一样的),生产环境反正不敢动,内网服务器感觉又不好模拟。这环境正好当白老鼠!
老实说,部署文章大部分叫去官方链接注册:https://mms.mongodb.com/。然后我就真是去注册了,然后还真的是不知所云= =,就是下面的一个界面(知道的朋友,希望能好心滴发下中文解释的说明文章)
发现部署的文章都严重滞后的,什么2017年了呀~~~终于找到官方的部署文档:https://docs.opsmanager.mongodb.com/current/application/#monitoring(好像要翻墙才能看)
执行了几个安装步骤,知道要及时止损了
1、下载: wget https://downloads.mongodb.com/on-prem-mms/rpm/mongodb-mms-4.4.7.100.20210109T1656Z-1.x86_64.rpm 2、安装: rpm -ivh https://downloads.mongodb.com/on-prem-mms/rpm/mongodb-mms-4.4.7.100.20210109T1656Z-1.x86_64.rpm 会产生目录:/opt/mongodb/mms/ 文件:/opt/mongodb/mms/conf/conf-mms.properties 3、启动: service mongodb-mms start
报错起不来,说至少要mongo 4 的版本,线上部署的是mongo3.4.7的版本,暂时没有找到mms的安装包。看看安装完的目录:/opt/mongodb/mms/, 1.6G。再看看吓人的评论,感觉学习成本有点高,先放下。
2、Mongo Management Studio Professional
对服务器无侵入。简单查询,跟studio 3T 这只乌龟使用类似,直接登录连接,仅支持查询,没有一丁点监控数据看的。
连接进去想对界面了解清楚的,可以参考这个链接:
http://forum.foxera.com/mongodb/topic/1700/%E5%AE%A2%E6%88%B7%E7%AB%AF%E8%BD%AF%E4%BB%B6-mongodb-compass
数据库能监控到:
单一数据库里的文档记录能监控到:
还有一个好像心电图的东西,靠开发哥哥去了解了~~~
原文地址:https://www.cnblogs.com/windysai/p/14332445.html
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 【21期】你能说说Java中Comparable和Comparator的区别吗
- 昨天晚上熬夜整理的Java注解相关学习笔记
- 对图标的坐标轴进行调整
- Vue 开发技巧总结
- 35.opengl PBR-光照
- 聊聊claudb的list command
- nginx add_header 仅部分或一次生效的原因与解决办法
- 聊聊claudb的keys command
- 聊聊claudb的server command
- 聊聊claudb的Database
- 聊聊claudb的SlaveReplication
- flutter doctor 卡死
- Angular如何自定义attribute指令
- 聊聊claudb的MasterReplication
- k8s 之yaml文件基本格式