生产环境部署MongoDB副本集(带keyfile安全认证以及用户权限)

安装软件包:mongodb-linux-x86_64-3.4.1.tgz
安装流程思路
目前最小节点是3个,本文档暂且按照3个节点来配置:A、B、C
1、在集群每个节点上安装一份MongoDB;
2、配置副本集;
3、配置副本集的用户、密码;
4、配置副本集的KeyFile安全鉴权;
5、配置开机自启动;
每个节点IP:
• A节点: 192.168.1.10
• B节点: 192.168.1.11
• C节点: 192.168.1.12
步骤1: 每个节点安装MongoDB
1、下载MongoDB安装包:mongodb-linux-x86_64-3.4.1.tgz
2、解压安装包, 创建目录,拷贝配置文件:
[root@a6a766e6204a ~]# tar -zxvf mongodb-linux-x86_64-3.4.1.tgz
[root@a6a766e6204a ~]# mv mongodb-linux-x86_64-3.4.1 mongodb
[root@a6a766e6204a ~]# mv mongo.conf mongodb/
[root@a6a766e6204a ~]# mkdir mongodb/data mongodb/keyfile mongodb/logs
创建完成后,目录的结构:
mongodb
├── bin #可执行文件
├── data #存放数据库文件
├── keyfile #存放Keyfile
├── logs #存放系统日志
├── mongo.conf #配置文件
3、添加到环境变量
[root@a6a766e6204a ~]# vi /etc/bashrc#MongoDB configMONGO_HOME=/root/mongodbPATH= M O N G O H O M E / b i n : MONGO_HOME/bin: MONGOHOME/bin:PATH
export PATH MONGO_HOME

[root@a6a766e6204a ~]# source /etc/bashrc
4、创建 mongo.conf 配置项,包括端口、路径等, 例如,配置后的文件:
[root@a6a766e6204a ~]# vi mongodb/mongo.conf
#日志文件位置:改为实际路径logpath=/root/mongodb/logs/mongo.log
#以追加的方式写日志logappend=true
#端口port=27118
#是否以守护进程的方式运行fork=true
#数据库存储位置:改为实际路径dbpath=/root/mongodb/data/
#是否以安装认证方式运行
#auth=true
#副本集名字replSet=replSet#KeyFile鉴权文件:改为实际路径#keyFile=/root/mongodb/keyfile
5、分别启动每个节点:A、B、C节点
启动方式1:
[root@a6a766e6204a ~]# mongod -f mongodb/mongo.confabout to fork child process, waiting until server is ready for connections.
forked process: 1289child process started successfully, parent exiting

启动方式2:./mongod /data/mongoDB-oa/mongodb/keyfile --bind_ip 192.168.1.10 --port 27118 --dbpath /data/mongoDB-oa/mongodb/data --logpath /data/mongoDB-oa/mongodb/logs/mongodb.log --replSet smartga --logappend --fork --rest --httpinterface

步骤2: 组建副本集
1、使用mongo 客户端 连接任意节点(假设 目前创建的节点有 A、B、C 三台)
[root@c43bfab6f744 ~]# mongo --port 27118
连接成功后,开始配置副本集:

config = {_id: ‘replSet’, members: [{_id: 0, host: ‘192.168.1.10:27118’},{_id: 1, host: ‘192.168.1.11:27118’},{_id: 2, host:‘192.168.1.12:27118’}]}
{ “_id” : “replSet”, “members” : [
{ “_id” : 0, “host” : “192.168.1.10:27118”
},
{ “_id” : 1, “host” : “192.168.1.11:27118”
},
{ “_id” : 2, “host” : “192.168.1.12:27118”
}
]
}

rs.initiate(config) #初始化副本集{ “ok” : 1 }

rs.status() #查看副本集状态,找到private节点的IP

配置mongoDB安全认证
关闭其他节点,保留主节点,重启主节点,主节点不设置replSet参数.
–无认证方式连接主节点admin数据库新增超级管理员用户 admin aaa123,./;
use admin;
db.createUser({
user: ‘admin’,
pwd: ‘aaa123,./’,
roles: [
{
role: ‘root’,
db: ‘admin’
}
]
});

–主节点 SgaZlDB数据库新增读写权限用户
db.auth(“admin”,“aaa123,./”);
use SgaZlDB;
db.createUser({
user: ‘sgazl’,
pwd: ‘aaa123,./’,
roles: [
{
role: ‘readWrite’,
db: ‘SgaZlDB’
}
]
});

1)打开mongo主节点服务器shell
2)进入mongodb根目录
3)执行openssl rand -base64 90 -out ./keyfile
4)拷贝keyfile文件到其余2个节点
5)赋权chmod 600 ./keyfile 三个节点都需要赋权
6)关闭所有节点
7)重启所有节点
如果使用配置文件启动,则需在配置文件里新增配置
auth=true
keyFile=keyfile实际路径

如果使用命令启动
./mongod –auth –keyFile /data/mongoDB-oa/mongodb/keyfile --bind_ip 192.168.1.10 --port 27118 --dbpath /data/mongoDB-oa/mongodb/data --logpath /data/mongoDB-oa/mongodb/logs/mongodb.log --replSet smartga --logappend --fork --rest --httpinterface
验证文件上传下载预览等功能能否正常使用;

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值