mongodb监控工具mongosniff

mongodb监控工具mongosniff

介绍

mongosniff提供了对数据库实时活动的低级别操作跟踪和嗅探视图。可以将mongosniff认为是专为MongoDB定制的,类似于tcpdump用于TCP/IP网络流量分析。mongosniff常用于驱动开发。

注意:mongosniff需要libpcap,并且只对类Unix系统可用。

相对于mongosniff,Wireshark,一个流行的网络嗅探工具,可用于侦测和解析MongoDB线协议。

用法

下面的命令连接到运行在localhost的27017和27018上的mongod或mongos:

mongosniff --source NET lo 27017 27018

下面的命令只记录运行在localhost的27018上的mongod或mongos的无效的BSON对象,用于驱动开发和问题跟踪:

mongosniff --objcheck --source NET lo 27018

实践

[[email protected] ~]# mongosniff --help    
mongosniff: error while loading shared libraries: libpcap.so.0.9: cannot open shared object file: No such file or directory
[[email protected] ~]# which mongosniff   
/usr/bin/mongosniff
[[email protected] ~]# ldd /usr/bin/mongosniff   
        linux-vdso.so.1 =>  (0x00007fffe2d7a000)    
        libpthread.so.0 => /lib64/libpthread.so.0 (0x0000003558e00000)    
        librt.so.1 => /lib64/librt.so.1 (0x0000003559200000)    
        libpcap.so.0.9 => not found    
        libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x0000003559e00000)    
        libm.so.6 => /lib64/libm.so.6 (0x0000003559600000)    
        libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x000000355a600000)    
        libc.so.6 => /lib64/libc.so.6 (0x0000003558a00000)    
        /lib64/ld-linux-x86-64.so.2 (0x0000003558200000)

可以看出libpcap.so.0.9 => not found并没有找到。

[[email protected] ~]# cd /usr/lib64   
[[email protected] lib64]# ls -al | grep libpcap    
lrwxrwxrwx.  1 root root      16 Feb 26 17:28 libpcap.so.1 -> libpcap.so.1.4.0    
-rwxr-xr-x   1 root root  260880 Nov 22  2013 libpcap.so.1.4.0

添加软连接。

[[email protected] lib64]# ln -s /usr/lib64/libpcap.so.1.4.0 /usr/lib64/libpcap.so.0.9

再次查看帮助。

[[email protected] lib64]# mongosniff --help   
Usage: mongosniff [--help] [--forward host:port] [--source (NET <interface> | (FILE | DIAGLOG) <filename>)] [<port0> <port1> ... ]    
--forward       Forward all parsed request messages to mongod instance at     
                specified host:port    
--source        Source of traffic to sniff, either a network interface or a    
                file containing previously captured packets in pcap format,    
                or a file containing output from mongod‘s --diaglog option.    
                If no source is specified, mongosniff will attempt to sniff    
                from one of the machine‘s network interfaces.    
--objcheck      Log hex representation of invalid BSON objects and nothing    
                else.  Spurious messages about invalid objects may result    
                when there are dropped tcp packets.    
<port0>...      These parameters are used to filter sniffing.  By default,     
                only port 27017 is sniffed.    
--help          Print this help message.

抓包:

[[email protected] lib64]# /usr/bin/mongosniff --source NET bond0 > /var/log/currentOp/sniff.log

下面是sniff.log中的部分内容:

10.10.0.1:55553  -->> 10.10.0.2:27017 MyTest.Pro  1042 bytes  id:41d99     269721    
        query: { $query: { id: { $in: [ 380, 383 ] }, Availability.Status: { $lt: 5 }, $or: [ { id: { $lt: 331 } }, { id: { $gt: 200, $lt: 400 } }, { id: { $gt: 600, $lt: 800 } } ] }, $orderby: { Availability.Status: 1 } }  ntoreturn: 0 ntoskip: 0 hasfields SlaveOk
时间: 2024-08-27 10:19:23

mongodb监控工具mongosniff的相关文章

MongoDB 创建基础索引、组合索引、唯一索引以及优化

一.索引 MongoDB 提供了多样性的索引支持,索引信息被保存在system.indexes 中,且默认总是为_id创建索引,它的索引使用基本和MySQL 等关系型数据库一样.其实可以这样说说,索引是凌驾于数据存储系统之上的另一层系统,所以各种结构迥异的存储都有相同或相似的索引实现及使用接口并不足为 奇. 1.基础索引 在字段age 上创建索引,1(升序);-1(降序): db.users.ensureIndex({age:1})1_id 是创建表的时候自动创建的索引,此索引是不能够删除的.当

MongoDB系列(一):简介及安装

什么是MongoDB MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统. 在高负载的情况下,添加更多的节点,可以保证服务器性能. MongoDB 旨在为应用提供可扩展的高性能数据存储解决方案. MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成. MongoDB 文档(BSON)类似于 JSON 对象.字段值可以包含其他文档,数组及文档数组. MongoDB的特点 1. MongoDB的提供了一个面向文档存储,操作起来比较简单和容易.

(转)为首次部署MongoDB做好准备:容量计划和监控

如果你已经完成了自己新的MongoDB应用程序的开发,并且现在正准备将它部署进产品中,那么你和你的运营团队需要讨论一些关键的问题: 最佳部署实践是什么? 为了确保应用程序满足它所必须的服务层次我们需要监控哪些关键指标? 如何能够确定添加分片的时机? 有哪些工具可以对数据库进行备份和恢复? 怎样才能安全地访问所有新的实时大数据? 本文介绍了硬件选择.扩展.HA和监控.在查看详细信息之前,首先让我们处理一个最常见的问题: 部署MongoDB和部署RDBMS有什么不同? 你会发现MongoDB作为一个

【转】mongoDB之监控工具mongotop

(转自:http://www.cnblogs.com/zhuque/archive/2013/03/29/2988639.html) mongotop也是mongodb-win32-x86_64-2.2.1\bin下的一个内置工具,mongotop提供了一个方法,用来跟踪一个MongoDB的实例,查看哪些大量的时间花费在读取和写入数据. mongotop提供每个集合的水平的统计数据.默认情况下,mongotop返回值的每一秒. 用法: 1. E:\mongodb-win32-x86_64-2.2

【转】mongoDB之监控工具mongostat

(转自:http://www.cnblogs.com/zhuque/archive/2013/03/29/2988577.html) mongostat是mongdb自带的状态检测工具,在命令行下使用.它会间隔固定时间获取mongodb的当前运行状态,并输出.如果你发现数据库突然变慢或者有其他问题的话,你第一手的操作就考虑采用mongostat来查看mongo的状态. mongostat命令格式,当然也可以加参数: 在第一个例子中,mongostat将返回数据的每一秒,持续20秒. mongos

进程监控工具supervisor 启动Mongodb

一什么是supervisor Superviosr是一个UNIX-like系统上的进程监控工具. Supervisor是一个Python开发的client/server系统,可以管理和监控*nix上面的进程.不过同daemontools一样,它也不能监控daemon进程 官网:http://supervisord.org/ 二为啥用supervisor 部署简单 : 为啥简单呢?因为咱们通常管理linux进程的时候,一般来说都需要自己编写一个能够实现进程start/stop/restart/re

MongoDB客户端及监控工具

现在许多应用都使用MongoDB存储大量的业务数据,MongoDB基于文档式的存储,在大数据行业的应用还是很普遍的.MongoDB的客户端工具也很多,基于web的却不多,国产的就更少了,下面这款国产的TreeSoft数据库管理系统,是Java开发的,基于web的一款工具软件,实现MongoDB的数据维护及状态实时监控. 1.直接在线编辑shell脚本,查询mongodb数据.常用命令帮助等. 2.MongoDB数据在线查看.编辑.删除.维护. 3.MongoDB关键指标参数的在线监控.集合数量,

MongoDB初探系列之二:认识MongoDB提供的一些常用工具

在初探一中,我们已经可以顺利的将MongoDB在我们自己的机器上跑起来了.但是在其bin目录下面还有一些我们不熟知的工具.接下来,将介绍一下各个小工具的用途以及初探一中MongoDB在data文件夹下创建的文件的用途. 1.bin目录下面的各种小工具简介及使用方式 bsondump.exe 用于将导出的BSON文件格式转换为JSON格式mongo.exe mongoDB的客户端 mongod.exe 用于启动mongoDB的Server mongodump.exe 用于从mongodb数据库中导

MongoDB性能优化指南

一.索引 MongoDB 提供了多样性的索引支持,索引信息被保存在system.indexes 中,且默认总是为_id创建索引,它的索引使用基本和MySQL 等关系型数据库一样.其实可以这样说说,索引是凌驾于数据存储系统之上的另一层系统,所以各种结构迥异的存储都有相同或相似的索引实现及使用接口并不足为 奇. 1.基础索引 在字段age 上创建索引,1(升序);-1(降序): db.users.ensureIndex({age:1}) _id 是创建表的时候自动创建的索引,此索引是不能够删除的.当