Mongodb副本集群和Keepalived的VIP高可用部署步骤
发表时间:2019-04-19 13:56 | 分类:数据库运维 | 浏览:3,057 次
准备环境:
VIP: 192.168.1.110 mongodb1 :192.168.1.106 mongodb2: 192.168.1.107 mongodb3: 192.168.1.108
1、部署mongodb副本集群
集群部署参考:Mongodb副本集群搭建配置
2、安装keepalived
三个mongodb节点都需要安装keepalived。
su - root yum install keepalived
修改配置文件
cd /etc/keepalived mv keepalived.conf keepalived.conf.orig vim keepalived.conf #配置类似如下 global_defs { notification_email { me@example.com } notification_email_from system@example.com smtp_server 192.168.1.1 smtp_connect_timeout 30 } # Define the script to see if the local node is the primary vrrp_script chk_mongo_primary { script "/etc/keepalived/scripts/mongo_check_primary.sh" # 检查频率,以下配置每5秒检查1次 interval 5 # weight 3 # 连续监测失败3次,才认为真的健康检查失败。并调整优先级 fall 3 # 连续监测2次成功,就认为成功。但不调整优先级 rise 2 } # Configuation for the virtual interface vrrp_instance VI_1 { # 发送心跳包的源IP,可使用绑定的网卡IP,也可以使用本服务器上的其他IP interface ens33 # 指定vrrp_instance的初始状态,master还是backup state node MASTER # 本机的优先级,VRID相同的机器中,优先级最高的会被选举为MASTER priority 150 # 相当于VRID,用于在一个网内区分组播,需要组播域内内唯一 virtual_router_id 55 # 定义主从的验证方式以及密码,一般使用PASS authentication { auth_type PASS auth_pass secret # Set this to some secret phrase } # 虚拟IP virtual_ipaddress { 192.168.1.110 } # 设置检查脚本,关联上方的vrrp_script track_script { chk_mongo_primary } }
三个keepalived节点这边设定192.168.1.106的初始状态是master,其他两台是slave。
配置文件按需修改,主要修改以下几个配置:
vrrp_instance: interface ens33 state node MASTER # 初始一台master,其他slave priority 150 # 权重,初始master最大,其他slave可以设定为100
3、添加监控脚本
mkdir -pv /etc/keepalived/scripts cat /etc/keepalived/scripts/mongo_check_primary.sh # 类似如下 #!/bin/bash export PATH=/usr/local/mongodb/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin hostname=`hostname` ISMASTER=$(/usr/local/mongodb/bin/mongo -host $hostname --quiet --eval 'db.isMaster().ismaster') if [ $ISMASTER == 'true' ]; then exit 0 else exit 1 fi
4、启动keepalived
systemctl restart keepalived.service
相关链接:https://zhangnq.com/2933.html