扩容 MongoDB RS 集群(切片集集群)
MongoDB 是一种通用文档型数据库。在蓝鲸后台架构中,主要为以下平台提供存储服务:
- 配置平台(CMDB)的核心数据
- 作业平台(Job)的执行日志
- 管控平台(GSE)的插件信息
本教程描述了如何在蓝鲸社区版中扩容 Mongod 副本集。要使一个副本集能提供足够的冗余,至少需要部署三个节点,所以新增节点数必须为偶数,至少增加两台机器。
- 官方部署指引:https://www.mongodb.com/docs/v4.2/administration/replica-set-deployment/
- 虽然单机版部署的蓝鲸只有单 MongoDB 节点,但是默认已将 Mongodb 初始化为副本集,无需额外执行单节点初始化副本集的操作
1. 数据备份
1 | ssh <MongoDB ip> |
2. Mongod 副本集扩容
2.1. 使用标准运维流程扩容
- 该标准运维流程适用于:单/多节点副本集集群新增节点
2.1.1. 前置准备
- 机器准备
- 建议新增机器配置不低于 2C4G,采用 SSD 硬盘,并关闭 swap
- 官方建议的生产环境配置要求:https://www.mongodb.com/docs/v4.4/administration/production-notes/
实现免密
开始部署前,请确保新增主机跟中控机已实现免密。1
ssh-copy-id <ip>
请先前往节点管理,对新增主机进行 agent 安装
将需要部署产品的标准运维流程模版导入至标准运维
标准运维流程模版 下载
详细步骤:打开标准运维 -> 流程 -> 项目流程 -> 导入YAML -> 点击上传 -> 导入
2.1.2. 执行扩容操作
- 选择流程 “[ce][scale]mongodb” 流程模版进行新建任务,根据提示填写相关信息。确认填写信息无误后,开始执行任务。
- 点击下一步进入到“参数信息”填写页,按需填入参数

1.2. 手动单步扩容
- 机器准备
- 建议新增机器配置不低于 2C4G,采用 SSD 硬盘,并关闭 swap
- 官方建议的生产环境配置要求:https://www.mongodb.com/docs/v4.4/administration/production-notes/
2.2.1. 准备机器:新增并初始化机器
以下初始化步骤以单个机器为例,如有多台扩容机器,请多次重复执行,注意替换机器 IP
以下操作在中控机执行,默认在 /data/install 下执行
配置新机器免密
1
ssh-copy-id <ip>
同步蓝鲸的 yum repo
1
rsync -av /etc/yum.repos.d/Blueking.repo root@<ip>:/etc/yum.repos.d/
在 install.config 中增加扩容的机器和模块定义
1
2
3cat >> install.config <<EOF
<ip> mongodb
EOF执行蓝鲸的机器初始化操作
1
2
3
4
5
6# 同步脚本至新机器
./bkcli sync common
# 执行初始化脚本
pcmd -H <ip> '/data/install/bin/init_new_node.sh'
# 确认新机器成功加入了 consul 集群,如果没有输出,可以再次重试
consul members | grep "<ip>:"
2.2.2. 执行扩容操作
如有多台扩容机器,一下操作请多次重复执行,注意替换机器 IP
以下操作在新增机器上执行,默认在 /data/install 下执行,注意替换变量
登陆新增机器
1
ssh <ip>
安装 MongoDB 并完成配置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27# 默认的数据、日志目录
DATA_DIR="/data/bkce/public/mongodb"
LOG_DIR="/data/bkce/logs/mongodb"
# 安装 MongoDB server 及配套工具
if ! rpm -ql mongodb-org-"4.2.3" &>/dev/null; then
yum install -y mongodb-org-"4.2.3" \
mongodb-org-server-"4.2.3" \
mongodb-org-shell-"4.2.3" \
mongodb-org-mongos-"4.2.3" \
mongodb-org-tools-"4.2.3"
fi
# 创建目录并配置权限
install -d -m 755 -o mongod -g mongod "$DATA_DIR"
install -d -m 755 -o mongod -g mongod "$LOG_DIR"
# 选取一台现有节点机器,拷贝配置至新增节点
rsync -av <参考节点的ip>:/etc/mongod.conf /etc/mongod.conf
rsync -av <参考节点的ip>:/etc/mongod.key /etc/mongod.key
# 同步日志滚动策略
rsync -av <参考节点的ip>:/etc/logrotate.d/mongodb /etc/logrotate.d/mongodb
# 修改配置中内网 ip 地址
source /etc/blueking/env/local.env
sed -i "/bindIp/s/127.0.0.1.*/127.0.0.1, $LAN_IP/" /etc/mongod.conf启动服务
1
2
3
4systemctl enable --now mongod.service
# 确认服务状态
systemctl status mongod.service
2.2.3. 注册副本集新节点
任意一个节点的机器上执行,新增2个节点,需执行注册步骤两次
1 | mongo mongodb://<user>:<password>@<primary-ip>:27017/test?authSource=admin --eval 'rs.add("<ip>")' |
2.2.4. 注册 consul:mongodb.service.consul
中控机上执行
1 | cd /data/install ; source utils.fc; source tools.sh |
2.2.5. 完成扩容,验证产品功能
略
2.2.6 注册蓝鲸业务拓扑
以 “Kafka” 为例:
- 打开“配置平台” > “蓝鲸” 业务 > 选中新增的机器 > 点击“追加至” > “业务模块”

- 选择“公共组件” > “kafka” > “下一步”

- 确认变更内容 > “确认追加”

扩容 MongoDB RS 集群(切片集集群)