MongoDB监控项--如何使用命令得到
admin
2023-02-06 13:00:04
0

1.查看服务器线程运行状态

$ mongo --host=  --port= -u mongo_monitor -p"" --authenticationDatabase admin payDB -eval"rs.slaveOk();printjson(db.currentOp());"

当发现secs_running这个字段的值较大并且严重阻塞了系统其它线程运行的时候可以先把使用db.killOp(opid)将其kill掉,然后针对这个链接执行的query进行优化。

 

在一个正在运行的mongodb服务器内部是有很多链接,直接执行db.currentOp()会将所有链接的信息都打印出来,这不便于找出有问题的链接,所以必须都db.currentOp()输出的信息做处理.

 

以下是一些信息处理脚本

找出运行时间超过200ms的链接信息

mongo --host=  --port= -u mongo_monitor -p"" --authenticationDatabase admin payDB -eval"rs.slaveOk();db.currentOp(true).inprog.forEach(function(doc){if(doc.active==true&& doc.secs_running>200){printjson(doc)}});"

如果只需要打出这些链接的某个字段可以直接用print

mongo --host=  --port= -u mongo_monitor -p"" --authenticationDatabase admin payDB -eval"rs.slaveOk();db.currentOp(true).inprog.forEach(function(doc){if(doc.active==true&& doc.secs_running>200){printjson(doc.opid)}});"

 

打印客户端信息

mongo --host=  --port= -u mongo_monitor -p"" --authenticationDatabase admin payDB -eval"rs.slaveOk();db.currentOp(true).inprog.forEach(

function(opDoc){

if(opDoc.client)

printjson(opDoc.client)

}

);"

 

还可以获取当前操作中,已停止活动并且操作行为为query的信息

mongo --host=  --port= -u mongo_monitor -p"" --authenticationDatabase admin payDB -eval"rs.slaveOk();db.currentOp(true).inprog.forEach(

function(opDoc){//opDoc其实是返回的每个op操作对象

if(!opDoc.active&&opDoc.op=='query')

printjson(opDoc)

}

);"

 

还可以获取当前操作中,正在进行中并且操作行为为query的信息

$ mongo --host=  --port= -u mongo_monitor -p"" --authenticationDatabase admin payDB -eval"rs.slaveOk();db.currentOp(true).inprog.forEach(

function(opDoc){//opDoc其实是返回的每个op操作对象

if(opDoc.active&&opDoc.op=='query')

printjson(opDoc)

}

);"

 

 

查看数据库payDB的信息:

$ mongo --host=  --port= -u mongo_monitor -p"" --authenticationDatabase admin payDB -eval"rs.slaveOk();printjson(db.currentOp());"

 

查看连接数

$ mongo --host=  --port= -u mongo_monitor -p"" --authenticationDatabase admin payDB -eval"rs.slaveOk();printjson(db.serverStatus().connections);"

 

把所有在等待锁的操作显示出来:

mongo --host=  --port= -u mongo_monitor -p"" --authenticationDatabase admin payDB -eval"rs.slaveOk();db.currentOp().inprog.forEach(function(item){if(item.waitingForLock)print(JSON.stringify(item))});"

 

 

锁信息

$ mongo --host=  --port= -u mongo_monitor -p"" --authenticationDatabase admin payDB -eval"rs.slaveOk();printjson(db.serverStatus().locks);"

全局锁信息

$ mongo --host=  --port= -u mongo_monitor -p"" --authenticationDatabase admin payDB -eval"rs.slaveOk();printjson(db.serverStatus().globalLock

);"

 

内存信息

$ mongo --host=  --port= -u mongo_monitor -p"" --authenticationDatabase admin payDB -eval"rs.slaveOk();printjson(db.serverStatus().mem

);"

 

索引统计

$ mongo --host=  --port= -u mongo_monitor -p"" --authenticationDatabase admin payDB -eval"rs.slaveOk();printjson(db.serverStatus().indexCounters);"

 

网络

$ mongo --host=  --port= -u mongo_monitor -p"" --authenticationDatabase admin payDB -eval"rs.slaveOk();printjson(db.serverStatus().network);"

 

复制集

$ mongo --host=  --port= -u mongo_monitor -p"" --authenticationDatabase admin payDB -eval"rs.slaveOk();printjson(db.serverStatus().repl

);"

复制集判断哪个IP是primary

$ mongo --host=  --port= -u mongo_monitor -p"" --authenticationDatabase admin payDB -eval"rs.slaveOk();printjson(db.serverStatus().repl

);" | grep primary

 

操作计数器

$ mongo --host=  --port= -u mongo_monitor -p"" --authenticationDatabase admin payDB -eval"rs.slaveOk();printjson(db.serverStatus().opcounters

);"

 

Journal(dur)持久性

$ mongo --host=  --port= -u mongo_monitor -p"" --authenticationDatabase admin payDB -eval"rs.slaveOk();printjson(db.serverStatus().dur

);"

 

 

查看oplog信息:

$ mongo --host=  --port= -u mongo_monitor -p"" --authenticationDatabase admin local -eval "rs.slaveOk();printjson(db.oplog.rs.stats()

);"

 

这个IP不用修改这是primary

查看master 的oplog元数据信息:

$ mongo --host=  --port= -u mongo_monitor -p"" --authenticationDatabase admin admin -eval"rs.slaveOk();printjson(db.printReplicationInfo()

);"

 

修改成任意IP

查看slave的同步状态-延迟:

$ mongo --host=  --port= -u mongo_monitor -p"" --authenticationDatabase admin local -eval"rs.slaveOk();printjson( db.printSlaveReplicationInfo()

);"

 

命令用于追踪数据库实例的实时运行状况

mongostat --host=  --port= -u mongo_monitor -p"" --authenticationDatabase admin


相关内容

热门资讯

人民日报钟声:三问日本,撕开其... 三问日本,撕开其所谓“和平国家”的假面(钟声)《人民日报》(2026年01月15日 第 03 版)一...
打破20年技术僵局 西电团队攻... 中新网西安1月14日电 (阿琳娜 郭楠楠)长期以来,半导体面临一个根本矛盾:我们知道下一代材料的性能...
圆桌论坛|人工智能叩响体育之门... 当AI叩响体育之门,行业对它的核心诉求与定位应如何建构? 1月6日,第十二届体育大生意年度大会暨颁奖...
未排除动武可能,特朗普称将“观... 当地时间1月14日下午,美国总统特朗普在白宫谈及伊朗局势时表示,“我们要先观望局势发展”。他同时指出...
原创 鸿... 在鸿蒙系统向纯血化全速冲刺的当下,生态适配的阵痛期不可避免,记得去年华为Pura 80系列强制内置时...
从“设备出海”到“生态出海”,... 在沈阳浑河南岸的东软医疗产业园里,CEO武少杰站在一台崭新的CT设备前,窗外是园区整洁的道路和冬日晴...
伊朗国家电视台播放特朗普险遭暗... 据《纽约邮报》网站1月14日报道,伊朗国家电视台周三播出一个片段,显示美国总统特朗普2024年在宾州...
周洁:浑南区致力打造科技与教育... 当沈阳市浑南区的孩子们在课堂上学习摩斯密码,或与人工智能机器人进行围棋对弈时,一场关于科技与教育深度...
地热能量:来自地球深处的绿色动... 在地球科学和能源领域,地热资源开采正日益受到关注。作为一种可再生清洁能源,它利用地球内部的热量来发电...
欧洲多国将向格陵兰岛派遣军事人... 德国国防部当地时间1月14日晚表示,应丹麦要求,德国将于1月15日向格陵兰岛派遣13名士兵,作为与欧...