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


    引言

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

  • 相关阅读:
    cause and effect essay
    FS03MR12A6MA1LBBPSA1 1200V 400A 紧凑型 六单元模块
    Java中的IO操作
    HBase1.4.6安装搭建及shell命令使用
    刷题之路:1196 - 【入门】递归版拐角I题解
    Android项目更新依赖和打包步骤和问题汇总
    16.2.2 创建存储函数
    IDEA中如何使用debug调试项目 一步一步详细教程
    【JS】限制输入内容带特殊符号
    英文转换-在线英文批量转换器免费
  • 原文地址:https://www.cnblogs.com/guoxiaoyu/p/17743883.html