设为首页 收藏本站
查看: 1304|回复: 0

[经验分享] 使用Mtools分析MongoDB日志文件

[复制链接]

尚未签到

发表于 2018-10-25 11:21:32 | 显示全部楼层 |阅读模式
  一 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  创建一个散点分布图
DSC0000.png

mlogfilter mongod.log --operation update --namespace test.users |  
  mplotqueries --type histogram --group "_id: ObjectId\('([^']+)'\)"
  mlogfilter先过滤所有test.users的update操作,然后根据_id分组绘制直方图
  如果groups的数量太大,可以使用 --group-limit 限制前几个分组
DSC0001.png

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

  --type scatter(default)
  参考文档:
  https://github.com/rueckstiess/mtools



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-626292-1-1.html 上篇帖子: mongodb集群(Replica Set)模式 下篇帖子: MongoDB数据库使用总结
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表