您好,登錄后才能下訂單哦!
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
實踐
[root@test ~]# mongosniff --help mongosniff: error while loading shared libraries: libpcap.so.0.9: cannot open shared object file: No such file or directory
[root@test ~]# which mongosniff /usr/bin/mongosniff
[root@test ~]# 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并沒有找到。
[root@test ~]# cd /usr/lib64 [root@test 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
添加軟連接。
[root@test lib64]# ln -s /usr/lib64/libpcap.so.1.4.0 /usr/lib64/libpcap.so.0.9
再次查看幫助。
[root@test 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.
抓包:
[root@test 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
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。