首页 在线工具 VPS服务器 联系我们

Mongodb副本集群和Keepalived的VIP高可用部署步骤

发表时间:2019-04-19 13:56 | 分类:数据库 | 浏览:439 次

准备环境:

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

本文标签:

本文链接:https://zhangnq.com/2999.html

欢迎您在本博客中留下评论,如需转载原创文章请注明出处,谢谢!

一键脚本 博客历程 留言本 文章归档 网站地图 谷歌地图 浙ICP备13025236号
托管于阿里云&七牛云 浙公网安备 33021202001057号
Copyright © 2010-2019 章郎虫博客 All Rights Reserved.