mongodb keepalived 高可用安装

本文详细介绍了如何在两台服务器上安装MongoDB,配置最大文件打开数量和用户数量,创建数据库目录,设置权限,编写配置文件,启动服务并设置密码验证。接着,通过安装和配置Keepalived实现MongoDB的高可用性,包括设置VRRP脚本和虚拟IP,确保在主节点故障时能自动漂移。
摘要由CSDN通过智能技术生成

一、安装环境

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

javascript_good

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值