文章目录
环境配置:
172.16.72.201
172.16.72.202
虚拟VIP 172.16.72.210
一、安装Keepalived、mysql、mail
安装Keepalived
安装mysql
参考mysql双主
安装mail
二、配置
创建监控mysql下线后的执行脚本
因为是给Keepalived监控mysql下线的执行脚本,执行效果为发送下线邮件到自己邮箱,然后关闭keepalived使路由下线,备份VIP起作用,所以创建在于Keepalived配置文件同一目录下
vi /etc/keepalived/mysql_down.sh
脚本需要修改为自己的邮箱地址
#!/bin/bash
ip=`ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6|awk '{print $2}'|tr -d "addr:"`
echo $ip server mysql server is down datetime:$(date) | /usr/bin/mail -s mysql 自己的邮箱地址@163.com
systemctl stop keepalived
赋予文件可执行权限
chmod a+x /etc/keepalived/mysql_down.sh
修改主备的keepalived.conf
Master:
! Configuration File for keepalived
global_defs {
router_id 172.16.72.201
script_user root
}
vrrp_instance VI_1 {
state MASTER
interface ens33
virtual_router_id 50
priority 101
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
172.16.72.210
}
}
virtual_server 172.16.72.210 3306 {
delay_loop 6
lb_algo rr
lb_kind NAT
persistence_timeout 50
protocol TCP
real_server 172.16.72.201 3306 {
weight 1
notify_down /etc/keepalived/mysql_down.sh
TCP_CHECK {
connect_timeout 2
retry 2
delay_before_retry 1
}
}
}
Backup
! Configuration File for keepalived
global_defs {
router_id LVS_DEVEL
script_user root
}
vrrp_instance VI_1 {
state BACKUP
interface ens33
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
172.16.72.210
}
}
virtual_server 172.16.72.210 3306 {
delay_loop 6
lb_algo rr
lb_kind NAT
persistence_timeout 50
protocol TCP
real_server 172.16.72.202 3306 {
weight 1
notify_down /etc/keepalived/mysql_down.sh
TCP_CHECK {
connect_timeout 2
retry 2
delay_before_retry 1
}
}
}
三、重启服务
- 重启keepalived
systemctl restart keepalived
四、测试
- 停止mysql ,观测是否收到邮件及keepalived是否已被关闭
systemctl stop mysql systemctl status keepalived