生产环境部署MongoDB副本集(带keyfile安全认证以及用户权限) 您所在的位置:网站首页 mongodb副本集部署 生产环境部署MongoDB副本集(带keyfile安全认证以及用户权限)

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

#生产环境部署MongoDB副本集(带keyfile安全认证以及用户权限)| 来源: 网络整理| 查看: 265

安装软件包: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: MONGOH​OME/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 验证文件上传下载预览等功能能否正常使用;



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有