推荐一款关于MongoDB日志分析的工具--Mtools

栏目: 数据库 · 发布时间: 5年前

内容简介:MongoDB数据库的强大的文档模型使其成为处理数据的最佳方式。文档适用于广泛的流行数据模型,支持各种各样的场景。文档模型可以包含键值、关系数据集和图形数据集,当然,还可以包含父子关系、列表/数组以及其他层次关系,它们比传统的关系型数据库技术(表格)具有更大的灵活性。由于文档模型与主流面向对象编程语言中的对象直接对应,因此开发人员可以根据现实世界中实体之间的自然关系存储和组织数据,从而将重点放在以最有意义的方式构建应用程序上,而不是围绕其数据库的局限性开展工作。因此,使用文档模型显著提高了开发人员的生产效率

一. 需求背景

MongoDB数据库的强大的文档模型使其成为处理数据的最佳方式。文档适用于广泛的流行数据模型,支持各种各样的场景。文档模型可以包含键值、关系数据集和图形数据集,当然,还可以包含父子关系、列表/数组以及其他层次关系,它们比传统的关系型数据库技术(表格)具有更大的灵活性。由于文档模型与主流面向对象编程语言中的对象直接对应,因此开发人员可以根据现实世界中实体之间的自然关系存储和组织数据,从而将重点放在以最有意义的方式构建应用程序上,而不是围绕其数据库的局限性开展工作。因此,使用文档模型显著提高了开发人员的生产效率,使组织机构能够更快地进行创新。MongoDB CEO 兼总裁Dev Ittycheria称之为: 文档即未来。

但是 MongoDB 通用的监控 工具 有限,其中又有一部分还是要收费的,通过工具 Percona Monitoring and Management 进行监控,是个不错的选择。但在慢查询收集方面,需要开启Profiling,对性能方面会有一些侵害,另外,更细粒度的监控项维护起来也不容易。如果不想不开启Profiling,我们还可以通过收集分析mongodb的运行log来来进行性能监控,并且通过运行日志还可以获取更多的运行状态相关的信息。

今天介绍的就是一款专门用来读取、分析MongoDB运行日志的工具--Mtools。

二. Mtools 的介绍

Mtools的工具包和功能可以通过下面的List来描述。

工具包 工具 功能概览 实现功能 执行的命令(案例)
mtools Mlogfilter mlogfileter可以简单理解为日志的过滤器 列出日志文件中所有的slow log(以json格式输出) mlogfilter mongod.log --slow 100 --json
通--from 和 --to 参数限定搜索范围 mlogfilter mongod.log --slow 100 --from 2018-12-10T09:32:26 --to 2018-12-10T09:58:26
上面命令限定范围 也通过 to 来指定时间段,例如监控10min内的数据 mlogfilter mongod.log --from 2018-12-10T09:32:26 --to +10min
通过mlogfilter查询日志中某个表的slow log(超过100ms的) mlogfilter --namespace xxx.xx --slow 100 mongod.log
mloginfo mloginfo可以过滤总结出slow query的情况,以及为日志中各类最常常出现情况进行统计 通过mloginfo统计日志中connections的来源情况 mloginfo mongod.log --connections
通过mloginfo查看日志中所记录的复制集状态变更(如果有的话) mloginfo mongod.log --rsstate
通过mloginfo统计查看日志中慢查询的分类 mloginfo --queries mongod.log
通过mloginfo统计日志中各类信息的distinct mloginfo mongod.log --distinct
mplotqueries 用不同类型的图将日志文件可视化(需要安装matplotlib) 通过mplotqueries进行慢查询散点分布图绘制 mplotqueries mongod.log --output-file slow01-2.png
通过mplotqueries进行慢查询散点分布图绘制,且只返回前10个 mplotqueries mongod.log --output-file slow01-4.png --logscale --group-limit 10
仅看日志中某一个表的慢查询散点分布情况 mlogfilter mongod.log --namespace xx.xxx |mplotqueries --output-file slow01-5.png
通过mplotqueries来对日志中的慢查询进行操作类型分布 mplotqueries mongod.log --group operation --output-file slow01-6.png
查看每小时的insert情况 mlogfilter mongod.log --operation insert | mplotqueries --type histogram --bucketsize 3600 --output-file 01-11.png

三. Mtools安装的详细步骤

很多同学抱怨安装比较麻烦,错误很多,在这儿,把安装的详细步骤梳理如下。

Step 1下载pip程序包

wget "https://pypi.python.org/packages/source/p/pip/pip-1.5.4.tar.gz#md5=834b2904f92d46aaa333267fb1c922bb"

推荐一款关于MongoDB日志分析的工具--Mtools

Step 2 解析下载的文件

推荐一款关于MongoDB日志分析的工具--Mtools

 Step 3安装 python setup.py install

此时报错,提示错误信息如截图

推荐一款关于MongoDB日志分析的工具--Mtools

Step 4针对上述错误,需安装setuptools,python下的setuptools。此程序包带有一个easy_install的工具,在安装 python 的每三方模块、工具时很有用,。

下载

wget --no-check-certificate https://pypi.python.org/packages/source/s/setuptools/setuptools-12.0.3.tar.gz#md5=f07e4b0f4c1c9368fcd980d888b29a65

推荐一款关于MongoDB日志分析的工具--Mtools

解压

推荐一款关于MongoDB日志分析的工具--Mtools

Step 5转到解析后的文档中,再次安装 python setup.py install

推荐一款关于MongoDB日志分析的工具--Mtools

安装成功。

Step 6安装 yum -y install python-pip

推荐一款关于MongoDB日志分析的工具--Mtools

如果提示错误

No package python-pip available.

Error: Nothing to do

请看后面的附注

Step 7安装  mtools

执行命令  pip install mtools

推荐一款关于MongoDB日志分析的工具--Mtools

Step 8安装效果验证

使用其中的mlogfileter命令,查看日志超过100ms的慢查询。

推荐一款关于MongoDB日志分析的工具--Mtools

通过mloginfo统计日志中connections的来源情况

推荐一款关于MongoDB日志分析的工具--Mtools

验证工具安装OK。

安装后,工具包所在的文档位于 /usr/lib/python2.7/site-packages/mtools 下 (自动生成)

推荐一款关于MongoDB日志分析的工具--Mtools

四 附录

A:解决 No package python-pip available的问题

此错误的原因主要是没有安装epel。索引, 运行以下命令,安装epel

推荐一款关于MongoDB日志分析的工具--Mtools

安装 epel-release后,再次安装 python-pip,不再报错。

推荐一款关于MongoDB日志分析的工具--Mtools

B:运行 mplotqueries 工具 需安装 python-matplotlib 包,和修改mplotqueries.py文件

否则报错,具体信息如下:

推荐一款关于MongoDB日志分析的工具--Mtools

安装命令 yum install python-matplotlib

到此,还没结束,还会报错,我们还需要修改 /usr/lib/python2.7/site-packages/mtools/mplotqueries/mplotqueries.py 执行文件。

添加 以下指令

import matplotlib as mpl
mpl.use('Agg')

添加前

推荐一款关于MongoDB日志分析的工具--Mtools

添加后

推荐一款关于MongoDB日志分析的工具--Mtools

再次执行 mplotqueries 命令后,看出生成了我们想要的 01-2.png 统计文件

推荐一款关于MongoDB日志分析的工具--Mtools

本文版权归作者所有,未经作者同意不得转载 , 谢谢配合!!!


以上所述就是小编给大家介绍的《推荐一款关于MongoDB日志分析的工具--Mtools》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

七周七并发模型

七周七并发模型

Paul Butcher / 黄炎 / 人民邮电出版社 / 2015-3 / 49.00元

借助Java、Go等多种语言的特长,深度剖析所有主流并发编程模型 基于锁和线程的并发模型是目前最常用的一种并发模型,但是并发编程模型不仅仅只有这一种,本书几乎涵盖了目前所有的并发编程模型。了解和熟悉各种并发编程模型,在解决并发问题时会有更多思路。 ——方腾飞,并发编程网站长 当看到这本书的目录时,我就为之一振。它涉及了当今所有的主流并发编程模型(当然也包括Go语言及其实现的CSP......一起来看看 《七周七并发模型》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具