`
LJ你是唯一LT
  • 浏览: 243453 次
社区版块
存档分类
最新评论

mongodb监控

阅读更多
1.mongosniff工具
首先了解一下sniffer的概念,百度百科解释:Sniffer,中文可以翻译为嗅探器,是一种基于被动侦听原理的网络分析方式。使用这种技术方式,可以监视网络的状态、数据流动情况以及网络上传输的信息。
sniffer既可以被犯罪分子利用进行违法活动,也可以被网络管理员利用来进行网络系统的维护和故障排除。目前,它已经被广泛应用于网络故障诊断、协议分析、应用性能分析和网络安全保障等各个领域。
Mongodb提供了一个sniffer工具:mongosniff,这个工具可以从底层监控有哪些命令传送给了Mongodb,启动该工具的语法如下面所示:
./mongosniff --source NET lo
注:lo代表Loopback,指IP数据包回送到本机上。通常使用的是127.0.0.1作为回送地址。
示例:
1)在服务端启动mongosniff
Shell代码  收藏代码
[root@localhost mongodb]# ./bin/mongosniff --source NET lo 
sniffing... 27017  
2)在客户端执行操作
Js代码  收藏代码
> show dbs 
admin   0.0625GB 
local   (empty) 
results 0.0625GB 
test    0.0625GB 
>  
3)服务端输出了如下的消息
Shell代码  收藏代码
127.0.0.1:51869  -->> 127.0.0.1:27017 admin.$cmd  67 bytes  id:4c 76 
    query: { listDatabases: 1.0 }  ntoreturn: -1 ntoskip: 0 
127.0.0.1:27017  <<--  127.0.0.1:51869   297 bytes  id:a1 161 - 76 
    reply n:1 cursorId: 0 
    { databases: [ { name: "test", sizeOnDisk: 67108864.0, empty: false }, { name: "admin", sizeOnDisk: 67108864.0, empty: false }, { name: "results", sizeOnDisk: 67108864.0, empty: false }, { name: "local", sizeOnDisk: 1.0, empty: true } ], totalSize: 201326592.0, ok: 1.0 } 
127.0.0.1:51869  -->> 127.0.0.1:27017 admin.$cmd  80 bytes  id:4d 77 
    query: { replSetGetStatus: 1, forShell: 1 }  ntoreturn: 1 ntoskip: 0 
127.0.0.1:27017  <<--  127.0.0.1:51869   92 bytes  id:a2  162 - 77 
    reply n:1 cursorId: 0 
    { errmsg: "not running with --replSet", ok: 0.0 } 
相当于是数据库把系统执行命令的日志都记录了下来,如果我们对这些日志通过文件保存下来,就可以保存数据操作的历史记录,为数据库的性能分析提供原始材料。

2.mongostat
mongostat是Mongodb的一个监控工具,每秒更新一次,通过监控信息可以快速地对数据库进行性能分析。通过mongostat工具可以快速查看运行中的Mongodb实例的统计信息,用法如下:
Shell代码  收藏代码
[root@localhost mongodb]# ./bin/mongostat  
connected to: 127.0.0.1 
insert  query update delete getmore command flushes mapped  vsize    res faults locked % idx miss %     qr|qw   ar|aw  netIn netOut  conn       time  
     0      0      0      0       0       1       0    96m   191m    61m      0        0          0       0|0     0|0    62b     1k     2   00:16:30  
     0      0      0      0       0       1       1    96m   191m    61m      0        0          0       0|0     0|0    62b     1k     2   00:16:31  
     0      0      0      0       0       1       0    96m   191m    61m      0        0          0       0|0     0|0    62b     1k     2   00:16:32  
由上可以看出,执行mongostat命令后,输出了系统内部的运行状态,mongostat具体返回的字段如下:
Shell代码  收藏代码
Fields 
  inserts   - # of inserts per second (* means replicated op) 
  query     - # of queries per second 
  update    - # of updates per second 
  delete    - # of deletes per second 
  getmore   - # of get mores (cursor batch) per second 
  command   - # of commands per second, on a slave its local|replicated 
  flushes   - # of fsync flushes per second 
  mapped    - amount of data mmaped (total data size) megabytes 
  vsize     - virtual size of process in megabytes 
  res       - resident size of process in megabytes 
  faults    - # of pages faults per sec (linux only) 
  locked    - percent of time in global write lock 
  idx miss  - percent of btree page misses (sampled) 
  qr|qw     - queue lengths for clients waiting (read|write) 
  ar|aw     - active clients (read|write) 
  netIn     - network traffic in - bits 
  netOut    - network traffic out - bits 
  conn      - number of open connections 
  set       - replica set name 
  repl      - replication type  
                M   - master 
                SEC - secondary 
                REC - recovering 
                UNK - unknown 
                SLV - slave 

3.db.serverStatus命令
我们可以在客户端执行db.serverStatus命令来查看服务器运行状态,用法如下:
Js代码  收藏代码
> db.serverStatus() 

    "host" : "localhost.localdomain", 
    "version" : "2.0.6",              #服务器版本 
    "process" : "mongod", 
    "uptime" : 3937,                  #启动时间 
    "uptimeEstimate" : 3232, 
    "localTime" : ISODate("2012-08-21T16:21:07.562Z"), 
    "globalLock" : { 
        "totalTime" : 3937151885, 
        "lockTime" : 354898, 
        "ratio" : 0.00009014079475879808, 
        "currentQueue" : { 
            "total" : 0,                #当前全部队列量 
            "readers" : 0,           #读请求队列量 
            "writers" : 0             #写请求队列量 
        }, 
        "activeClients" : {          
            "total" : 0,                #当前客户端连接量 
            "readers" : 0,           #客户端读请求量 
            "writers" : 0             #客户端写请求量 
        } 
    }, 
    "mem" : { 
        "bits" : 32,                       #32位系统 
        "resident" : 61,                #占用物理内存量 
        "virtual" : 191,                 #占用虚拟内存量 
        "supported" : true,          #是否支持扩展内存 
        "mapped" : 96 
    }, 
    "connections" : { 
        "current" : 1,                    #当前活动连接数 
        "available" : 818              #剩余空闲连接数 
    }, 
    "extra_info" : { 
        "note" : "fields vary by platform", 
        "heap_usage_bytes" : 986232, 
        "page_faults" : 1 
    }, 
    "indexCounters" : { 
        "btree" : { 
            "accesses" : 0,         #索引被访问量 
            "hits" : 0,                 #索引命中量 
            "misses" : 0,            #索引偏差量 
            "resets" : 0, 
            "missRatio" : 0         #索引偏差率 
        } 
    }, 
    "backgroundFlushing" : { 
        "flushes" : 65, 
        "total_ms" : 6, 
        "average_ms" : 0.09230769230769231, 
        "last_ms" : 0, 
        "last_finished" : ISODate("2012-08-21T16:20:30.560Z") 
    }, 
    "cursors" : { 
        "totalOpen" : 0, 
        "clientCursors_size" : 0, 
        "timedOut" : 0 
    }, 
    "network" : { 
        "bytesIn" : 12264,         #发给服务器的数据量(byte) 
        "bytesOut" : 171619,    #此服务器发出的数据量(byte) 
        "numRequests" : 193    #发给此服务器的请求量 
    }, 
    "opcounters" : { 
        "insert" : 1,                    #插入操作的量 
        "query" : 44,                  #查询操作的量 
        "update" : 0,                  #更新操作的量 
        "delete" : 0,                   #删除操作的量 
        "getmore" : 0, 
        "command" : 152           #其它操作的量 
    }, 
    "asserts" : { 
        "regular" : 0, 
        "warning" : 0, 
        "msg" : 0, 
        "user" : 0, 
        "rollovers" : 0 
    }, 
    "writeBacksQueued" : false, 
    "ok" : 1 

>  
db.serverStatus与mongostat命令类似,db.serverStatus提示的信息更加具体、全面,不过db.serverStatus命令查看到的数据是静态的,不是实时的。
更多关于服务器状态监控信息,参见官方文档:http://cn.docs.mongodb.org/master/reference/server-status-index/

4.db.stats命令
与db.serverStatus命令查看服务器实例信息不同,db.stats命令是用来查看特定数据库的详细运行状态,分析粒度更细。具体使用方法如下(目前连接的是test库):
Js代码  收藏代码
> db.stats() 

    "db" : "test",               #查看的数据库名称 
    "collections" : 19,        #数据库中的集合数 
    "objects" : 119,           #对象的数量 
    "avgObjSize" : 612.4033613445379,   #对象平均大小 
    "dataSize" : 72876,                  #数据大小 
    "storageSize" : 1196032,         #占用存储空间大小 
    "numExtents" : 21,                   #数据库所有集合中的片区计数 
    "indexes" : 21,                         #索引数量 
    "indexSize" : 171696,               #索引大小 
    "fileSize" : 50331648,               #文件大小 
    "nsSizeMB" : 16,                       #数据库命名空间文件的总大小 
    "ok" : 1 

>   





---

监控
1、http://192.168.12.107:28021/   比mongos端口大1000
mongos viptest2:27021
List all commands | Replica set status
Commands: buildInfo cursorInfo features hostInfo listDatabases serverStatus top
db version v2.4.6
git hash: nogitversion
sys info: Linux buildvm-04.phx2.fedoraproject.org 3.12.8-300.fc20.x86_64 #1 SMP Thu Jan 16 01:07:50 UTC 2014 x86_64 BOOST_LIB_VERSION=1_41
uptime: 288 seconds

点开每个命令都显示如下:
REST is not enabled.  use --rest to turn on.
check that port 28021 is secured for the network too.


将所有的都关掉,重启启动,mongod命令后面添加 --rest  
例如:mongod --dbpath=/mongo1 --port 27017 --rest
三个分片和配置数据库都可以打开,只有mongos好像打不开
http://192.168.12.104:28017/  
http://192.168.12.104:28019/
http://192.168.12.104:28023/
http://192.168.12.107:28018/

使用管理接口,默认情况下,启动mongod会启动基本的http服务器,该服务的默认端口是28017.可以在浏览器中输入
localhost:28017.有些链接需要在mongod启动时,用--rest选项开启rest支持 才能进去.当开启rest支持后,可以
在mongod启动时使用--nohttpinterface来关闭管理接口.

2、serverStatus
要获得运行中的mongodb服务器统计信息,最基本工具就是serverStatus
mongos> db.runCommand({"serverStatus":1})
{
"host" : "viptest2:27021",
"version" : "2.4.6",
"process" : "mongos",
"pid" : 15353,
"uptime" : 616,
"uptimeMillis" : NumberLong(616245),
"uptimeEstimate" : 609,
"localTime" : ISODate("2014-09-23T09:14:53.601Z"),
"asserts" : {.........

3、mongostat
mongostat输出一些serverStatus提供的重要信息,它会每秒钟输出新的一行,比之前看到的静态计数实时性更好,它输出多个列,分别是inserts  commands  vsize locked
[root@viptest2 ~]# mongostat -h 192.168.12.107 --port 27021
connected to: 192.168.12.107:27021
insert  query update delete getmore command  vsize    res faults  netIn netOut  conn repl       time
     0      0      0      0       0       1   227m    16m      0    62b   717b     1  RTR   17:17:13
     0      0      0      0       0       1   227m    16m      0    62b   717b     1  RTR   17:17:14
     0      0      0      0       0       1   227m    16m      0    62b   717b     1  RTR   17:17:15
     0      0      0      0       0       1   227m    16m      0    62b   717b     1  RTR   17:17:16
     0      0      0      0       0       1   227m    16m      0    62b   717b     1  RTR   17:17:17
     0      0      0      0       0       1   227m    16m      0    62b   717b     1  RTR   17:17:18
     0      0      0      0       0       1   227m    16m      0    62b   717b     1  RTR   17:17:19
     0      0      0      0       0       1   227m    16m      0    62b   717b     1  RTR   17:17:20
     0      0      0      0       0       1   227m    16m      0    62b   717b     1  RTR   17:17:21


4、第三方插件
nagios、munin、ganglia、cacti等
------
分享到:
评论

相关推荐

    云数据库MongoDB监控指标解读与关注.pdf

    1. MongoDB监控指标分类及查看命令 MongoDB监控指标可以通过执行相应的命令来查看和分类。常用的分类包括: - MongoDB进程状态指标,例如使用db.serverStatus()命令来获取服务器状态信息。 - MongoDB数据文件状态...

    Zabbix MongoDB监控模板.xml

    《Zabbix MongoDB监控模板详解与应用》 在IT运维领域,实时、准确地监控系统运行状态至关重要,尤其对于数据密集型应用如MongoDB而言。Zabbix作为一款强大的开源监控工具,能够有效地帮助管理员监控和管理各种IT...

    MongoDB监控.pdf

    ### MongoDB监控知识点详解 #### 一、MongoDB监控概述 MongoDB是一款高性能、无模式的文档型数据库系统,被广泛应用于大数据处理、日志存储、实时分析等场景。随着业务的发展,对MongoDB的监控变得至关重要,以...

    使用Docker安装nginx Redis PHP MySQL MongoDB监控器composer服务器.zip

    使用Docker安装nginx Redis PHP MySQL MongoDB监控器composer服务器

    MongoDB监控与runCommand命令.pdf

    本文将深入探讨 MongoDB 的监控工具,特别是 `mongostat` 和 `mongotop` 命令,以及它们在监控数据库性能中的作用。 首先,`mongostat` 是一个实用工具,允许用户以固定时间间隔检查 MongoDB 实例的运行状态,包括...

    nagios监控mongodb插件

    对于MongoDB监控,我们需要一个专门的Python插件,它可以连接到MongoDB服务器,收集诸如连接状态、查询性能、存储容量等信息。 在监控MongoDB分片集群时,我们关注的要点包括: 1. **分片状态**:确保所有分片都...

    Mongodb监控安装配置定义.pdf

    MongoDB Monitoring Service (MMS) 是MongoDB提供的一款强大的监控和管理工具,尤其适用于需要在内部网络环境中确保数据安全的企业。MMS On-Prem版本解决了企业对于数据提交至外部服务器的安全顾虑,允许用户在本地...

    zabbix mongodb监控模板 mongodb版本为4.4

    参考文章链接:https://blog.csdn.net/zhangpfly/article/details/128712519 mongostat是mongodb自带的状态检测工具,可以使用这个命令获取mongodb的当前运行状态,并输出。使用这个命令获取mongodb的状态。

    MongoDB监控与性能调优工具箱:解锁高效数据库管理的秘诀

    MongoDB是一个基于文档的NoSQL数据库,由C++语言编写,旨在为大量分布式数据提供高性能、高可用性和高灵活性的数据存储解决方案。MongoDB的主要特点包括: 1. **文档导向**:MongoDB存储BSON(二进制JSON)格式的...

    MongoDB数据库应用说明

    MongoDB 数据库应用说明 MongoDB 是一个基于分布式文件存储的数据库,由 C++ 语言编写,旨在为 WEB ...MongoDB 监控可以使用各种工具来监控 MongoDB 的性能和状态。 8. 参考文献 MongoDB 的官方文档和其他相关资源。

    MongoDB Ops Manager Manual 2.0

    MongoDB Ops Manager is a service for managing, monitoring and backing up a MongoDB infrastructure. Ops Manager provides the services described here.

    Templates_Mongodb.xml

    该文件为zabbix3.2.x MongoDB监控模板,可以直接导入3.2里面,其他版本的没试过导入。

    Python-mtop用于MongoDB类似于top工具

    **Python-mtop:MongoDB监控工具** Python-mtop是一款针对MongoDB数据库的实时监控工具,类似于Linux系统的"top"命令,提供了一种直观且交互的方式来查看MongoDB服务器的状态和性能指标。这款工具由Python编写,...

    使用zabbix监控mongodb的方法

    通过上述步骤,我们可以建立一个全面的MongoDB监控体系,确保及时发现并解决性能问题。同时,持续优化监控策略,根据业务需求调整监控指标和阈值,是确保MongoDB高效运行的关键。定期审查监控数据,分析瓶颈,结合...

    mongodb监控工具mongostat的使用及命令详解

    MongoDB的监控对于确保数据库的稳定性和性能至关重要。`mongostat`是MongoDB提供的一款内置的命令行工具,用于实时监测数据库的状态,包括各种操作频率、内存使用、网络流量等关键指标。以下是对`mongostat`的详细...

    mongodb性能监控

    MongoDB 是一个流行的开源文档数据库系统,以其高性能、高...同时,也可以结合其他工具,如 MongoDB 的管理工具套件(如 MongoDB Compass)、系统监控工具(如 Nagios 或 Grafana)等,进行更全面的性能监控和分析。

    nosql实验七 MongoDB的管理.docx

    MongoDB 管理详解 MongoDB 是一种流行的 NoSQL 数据库,它提供了灵活的数据存储和高性能的数据处理能力。下面是 MongoDB 管理的...MongoDB 提供了多种管理和监控工具,可以帮助用户更好地管理和维护 MongoDB 数据库。

    大数据存储MongoDB实战指南1

    #### 六、MongoDB监控与管理 - **监控工具**:介绍MongoDB自带的监控工具,如mongostat、db.serverStatus()等,用于监控数据库运行状态。 - **性能调优**:提供了一系列优化建议,包括索引设计、内存配置调整等,...

Global site tag (gtag.js) - Google Analytics