keepalived配置文件双机热备centos6.10
keepalived 安装
rpm -ivh keepalived-1.2.13-5.el6_6.x86_64.rpm
配置文件
master
/etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
enable_script_security
script_user root
router_id 158
}
vrrp_script chk_health
{
script "/etc/keepalived/check_n.sh"
interval 10
weight -2
}
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 158
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
track_script {
chk_health
}
virtual_ipaddress {
192.168.1.160/24
}
}
backup
/etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
enable_script_security
script_user root
router_id 156
}
vrrp_script chk_health
{
script "/etc/keepalived/check_n.sh"
interval 10
weight -2
}
vrrp_instance VI_1 {
state BACKUP
interface eth0
virtual_router_id 156
priority 99
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
track_script {
chk_health
}
virtual_ipaddress {
192.168.1.160/24
}
}
监听脚本
#!/bin/bash
a=`netstat -anp | grep :80\ | wc -l`
#a=`ps -ef | grep nginx | grep -v grep | wc -l`
echo $a
if [ $a -ge 1 ] ;then
exit 0
else
killall keepalived;
exit 1
fi
配合监听的端口打开不可配置默认开机启动
/etc/rc.local
screen -dmS sso /usr/local/bin/sso
#先启动程序停两秒在启动keepalived
#,防止未开启端口导致的keepalived关闭
sleep 2
systemctl start keepalived.service
注意事项
虚拟路由ID(virtual_router_id):主备必须一致,确保属于同一组。
优先级(priority):主服务器需高于备服务器(如100 vs 90)。
认证密码(auth_pass):主备需相同,防止非法节点接入。
心跳间隔(advert_int):默认1秒,可调整但主备需一致。
router_id:主机和备机全局唯一
防火墙开启组网
# bond0 是做bond的逻辑网卡,默认配置ifconfig网卡名称即可
firewall-cmd --direct --permanent --add-rule ipv4 filter INPUT 0 \
--in-interface bond0 \
--destination 224.0.0.18 \
--protocol vrrp -j ACCEPT
firewall-cmd --reload