千家信息网

使用Mtools分析MongoDB日志文件

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,一 Mtools介绍mtools是一组用来解析和过滤MongoDB日志文件的脚本。mtools包括以下几个工具:mlogfilter 可以根据时间切割日志文件,过滤慢查询等mloginfo 返回日志文
千家信息网最后更新 2026年11月01日使用Mtools分析MongoDB日志文件

一 Mtools介绍

mtools是一组用来解析和过滤MongoDB日志文件的脚本。mtools包括以下几个工具:

mlogfilter 可以根据时间切割日志文件,过滤慢查询等

mloginfo 返回日志文件信息,比如开始和结束时间等

mplotqueries 对日志文件进行视图展现

mlogvis 创建一个自定义html文件交互式展现

mlaunch 快速搭建本地测试环境,包括复制集合分片系统


mtools是用python写的,需要python2.6或者python2.7,目前不兼容python3

二 Mtools使用


1.安装mtools

可以使用pip直接安装mtools


yum install python-devel

pip install numpy

pip install python-matplotlib

 pip install mtools

或者直接下载安装

wget https://pypi.python.org/packages/25/fe/c9375c462c9f0592407695bb5ce784866ce7b5336b8d66141e1f3250cf1f/mtools-1.2.2.tar.gztar zxvf mtools-1.2.2.tar.gzpython setup.py install

2.mlogfilter

mlogfilter用于解析日志,如果有多个日志文件,mlogfilter按照时间戳合并

mlogfilter mongod.log --slow --json | mongoimport -d test -c mycoll


分析慢查询并以json格式导出并导入到test库的mycoll集合中


mlogfilter /opt/logs/mongodb/*.log --slow  --json


查看某个库的某个集合的慢查询, --slow可以指定慢查询时间为多少毫秒

mlogfilter mongod.log --namespace admin.\$cmd --slow 1000



查看某一个操作类型的慢查询,一次只能指定一个操作类型,可以是query,insert,update,delete,command,getmore

mlogfilter /opt/logs/mongodb/*.log --slow  1000  --namespace order.bill   --operation query



根据某一个线程的查看慢查询

mlogfilter /opt/logs/mongodb/*.log --slow  1000  --namespace order.bill   --operation query  --thread conn1317475



--parttern P 根据匹配条件查询日志

mlogfilter mongod.log --pattern '{"_id": 1, "host": 1, "ns": 1}


这里需要注意的是,字段名称必须用双引号包围




根据关键字过滤日志

mlogfilter mongod.log --word assert warning error



根据时间范围进行日志搜索


返回所有9月份的日志

mlogfilter mongod.log --from Sep


返回5分钟之前的日志

mlogfilter mongod.log --from "now -5min"


返回当天00:00:00 到当天02:00:00 的日志

mlogfilter mongod.log --from today --to +2hours


返回当天从9:30开始的日志

mlogfilter mongod.log --from today 9:30


3.mloginfo

mloginfo可以包括日志文件的相关信息


显示日志的查询统计信息

mloginfo mongod.log --queries


对结果进行排序

mloginfo mongod.log --queries --sort countmloginfo mongod.log --queries --sort sum



显示重启信息

mloginfo mongod.log --restarts


分类显示日志消息

mloginfo mongod.log --distinct



显示连接信息

mloginfo mongod.log --connections


显示复制集信息

mloginfo mongod.log --rsstate




4.mplotqueries

mplotqueries是一个可以可视化MongoDB日志文件中的操作的工具。



-- group GROUP

group参数指定数据根据什么分组然后每组一个种颜色绘制成各种图表,默认是散点分布图


GROUP可以的值有

namespace

filename

operation

thread

log2code

pattern


mplotqueries mongod.log --group operation

创建一个散点分布图




mlogfilter mongod.log --operation update --namespace test.users |  mplotqueries --type histogram --group "_id: ObjectId\('([^']+)'\)"


mlogfilter先过滤所有test.users的update操作,然后根据_id分组绘制直方图


如果groups的数量太大,可以使用 --group-limit 限制前几个分组








mplotqueries mongod.log --type range --group log2code --group-limit 10







--type scatter(default)































参考文档:

https://github.com/rueckstiess/mtools


日志 查询 文件 信息 时间 分组 分布图 工具 类型 分析 交互式 件信息 关键 关键字 参数 名称 图表 多个 字段 引号 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 上海喔噻互联网科技有限公司 天津市摩尔互联网科技 今日互联网科技 互联网科技开发公司 上海致骋互联网科技 深圳期待互联网科技 镁科技互联网资讯平台 互联网科技公司需要的职位 科技互联网的估值 福州新华互联网科技学校 知乎 栖莱科技互联网股份有限公司 互联网金融中的现代科技 晓花互联网科技有限公司网址 速维有品互联网信息科技(苏州)有限公司 米聚互联网科技南京有限公司排面 深圳育鹏互联网科技有限公司招聘 杭州披云加互联网科技有限公司 互联网科技博主张洲 第三届互联网大会安防黑科技 瑞安市蟠桃会互联网科技有限公司 互联网扶贫科技 互联网科技公司名称 广西互联网科技孵化中心 互联网领先科技宣传片 江苏互联网科技小贷 互联网界的黑科技 互联网科技收购价值 互联网科技职业技能培训学校 华人运通互联网科技公司 互联网科技创新方面的资料
0