5

轻松掌握组件启动之MongoDB(番外篇):高可用复制集架构环境搭建-mtools - 努力的小...

 11 months ago
source link: https://www.cnblogs.com/guoxiaoyu/p/17743883.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

在前两章节中,我们详细讲解了如何手动配置启动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数据库。而不需要手动安装和配置各种软件和组件。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK