您好,登錄后才能下訂單哦!
一 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)
參考文檔:
https://github.com/rueckstiess/mtools
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。