MongoDB集群搭建
- 记录一下mongo配置服务器集群的操作
服务器参数:
地址 | 系统 | 节点类型 |
---|---|---|
172.31.252.40 | Centos7.6 | 数据节点 |
172.31.252.41 | Centos7.6 | 数据节点 |
172.31.252.42 | Centos7.6 | 裁决节点 |
yum install -y ./mongo*
1、 为每个节点服务器安装mongo-server、mongo-shell
软件包 | 地址 |
---|---|
mongo-server | https://repo.mongodb.org/yum/redhat/7/mongodb-org/4.2/x86_64/RPMS/mongodb-org-server-4.2.20-1.el7.x86_64.rpm |
mongo-shell | https://repo.mongodb.org/yum/redhat/7/mongodb-org/4.2/x86_64/RPMS/mongodb-org-shell-4.2.20-1.el7.x86_64.rpm |
2、修改配置文件
# mongod.conf
storage:
dbPath: /var/lib/mongodb
journal:
enabled: true
systemLog:
destination: file
logAppend: true
path: /var/log/mongodb/mongod.log
# network interfaces
net:
port: 27017 # 裁决节点可将其改为其它端口(27017)
bindIp: 0.0.0.0
processManagement:
timeZoneInfo: /usr/share/zoneinfo
security:
authorization: enabled # 开启授权认证,否则无法创建用户
keyFile: /data/mongo/keyfile.key # 使用keyfile 进行授权认证
replication:
replSetName: mongo
oplogSizeMB: 100
3、启动Mongo-server,从服务器节点中选择一台开始配置集群
- 进入服务器,打开mongo-shell
mongo
# 1、mongo 终端中输入
cfg = {
_id: "mongo", # 需与上述配置文件设置的replSetName保持一致
members: [
{
_id: 0,
host: '172.31.252.40:27017'
},
{
_id: 1,
host: '172.31.252.40:27017'
},
{
_id: 2,
host: '172.31.252.40:27018',arbiterOnly:true # 裁决节点参数配置
},
]
}
# 2、
rs.initiate(cfg)
#返回结果为1 则表示成功,否则需根据错误内容进行排查
#之后可以查看各节点状态
rs.status()
---------------------------------------------------------------------------------------
{
"set" : "rs_szsh",
"date" : ISODate("2022-05-27T08:52:00.259Z"),
"myState" : 1,
"term" : NumberLong(2),
"syncingTo" : "",
"syncSourceHost" : "",
"syncSourceId" : -1,
"heartbeatIntervalMillis" : NumberLong(2000),
...
}
#输出上述内容则表示集群创建完成,
4、为集群添加keyFile 验证
所有节点需要使用同一keyfile,可任意选择一节点创建keyfile文件,并且每台服务器的keyfile文件都需要权限设置为600
mkdir -p /data/mongo && cd /data/mongo
openssl rand -base64 765 > keyfile.key
chmod -R 600 keyfile.key
#之后将生成的keyfile复制到所有节点,并重启mongo服务
5、创建root用户
# 进入mongo-shell终端
mongo
# 使用admin数据库
use admin
# 创建root用户
db.createUser({
user:"admin",
pwd:"!@#daks2312",
roles:[
{role:"root",db:"admin"}
]
})
自此,带keyfile验证的服务器集群搭建完成