千家信息网

MongoDB监控项--如何使用命令得到

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,1.查看服务器线程运行状态$ mongo --host= --port= -u mongo_monitor -p"" --authenticationDatabase admin payDB -eva
千家信息网最后更新 2026年10月31日MongoDB监控项--如何使用命令得到

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


信息 链接 运行 数据 字段 对象 数据库 服务器 正在 状态 线程 行为 处理 服务 命令 较大 这不 不用 全局 内存 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 喔噻互联网科技有限公司 智能科技公司是互联网公司吗 互联网扶贫科技 智网互联网科技 太原新华互联网科技学校怎么样 海南科技产业互联网平台 互联网科技公司需要的职位 现代科技和互联网有关系吗 南山科技园互联网公司有哪些 互联网对科技的发展 互联网科技扶贫时间 华中科技大学互联网的牛人 无锡工业互联网科技有限公司 国大互联网教育科技有限公司薪资 从那以后互联网科技有限公司 江苏互联网科技小贷 福仕德教育科技互联网 亚光科技低轨卫星互联网 互联网科技大佬云集 科技发展第三阶段互联网时代 互联网是不是新科技 互联网科技革命 汇久创客互联网科技 无线互联网科技 广州恒生互联网科技有限 互联网金融科技展 九思连强互联网电子科技有限公司 科技互联网专业工作会议发言稿 上海互联网科技园景观 高科技和互联网的现代国家
0