global_defs {
notification_email {
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_connect_timeout 30
router_id LVS_DEVEL
vrrp_skip_check_adv_addr
vrrp_strict
vrrp_garp_interval 0
vrrp_gna_interval 0
}
vrrp_script chk_tomcat
{
script "/etc/keepalived/check_haproxy.sh"
script "/etc/keepalived/tomcat_check.sh"
script "/etc/keepalived/mysql.sh"
interval 2
timeout 2
fall 3
}
vrrp_instance VI_1 {
state MASTER
interface ens33
virtual_router_id 51
priority 101
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
173.16.80.212
}
track_script {
chk_tomcat
}
}
vi check_haproxy.sh
#!/bin/bash
A=`ps -C haproxy --no-header |wc -l`
if [ $A -eq 0 ];then
/etc/init.d/haproxyd restart
echo "Start haproxy" &> /dev/null
sleep 3
if [ `ps -C haproxy --no-header |wc -l` -eq 0 ];then
/etc/init.d/keepalived stop
echo "Stop keepalived" &> /dev/null
fi
fi
vi tomcat_check.sh
#!/bin/bash
netstat -ant|grep 8090
ALIVE=$?
LOGFILE="/etc/keepalived/keepalived-check.log"
echo "[CHECK]" >> $LOGFILE
date >> $LOGFILE
if [ $ALIVE -eq 0 ]; then :
echo "8090 is ok" >> $LOGFILE 2>&1
exit 0
else
echo "8090 is down" >> $LOGFILE 2>&1
exit 1
fi
vi mysql.sh
#! /bin/bash
pkill keepalived
/sbin/ifdown ens33 && /sbin/ifup ens33