MongoDB监控三 MongoDB自带监控方法
[*]REST接口
MongoDB提供一个简单的REST接口可用于配置监控和告警脚本和其他一些管理任务。
可以通过在命令行添加 --rest参数或在配置文件加上rest=true开启REST接口支持。
具体可以参见文档http://docs.mongodb.org/ecosystem/tools/http-interfaces/
[*]HTTP接口
MongoDB提供一个简单的HTTP接口,如当前MongoDB实例运行的端口是28018,那么可以通过http://127.0.0.1:38018 访问
具体可以参见文档http://docs.mongodb.org/ecosystem/tools/http-interfaces/
[*]MongoDB数据库命令
MongoDB提供一些数据库命令可以细粒度的反映MongoDB的运行情况,可以将这些命令的输出结果用于编写自定义监控脚本。
db.currentOp()返回一个文档记录数据库实例当前正在执行的操作
db.currentOp()可以不带参数或带一个true参数,带true参数可以显示更多详细的信息,包括空闲的连接和系统操作。
db.currentOp(true)
只有具有管理员权限的用户才可以使用db.currentOp()
可以使用db.killOp()加上opid参数结束掉正在执行的操作,但是这样操作需要特别小心。
db.currentOp()返回一个包含一个叫inprog数组的文档。
opid 表示当前操作的ID
active 值为true表示操作已经开始执行,为false表示操作正在排队等待执行
op 操作类型,query表示查询操作,insert表示插入操作,update表示更新操作,remove表示删除操作还可能的值为getmore和command
ns 操作的库名和表名
query 表示查询的具体操作,getmore,insert和command操作会显示空
client 显示客户端连接的IP和端口
desc 表示客户端连接的描述信息
threadId 处理当前操作的线程ID
connectionId 当前操作发起的连接ID
waitingForLock 值为true表示当前操作正在等待一个锁,值为false表示已经得到需要的锁
numYields 这个字段表示当前操作让步其他操作完成的次数。通常情况下,当一个操作需要的数据MongoDB还没有全部读入内存时,这个操作会让步于其他需要的数据已经全部读入内存的操作
lockStats 这个
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
{
"inprog" : [
{
"opid" : 4293208,
"active" : false,
"op" : "query",
"ns" : "",
"query" : {
"getlasterror" : 1
},
"client" : "10.4.13.130:36112",
"desc" : "conn105082",
"threadId" : "0x7feace984700",
"connectionId" : 105082,
"waitingForLock" : false,
"numYields" : 0,
"lockStats" : {
"timeLockedMicros" : {
"R" : NumberLong(0),
"W" : NumberLong(166),
"r" : NumberLong(304),
"w" : NumberLong(0)
},
"timeAcquiringMicros" : {
"R" : NumberLong(0),
"W" : NumberLong(3),
"r" : NumberLong(6),
"w" : NumberLong(0)
}
}
},
页:
[1]