- 论坛徽章:
- 1
|
贴一下相关脚本,交流交流:
keepalived.conf配置文件修改:
! Configuration File for keepalived
#此部分为邮件通知功能,当keepalived发生切换时,会发通知邮件到制定邮箱。
global_defs {
notification_email {
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 192.168.200.1
smtp_connect_timeout 30
router_id LVS_DEVEL
}
vrrp_instance VI_1 {
state BACKUP
interface bond2
virtual_router_id 248
priority 98
advert_int 1
authentication {
auth_type PASS
auth_pass xxxx
}
virtual_ipaddress {
10.0.240.248
}
}
virtual_server 10.0.240.248 3306 {
delay_loop 2
lb_algo rr
lb_kind DR
persistence_timeout 50
protocol TCP
real_server 10.0.240.247 3306{
weight 3
#当业务监测失败,则会执行notifydown指定的脚本。
notify_down /data/scripts/keepalived_checkmysql.sh
TCP_CHECK {
connect_timeout 10
nb_get_retry 3
delay_before_retry 3
connect_port 3306
}
}
}
#keepalived_checkmysql.sh脚本。
cat /data/scripts/keepalived_checkmysql.sh
#!/bin/bash
ip a|grep 10.0.240.248
if [ $? -eq 0 ];then
service mysqld stop
/etc/init.d/keepalived stop
umount /data/mysqldata
fi
###双机自定义监控脚本
cat mysqldaemon.sh
#!/bin/bash
#如果vip在,判断mysql状态,如果无法使用,则挂载磁阵,启动mysql。
ip a|grep 10.0.240.248 && mysql -uroot -p123456 -e "show status"
if [ $? -eq 0 ];then
exit ;
else
mysql -uroot -p123456 -e "show status"
if [ $? -ne 0 ];then
ip a|grep 10.0.240.248
if [ $? -eq 0 ];then
mount /dev/mapper/mpathbp1 /data/mysqldata
chown -R mysql:mysql /data/mysqldata
service mysqld start
fi
fi
fi
#如果不是vip,那么检查mysql和磁阵状态,如果mysql和磁阵都在用,那么就stop mysql,umount 磁阵
ip a|grep 10.0.240.248
if [ $? -ne 0 ] ;then
mysql -uroot -p123456 -e "show status"
if [ $? -eq 0 ];then
service mysqld stop
umount /dev/mapper/mpathbp1
fi
fi
crontab每分钟执行一次 mysqldaemon.sh ,保障ip切换时,服务启动下线。
#############################################################################################################
回复 4# Shell_HAT
|
|