使用mtools搭建MongoDB复制集和分片集群

发布于:2024-12-07 ⋅ 阅读:(139) ⋅ 点赞:(0)

mtools介绍

mtools是一套基于Python实现的MongoDB工具集,其包括MongoDB日志分析、报表生成及简易的数据库安装等功能。它由MongoDB原生的工程师单独发起并做开源维护,目前已经有大量的使用者。

mtools所包含的一些常用组件如下:

  1. mlaunch支持快速搭建本地测试环境,可以是单机、副本集、分片集群。
  2. mlogfilter日志过滤组件,支持按时间检索慢查询、全表扫描操作,支持通过多个属性进行信息过滤,支持输出为JSON格式。
  3. mplotqueries支持将日志分析结果转换为图表形式,依赖tkinter(Python图形模块)和matplotlib模块。
  4. mlogvis支持将日志分析结果转换为一个独立的HTML页面,实现与mplotqueries同样的功能。

Tools

Description

mlogfilter

合并、分割日志文件,过滤慢查询,集合扫描,格式转换等

mloginfo

统计日志内的数据库信息(启停、连接、集群状态等)

mplotqueries

日志转化为图表形式

mlogvis

日志转化为HTML页面,与mplotqueries类似

mlaunch

快速搭建本地测试环境(单机、集群、分片)

http://blog.rueckstiess.com/mtools/

安装mtools

环境准备

  1. mtools需要调用MongoDB的二进制程序来启动数据库,因此需保证Path路径中包含{MONGODB_HOME}/bin这个目录
  2. 需要安装Python环境,需选用Python 3.7、3.8、3.9版本。 Centos7安装Python3.9

pip安装

安装依赖

pip3 install python-dateutil

pip3 install psutil pymongo

安装mtools

pip3 install mtools

通过源码安装

Release mtools 1.6.4 · rueckstiess/mtools · GitHub

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

选项说明

  1. --sharded 2:启用分片集群模式,分片数为2。
  2. --replicaset --nodes 3:采用3节点的复制集架构,即每个分片为一致的复制集模式。
  3. --config 3 --csrs:配置服务器采用3节点的复制集架构模式,--csrs是指Config Server as a Replica Set
  4. --mongos 3:启动3个mongos实例进程。
  5. --port 27050:集群将以27050作为起始端口,集群中的各个实例基于该端口向上递增。
  6. --noauth:不启用鉴权。
  7. --arbiter 向复制集中添加一个额外的仲裁器
  8. --single 创建单个独立节点
  9. --dir 数据目录,默认是./data
  10. --binarypath 如果环境有二进制文件,则不用指定

如果执行成功,那么片刻后可以看到如下输出:

检查分片实例

mlaunch list命令可以对当前集群的实例状态进行检查

此时可以看到各个实例的运行状态,包括进程号以及监听的端口等。

# 显示标签

mlaunch list --tags #

显示启动命令

mlaunch list --startup

连接mongos,查看分片实例的情况

mongo --port 27050

mongos> db.adminCommand({listShards:1})

停止、启动

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

再次启动集群,可以使用mlaunch start命令

使用mtools搭建测试集群是相当方便的,相比手工搭建的方式可缩减大量的时间。


网站公告

今日签到

点亮在社区的每一天
去签到