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


相关内容

热门资讯

成都深入实施“人工智能+”行动 成都深入实施“人工智能+”行动 到2027年实现人工智能核心产业规模突破2600亿元 华西都市报讯(...
原创 中... 说真的,看到欧洲科学家一本正经拿粪水浇菜做研究,最后还得出了个“安全无害、肥力充足”的结论,我第一反...
小米智能手环11 Active... IT之家 7 月 23 日消息,科技媒体 WinFuture 昨日(7 月 22 日)发布博文,分享...
胡塞武装袭击红海油轮,特朗普威... 据路透社报道,当地时间7月23日,也门胡塞武装表示已在红海袭击两艘沙特油轮,并称这两艘油轮违反该组织...
刚签就要黄了?特朗普:核能协议... 据彭博社报道,当地时间7月23日,美国总统特朗普表示,美国与沙特阿拉伯的民用核能合作协议能否落地,将...
原创 宇... 可观测宇宙的范围远远超出了以光年为单位的其年龄,因为在遥远光线传播的过程中,空间本身已经膨胀了。然而...
我国研发出具有“电子共振”结构... 【我国研发出具有“电子共振”结构的钙钛矿光伏电池】财联社7月22日电,苏州大学李耀文、陈先凯与东南大...
我国牵头制定,智能制造用例国际... 国际电工委员会智能制造系统委员会(IEC/SyC SM)近日发布《智能制造用例模板》国际标准。该标准...
一文看懂三星Z系列三款折叠新机... 【CNMO科技消息】近日,三星正式发布Z Fold8 Ultra、Z Fold8以及Z Flip8三...
4位菲尔兹奖得主有3位会说中文... 当地时间7月23日,2026年国际数学家大会在美国费城开幕,国际数学联盟在开幕式上正式公布第二十一届...