使用Mtools分析MongoDB日志文件
admin
2023-01-26 17:05:27
0

一 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.gz
tar zxvf mtools-1.2.2.tar.gz
python 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 count
mloginfo 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

创建一个散点分布图

使用Mtools分析MongoDB日志文件



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


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


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




使用Mtools分析MongoDB日志文件




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



使用Mtools分析MongoDB日志文件




--type scatter(default)































参考文档:

https://github.com/rueckstiess/mtools


相关内容

热门资讯

德国总理:美国正在被伊朗羞辱 德国之声4月27日报道,德国总理默茨在访问一所学校时表示,在当前的持续冲突中,伊朗领导层正试图羞辱美...
理响中国|“长”歌以行,风云激... 光阴如梭,东方潮阔。这里是中国的长三角,世界的长三角。无论过去、现在还是未来,这片土地都因时代而生,...
白宫:特朗普及其国安团队开会讨... 新华社华盛顿4月27日电 美国白宫新闻秘书莱维特27日在记者会上证实,总统特朗普及其国家安全团队当天...
人民日报刊文:日本放开杀伤性武... 日本放开杀伤性武器出口推高地缘冲突风险(国际论坛)常思纯《人民日报》(2026年04月28日 第 0...
医疗保障法草案二审:明确生育保... 满足多样化健康保障需求本报记者 彭 波4月27日,医疗保障法草案二审稿提请十四届全国人大常委会第二十...
天津一景区发生自转旋翼机事故1... 澎湃新闻记者 吕新文中国民用航空华北地区管理局4月22日公布《豪客通航“10•1”天津长芦汉盐旅游区...
卡塔尔埃米尔与美国总统特朗普通... 当地时间24日,卡塔尔埃米尔塔米姆与美国总统特朗普通电话,重点就中东地区局势以及伊朗与美国谈判问题交...
男子30年前被扣押2859克黄... 澎湃新闻记者 王鑫家住辽宁省大连市的潘永嘉近日向澎湃新闻反映称,三十年前,他在大连周水子机场被盖州市...
商务部:取消反制欧盟两家金融机... 中华人民共和国商务部令二〇二六年 第1号鉴于欧盟已取消对中国两家金融机构的制裁措施,现公布《关于取消...
过去24小时共有5艘船只通过霍... 总台记者当地时间24日获悉,过去24小时内,共有5艘船只通过霍尔木兹海峡,其中包括一艘伊朗油轮。(总...