1.keepalived配置
! Configuration File for keepalived
global_defs {
router_id pxc_db1 #备份节点改为pxc_db2
}
#检测haproxy是否正常服务脚本,若haproxy挂机,则自动启动
vrrp_script chk_haproxy {
script "/etc/keepalived/check_haproxy.sh"
interval 2
weight 20
}
# VIP1
vrrp_instance VI_1 {
state MASTER #MASTER\ BACKUP
interface ens33 #配置当前为当前所使用的网卡
virtual_router_id 240 #配置id为1-255,在同一个局域网内不能重复,同一个集群使用同一个id
priority 100 #备份节点上将100改为90
nopreempt #当前节点启动不抢占已经工作的节点
advert_int 1 #设定 MASTER 与 BACKUP 负载均衡之间同步检查的时间间隔,单位为秒,两个节点设置必须一样
authentication {
#设置验证类型和密码,节点必须一致
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
#(配置虚拟IP,成为对外服务IP)
192.168.1.196
#(如果有多个VIP,继续换行填写.)
}
track_script {
chk_haproxy
}
notify_master "/etc/keepalived/notify.sh master"
}
2 .写发送脚本
执行命令
vim /etc/keepalived/notify.sh master
写脚本
#!/bin/bash
contact='接邮件的邮件地址'
notify() {
mailsubject="$(hostname) to be $1, vip转移"
mailbody="$(date +'%F %T'): vrrp transition, $(hostname) changed to be $1"
echo "$mailbody" | mail -s "$mailsubject" $contact
}
case $1 in
master)
notify master
;;
backup)
notify backup
;;
fault)
notify fault
;;
*)
echo "Usage: $(basename $0) {master|backup|fault}"
exit 1
;;
esac
3.设置smtp服务
执行命令
yum install mailx -y
vim /etc/mail.rc
文件末尾添加
set from=阿里邮箱
set smtp=smtp://smtp.mxhichina.com:80
set smtp-auth-user=阿里邮箱
set smtp-auth-password=你的密码
set smtp-auth=login
set ssl-verify=ignore
4.测试一下
执行命令
/etc/keepalived/notify.sh master