当前位置:文档之家› MongoDB集群部署与认证

MongoDB集群部署与认证

MongoDB集群部署与认证
MongoDB集群部署与认证

MongoDB集群部署与认证

相关

本文旨在于德阳银行系统中建立一个高可用的MongoDB集群,为应用提供不间断,高鲁棒性的数据库服务,同时于集群中添加认证机制,提高数据库的安全性。

系统说明

操作系统为Red Hat6.364位企业版,单个服务器内存为8G,硬盘容量为1T

网络环境如下:

IP:172.16.52.25 host:db01.voyager.dybank

IP:172.16.52.26 host:db02.voyager.dybank

IP:172.16.52.25 host:core01.voyager.dybank

集群架构

搭建集群架构如下图:

MongoDB db02.voyager.dybank

MongoDB

db01.voyager.dybank

Mongo Client

Replset:voyager_rs1

Arbiter

core01.voyager.dybank

Arbiter

db01.voyager.dybank

Arbiter

db02.voyager.dybank

此次采用两台机器即db01和db02作为副本集节点,副本集群名称为:voyager_rs1,primary 节点为db02,secondary节点为db01,而仲裁节点为三个,分别是core01,db01,db02节点,

副本集节点的端口统一设置为27018,而仲裁节点统一设置为27019。

安装配置

mongoDB安装,同voyager应用环境部署中相同,首先将mongoDB的rpm包放入主目录下,之后执行:

rpm -ivh mongo*

mongoDB即安装完毕。

下面即对mongoDB集群进行配置及认证,以db02.voyager.dybank为例,这里采用keyfile 的方式进行认证,即随机生成一个文本文件,之后副本集的节点只有使用这个文件启动才能成功加入副本集中,提供了安全性,同时keyfile启动自动附带auth机制,过程如下:

目录位于/opt/mongodb下

sudo openssl rand -base64 741 > mongo-keyfile0

sudo chmod 600 mongo-keyfile0

keyfile制作完成,其次在/opt/mongodb目录下执行:

mkdir data

data即数据存放目录,下面就是利用keyfile启动mongoDB实例,这里采用脚本启动,脚本内容如下:

首先为副本集节点启动脚本(startmongoDB.sh):

#!/bin/sh

rm mongo.log

rm mongo.pid

numactl --interleave=all mongod --replSet voyager_rs1 --port 27018 --dbpath=/opt/mongodb/data --logappend --directoryperdb --bind_ip=0.0.0.0 --nohttpinterface --keyfile=/opt/mongodb/mongo-keyfile0 >> mongo.log&

echo $! > mongo.pid

保存后修改文件权限

sudo chmod +x startmongoDB.sh

./startmongoDB.sh

其次建立arb(仲裁节点)的数据库存放目录,/opt/mongodb/data-arb,下面为arb启动脚本:

#/bin/sh

rm mongo-arb.log

rm mongo-arb.pid

numactl --interleave=all --replSet voyager_rs1 --port 27019 --dbpath=/opt/mongodb/data-arb --logappend --directoryperdb --bind_ip=0.0.0.0 --nohttpinterface --keyfile=/opt/mongodb/mongo-keyfile0 >> mongo-arb.log&

echo $!>mongo-arb.pid

同样保存退出,修改权限

sudo chmod +x startmongoDB-arb.sh

./startmongoDB-arb.sh

对于db01.voyager.dybank,同样采用上面的配置,keyfile需要copy到/opt/mongodb目录下,采用同样的步骤启动,脚本不需要修改。

对于core01.voyager.dybank,只需要拷贝keyfile和arb启动脚本即可,本身只作为一个仲裁节点。

集群初始化

启动了相应的服务之后,需要对集群进行初始化,包括集群的结构以及auth。

mongo客户端连接db02.voyager.dybank,之后进行配置,命令如下:

mongo --host db02.voyager.dybank --port 27018

> rs.initiate({

_id : "voyager_rs1",

members : [

{_id : 1, host : "db01.voyager.dybank:27018", priority:2},

{_id : 2, host : "db02.voyager.dybank:27018", priority:3},

]

});

返回成功码为1即搭建完成

添加仲裁节点

rs.addArb(“core01.voyager.dybank:27019”)

rs.addArb(“db01.voyager.dybank:27019”)

rs.addArb(“db02.voyager.dybank:27019”)

添加成功也会返回1

之后执行rs.status()可以看到集群的信息。

之后设置集群的认证,这里首先建立一个admin账户,之后添加库用户可以用这个账户认证后添加:

use admin

db.addUse(“sc”,”v0yager”)

设置成功。

注意事项:需要把防火墙关闭

相关主题
文本预览
相关文档 最新文档