1、安装
解压:
tar -zxvf keepalived-2.0.10.tar.gz
cd keepalived-2.0.10
执行配置命令:
./configure --prefix=/usr/local/keepalived
编译:
make
安装:
make install
2、加入开机启动
拷贝执行文件:
cp /usr/local/keepalived/sbin/keepalived /usr/sbin/
将init.d文件拷贝到etc下,加入开机启动项 (错误:缺少rc.d 目录,1.2版本之后,这个目录编译后不再出现放在源码包里面):
cp /usr/local/keepalived-2.0.10/keepalived/etc/init.d/keepalived /etc/init.d/keepalived
将keepalived文件拷贝到etc下,加入网卡配置
cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
创建keepalived文件夹
mkdir -p /etc/keepalived
将keepalived配置文件拷贝到etc下
cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf
添加可执行权限
chmod +x /etc/init.d/keepalived
加入开机启动:
chkconfig --add keepalived #添加时必须保证/etc/init.d/keepalived存在
chkconfig keepalived on
添加完可查询系统服务是否存在:
chkconfig –list
3、在/etc/keepalived目录下,添加check_nginx.sh/
#!/bin/bash
A=ps -C nginx --no-header |wc -l
if [ $A -eq 0 ];then
service nginx start #如果检测到nginx挂掉了就重启nginx
if [ ps -C nginx --no-header |wc -l
-eq 0 ];then #nginx重启失败,则停掉keepalived服务,进行VIP转移
killall keepalived
fi
fi
5、修改keepalived.conf配置
xxx.xxx.xxx.112配置:
vrrp_script chk_nginx {
script “/etc/keepalived/check_nginx.sh” //检测nginx进程的脚本
interval 2
weight -20
}
global_defs {
notification_email {
//可以添加邮件提醒
}
}
vrrp_instance VI_1 {
state MASTER //主服务器
interface ens33
virtual_router_id 51
mcast_src_ip xxx.xxx.xxx.112
priority 250
advert_int 1
authentication {
auth_type PASS
auth_pass root_xxxx
}
track_script {
chk_nginx
}
virtual_ipaddress {
xxx.xxx.xxx.143
}
}
xxx.xxx.xxx.113配置:
vrrp_script chk_nginx {
script “/etc/keepalived/check_nginx.sh” //检测nginx进程的脚本
interval 2
weight -20
}
global_defs {
notification_email {
//可以添加邮件提醒
}
}
vrrp_instance VI_1 {
state BACKUP //从服务器
interface ens33
virtual_router_id 51
mcast_src_ip xxx.xxx.xxx.113
priority 240
advert_int 1
authentication {
auth_type PASS
auth_pass root_xxxx
}
track_script {
chk_nginx
}
virtual_ipaddress {
xxx.xxx.xxx.143
}
}
4、启动 keepalive
启动
service keepalived start
停止
service keepalived stop
重启
service keepalived restart