輕鬆掌握元件啟動之MongoDB(番外篇):高可用複製集架構環境搭建-mtools

努力的小雨發表於2023-10-18

引言

在前兩章節中,我們詳細講解了如何手動配置啟動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 

image

安裝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

image

檢視當前複製集狀態

 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 Set
  • mongos 3:啟動3個mongos例項程式。
  • port 27050:叢集將以27050作為起始埠,叢集中的各個例項的埠號基於該值遞增。
  • noauth:不啟用鑑權功能。
  • arbiter:向複製集中新增一個額外的仲裁器。
  • single:建立單個獨立節點。
  • dir:指定資料目錄,預設為./data。
  • binarypath:如果環境中已經存在MongoDB的二進位制檔案,則不需要指定該選項。

如果安裝成功,稍等片刻後,你將會看到以下輸出:

image

檢查分片例項

mlaunch list命令可以對當前叢集的例項狀態進行檢查

image

此時您可以透過檢視各個例項的執行狀態來獲取更多資訊,包括每個例項的程式號和監聽的埠等。

#顯示標籤
mlaunch  list --tags 

#顯示啟動命令
mlaunch  list --startup

連線mongos,檢視分片例項的情況

mongo --port 27050
mongos> db.adminCommand({listShards:1})

image

停止、啟動

如果希望停止叢集,則可以使用mlaunch stop命令

image

想要再次啟動叢集,可以使用mlaunch start命令

image

使用mtools搭建測試叢集是一個非常方便且高效的方式。相比手工搭建,它能夠大大減少時間和精力的投入。透過mtools,您可以快速建立一個測試環境,而不需要手動安裝和配置各種軟體和元件。

總結

mtools是一個基於Python實現的MongoDB工具集,旨在提供一系列功能,包括MongoDB日誌分析、報表生成以及簡易的資料庫安裝等。它由MongoDB原生的工程師單獨發起並進行開源維護。mtools包含了一些常用的元件,如mlaunch、mlogfilter、mplotqueries和mlogvis等,可以幫助我們更方便地啟動和建立MongoDB資料庫。而不需要手動安裝和配置各種軟體和元件。

相關文章