mtools是一個基於Python實現的MongoDB工具集,旨在提供一系列功能,包括MongoDB日誌分析、報表生成以及簡易的資料庫安裝等。它由MongoDB原生的工程師單獨發起併進行開源維護。mtools包含了一些常用的組件,如mlaunch、mlogfilter、mplotqueries和ml... ...
引言
在前兩章節中,我們詳細講解瞭如何手動配置啟動MongoDB。然而,現在有許多不同的工具可以幫助我們更方便地啟動和創建MongoDB資料庫。因此,今天我將介紹一個名為mtools的開源項目,它可以幫助我們更輕鬆地啟動MongoDB。
mtools介紹
官方文檔地址:mtools
mtools是一個基於Python實現的MongoDB工具集,旨在提供一系列功能,包括MongoDB日誌分析、報表生成以及簡易的資料庫安裝等。該工具集由MongoDB原生的工程師單獨發起併進行開源維護,目前已經吸引了大量的用戶。
mtools包含了一些常用的組件,下麵是其中一些組件的介紹:
- mlaunch:這個組件能夠快速搭建本地測試環境,無論是單機、副本集還是分片集群,都可以輕鬆實現。
- mlogfilter:這個組件用於對MongoDB日誌進行過濾,支持按時間檢索慢查詢和全表掃描操作,同時還支持通過多個屬性進行信息過濾,並可以將結果輸出為JSON格式。
- mplotqueries:這個組件能夠將日誌分析結果轉換為圖表形式,它依賴於tkinter(Python圖形模塊)和matplotlib模塊,可以方便地進行數據可視化。
- mlogvis:這個組件可以將日誌分析結果轉換為一個獨立的HTML頁面,實現了與mplotqueries相同的功能。
Tools | Description |
---|---|
mlogfilter | 合併、分割日誌文件,過濾慢查詢,集合掃描,格式轉換等 |
mloginfo | 統計日誌內的資料庫信息(啟停、連接、集群狀態等) |
mplotqueries | 日誌轉化為圖表形式 |
mlogvis | 日誌轉化為HTML頁面,與mplotqueries類似 |
mlaunch | 快速搭建本地測試環境(單機、集群、分片) |
安裝mtools
環境準備
為了使用mtools,您需要確保在Path路徑中包含MongoDB的二進位程式所在的目錄{MONGODB_HOME}/bin。此外,還需要安裝Python環境,並選擇安裝Python 3.7、3.8或3.9版本。如果您正在Centos7上進行安裝,可以安裝Python 3.9。
pip安裝
安裝依賴
pip3 install python-dateutil
pip3 install psutil pymongo
安裝mtools
pip3 install mtools
通過源碼安裝
源碼地址:https://github.com/rueckstiess/mtools/releases/tag/v1.6.4
wget https://github.com/rueckstiess/mtools/archive/refs/tags/v1.6.4.tar.gz
#解壓後進入mtools
python setup.py install
使用mtools創建複製集
#準備複製集使用的工作目錄
mkdir -p /data/mongo
cd /data/mongo
#初始化3節點複製集
mlaunch init --replicaset --nodes 3
埠預設從27017開始,依次為2017,27018,27019
查看當前複製集狀態
mongo --port 27017
replset:PRIMARY> rs.status()
使用mtools創建分片集群
#準備分片集群使用的工作目錄
mkdir /data/mongo-cluster
cd /data/mongo-cluster/
#執行mlaunch init初始化集群
mlaunch init --sharded 2 --replicaset --node 3 --config 3 --csrs --mongos 3 --port 27050
選項說明
sharded 2
:啟用分片集群模式,分片數為2。replicaset --nodes 3
:採用3節點的複製集架構,即每個分片為一致的複製集模式。config 3 --csrs
:配置伺服器採用3節點的複製集架構模式,--csrs是指Config Server as a Replica Setmongos 3
:啟動3個mongos實例進程。port 27050
:集群將以27050作為起始埠,集群中的各個實例的埠號基於該值遞增。noauth
:不啟用鑒權功能。arbiter
:向複製集中添加一個額外的仲裁器。single
:創建單個獨立節點。dir
:指定數據目錄,預設為./data。binarypath
:如果環境中已經存在MongoDB的二進位文件,則不需要指定該選項。
如果安裝成功,稍等片刻後,你將會看到以下輸出:
檢查分片實例
mlaunch list
命令可以對當前集群的實例狀態進行檢查
此時您可以通過查看各個實例的運行狀態來獲取更多信息,包括每個實例的進程號和監聽的埠等。
#顯示標簽
mlaunch list --tags
#顯示啟動命令
mlaunch list --startup
連接mongos,查看分片實例的情況
mongo --port 27050
mongos> db.adminCommand({listShards:1})
停止、啟動
如果希望停止集群,則可以使用mlaunch stop
命令
想要再次啟動集群,可以使用mlaunch start
命令
使用mtools搭建測試集群是一個非常方便且高效的方式。相比手工搭建,它能夠大大減少時間和精力的投入。通過mtools,您可以快速創建一個測試環境,而不需要手動安裝和配置各種軟體和組件。
總結
mtools是一個基於Python實現的MongoDB工具集,旨在提供一系列功能,包括MongoDB日誌分析、報表生成以及簡易的資料庫安裝等。它由MongoDB原生的工程師單獨發起併進行開源維護。mtools包含了一些常用的組件,如mlaunch、mlogfilter、mplotqueries和mlogvis等,可以幫助我們更方便地啟動和創建MongoDB資料庫。而不需要手動安裝和配置各種軟體和組件。