准备环境:
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
相关链接:http://blog.nbqykj.cn/?p=2933.html
正文完
微信搜一搜“奇悦电脑科技”或扫描二维码关注我们


