参考文档

http://docs.mongodb.org/v2.4/administration/monitoring/

监控MongoDB有一下几种方法:

1)使用MongoDB软件包自带的工具,如mongostat,mongotop等。

2)使用MongoDB数据库命令

3)使用MongoDB公司提供的MMS监控服务

4)使用第三方工具监控


  1. mongostat命令                                                              

    mongostat可以提供mongod和mongos进程的状态信息

    --version 返回mongostat的版本信息

    --verbose,-v详细模式,多个v可以增加详细输出,如-vvvv

    --host <hostname>:<port>

      默认情况下,mongostat会尝试连接本机的27017端口。

    --port 指定端口

    --ssl 使用mongostat通过SSL方式连接mongod

    --username,-u 指定连接的用户名

    --password,-p 指定连接的用户密码

      这里需要注意的是,如果mongod是以认证方式启动的,即加了--auth参数。指定的用户必须要有执行数据库命令serverStatus的权限才行。

    --authenticationDatabase 指定用户认证的库

    --authenticationMechanism 指定认证机制

    --noheaders 不显示行或列名称

    --rowcount <number>-n <number>

      指定显示行数,可以和sleeptime一起使用

       如

        mongostat -vvvvv --port 28018 --noheaders --rowcount 10  3

    --discover 

      当连接到一个replica set中的任何一个成员时,mongostat会发现并显示replica set其他成员的状态信息

    --all  

       显示所有的字段信息

    <sleeptime>  

      mongostat 输出结果的间隔时间,默认是每隔一秒输出一次


    输出字段

    insert    表示每秒插入数据库的对象数量,如果跟在一个*后面,表示这是复制操作

    query     每秒查询操作数量

    update    每秒更新操作数量

    delete    每秒删除操作数量

    getmore   每秒get more操作的数量

    command   每秒执行数据库命令操作的数量 

    flushes   每秒执行fsync操作的数量

    mapped    映射数据的总量,以兆字节M表示。这里的数据是从上次mongostat显示到这次的数量

    vsize     mongod或mongos进程用掉的虚拟内存,以兆字节M表示

    locked db 这里的值表示当前列出的数据库在锁定状态上花销的时间加上mongod进程在全局锁上花销的时间,以百分比表示

    idx miss  表示需要一个页面错误来加载一个Btree节点的索引访问尝试的百分比

    qr        客户端等待从MongoDB实例读操作的队列长度

    qw        客户端等待从MongoDB实例写操作的队列长度

    ar        正在执行读操作的客户端数量

    aw        正在执行写操作的客户端数量

    netIn     MongoDB实例接收到的网络流量,用字节bytes表示,包括mongostat本身连接MongoDB实例产生的流量

    netOut    MongoDB实例发送出去的网络流量,用字节bytes表示,包括mongostat本身连接MongoDB实例产生的流量

    conn      打开的连接数总数

    set       replica set的名称

    repl      replica set的状态  PRI 表示是Primary,SEC表示是Secondary

    

$ mongostat --port 28018  --rowcount  10 3 
connected to: 127.0.0.1:28018
insert  query update delete getmore command flushes mapped  vsize    res faults                       locked db idx miss %     qr|qw   ar|aw  netIn netOut  conn     set repl       time 
    *0     *0    *22     *0       0     1|0       0    93g   187g  1.32g      0 xinchang_server_channels16:0.1%          0       0|0     0|0   203b     3k     3 channel  SEC   11:05:46 
    *1     *0    *16     *1       0     1|0       0    93g   187g  1.32g      0                          .:0.2%          0       0|0     0|0   112b     3k     3 channel  SEC   11:05:49 
    *0     *0    *33     *0       0     1|0       0    93g   187g  1.32g      0  xinchang_server_channels1:0.1%          0       0|0     0|0   203b     3k     3 channel  SEC   11:05:52 
    *1     *0    *30     *0       0     1|0       0    93g   187g  1.32g      1 xinchang_server_channels16:0.2%          0       0|0     0|0   112b     3k     3 channel  SEC   11:05:55 
    *2     *0    *31     *1       0     1|0       0    93g   187g  1.32g      3                      local:0.3%          0       0|0     0|0   203b     3k     3 channel  SEC   11:05:58 
    *1     *0    *16     *0       0     1|0       0    93g   187g  1.32g      0                          .:0.2%          0       0|0     0|0   112b     3k     3 channel  SEC   11:06:01 
    *2     *0    *26     *0       0     1|0       0    93g   187g  1.32g      0                      local:0.3%          0       0|0     0|0   203b     3k     3 channel  SEC   11:06:04 
    *2     *0    *32     *0       0     1|0       0    93g   187g  1.32g      0 xinchang_server_channels16:0.2%          0       0|0     0|0   112b     3k     3 channel  SEC   11:06:07 
    *1     13    *13     *0       0     1|0       0    93g   187g  1.32g      0  xinchang_server_channels1:0.1%          0       0|0     0|0   203b     3k     3 channel  SEC   11:06:10 
    *4     *0    *41     *0       0     1|0       0    93g   187g  1.32g      0 xinchang_server_channels16:0.3%          0       0|0     0|0   112b     3k     3 channel  SEC   11:06:13