一、安装环境
vip 10.46.137.158
master 10.46.137.151
slave 10.46.137.152
二、mongodb安装(在两台服务器上都安装)
1、安装包下载
https://www.mongodb.com/try/download/community
2、安装
tar xzf mongodb-linux-x86_64-rhel80-5.0.13.tgz -C /opt
cd /opt
mv mongodb-linux-x86_64-rhel80-5.0.13 mongodb
#配置最大文件打开数量和用户数量
ulimit -n 65535
ulimit -u 65535
#查看一下
ulimit -n
ulimit -u
3、创建相应的目录
mkdir -p /data/mongodb # 创建数据库目录
chmod 777 /data/mongodb #更改目录权限
mkdir -p /data/mongodb/data #创建数据目录
mkdir -p /data/logs/mongodb # 创建数据目录
4、配置mongodb
cd /opt/mongodb/
mkdir conf
cd conf
touch mongodb.conf
chmod 777 mongodb.conf
5、在mongodb.conf文件中添加如下内容
vim mongodb.conf
dbpath=/data/mongodb/data #数据存储目录
logpath=/data/logs/mongodb/mongodb.log #日志文件路径
logappend = true #追加
port=27017 #端口号
fork=true #后台进程
bind_ip=0.0.0.0 #远程连接
6、启动mongo服务
cd /opt/mongodb/bin
/opt/mongodb/bin/mongod -f /opt/mongodb/conf/mongodb.conf
7、设置密码
cd /opt/mongodb/bin
/opt/mongodb/bin/mongo
use admin
db.createUser({user:"admin", pwd:"mongdb123456", roles:["root"]});
db.auth("admin","mongdb123456") #添加成功输出1,失败0
exit
8、开启密码验证
#在mongodb.conf文件后面增加添加如下内容
vim /opt/mongodb/conf/mongodb.conf
auth=true
#重启mongodb
/opt/mongodb/bin/mongod -f /opt/mongodb/conf/mongodb.conf --shutdown #关闭mongodb
/opt/mongodb/bin/mongod -f /opt/mongodb/conf/mongodb.conf #启动mongodb
9、设置开机启动
cat > /lib/systemd/system/mongodb.service << EOF
[Unit]
Description=mongodb
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
ExecStart=/opt/mongodb/bin/mongod -f /opt/mongodb/conf/mongodb.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/opt/mongodb/bin/mongod -f /opt/mongodb/conf/mongodb.conf --shutdown
PrivateTmp=true
[Install]
WantedBy=multi-user.target
EOF
开机启动
systemctl daemon-reload
systemctl enable mongodb.service
启动服务
systemctl start mongodb.service
关闭服务
systemctl stop mongodb.service
三、安装keepalived(两台服务器上都安装)
1、安装keepalived
yum -y install keepalived
2、修改配置
master服务器配置如下
vim /etc/keepalived/keepalived.conf
global_defs {
router_id m18 # 自身id,不要与小组其他成员重复
}
vrrp_script chk_mongo_primary {
script "/opt/mongodb/mongo_check_primary.sh"
interval 5
weight 3
fall 3
rise 2
}
vrrp_instance VI_1 {
interface ens192 #网卡名称
state node MASTER
priority 100
virtual_router_id 55
authentication {
auth_type PASS
auth_pass Nbmongdb2284
}
# 虚拟IP
virtual_ipaddress {
10.46.137.158
}
track_script {
chk_mongo_primary
}
}
salve配置如下:
vim /etc/keepalived/keepalived.conf
global_defs {
router_id m19 # 自身id,不要与小组其他成员重复
}
vrrp_script chk_mongo_primary {
script "/opt/mongodb/mongo_check_primary.sh"
interval 5
weight 3
fall 3
rise 2
}
vrrp_instance VI_1 {
interface ens192
state node slave
priority 150
virtual_router_id 55
authentication {
auth_type PASS
auth_pass Nbmongdb2284
}
# 虚拟IP
virtual_ipaddress {
10.46.137.158
}
track_script {
chk_mongo_primary
}
}
3、添加健康脚本,master和slave 服务器都一样
vim /opt/mongodb/mongo_check_primary.sh
#!/bin/bash
export PATH=/opt/mongodb/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
hostname=`hostname`
ISMASTER=$(/opt/mongodb/bin/mongo -host $hostname --quiet --eval 'db.isMaster().ismaster')
if [ $ISMASTER == 'true' ]; then
exit 0
else
exit 1
fi
chmod +x /opt/mongodb/mongo_check_primary.sh
4、启动服务
systemctl daemon-reload
systemctl enable --now keepalived #加入开机启动
5、检查vip 是否漂移
当VIP在master 上的时候,把mongodb停掉,vip 是否漂移到slave上,在将master启动,vip 不变
vip在slave上,将slave的mongodb停掉,vip 漂移到master上。
/opt/mongodb/bin/mongod -f /opt/mongodb/conf/mongodb.conf #启动mongodb
/opt/mongodb/bin/mongod -f /opt/mongodb/conf/mongodb.conf --shutdown #关闭mongodb