使用Mtools分析MongoDB日志文件
来源:互联网 发布:远东水利造价软件 编辑:程序博客网 时间:2024/06/08 04:16
https://github.com/rueckstiess/mtools/issues
一 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
创建一个散点分布图
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)
- 使用Mtools分析MongoDB日志文件
- MongoDB 日志分析工具 mtools
- [翻译]mongodb日志分析工具mtools之mplotqueries
- MongoDB慢日志分析
- MongoDB慢日志分析
- mongodb 日志文件 oplog
- MongoDB日志文件过大
- 使用logminer分析oracle日志文件
- 使用dSYM 文件分析iOS崩溃日志
- 使用AutoHotkey分析日志文件,得到分析报告。
- MONGODB内存使用分析
- 日志文件分析技巧
- 分析Oracle日志文件
- LogMiner分析日志文件
- linux分析日志文件
- apache日志文件 分析
- Hadoop 日志文件分析
- PX4log 日志文件分析
- dedecms后台控制常用操作错位解决办法
- 游戏接入微信登录、支付流程2017-12 最新
- WeakHashMap总结
- jdk生成keys(用于配置https)
- 1XML简介
- 使用Mtools分析MongoDB日志文件
- dedecms中列表页显示条数不同的解决方法
- 从前端和后端两个角度分析jsonp跨域访问(完整实例)
- MySQL数据库入门学习(多图预警+新手向~)
- Scrapy框架学习(五)----Request、Response介绍及模拟GitHub登录
- RS485通信字符串数据接收处理的问题
- 15算法课程 231. Power of Two
- 《电路计算C++与MATLAB》学习笔记(四)
- 在VS中使用scanf()不报错的方法