引言
在前兩章節中,我們詳細講解了如何手動配置啟動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資料庫。而不需要手動安裝和配置各種軟體和元件。