1、从keepalived官网拉最新的版本 http://www.keepalived.org/download.html,我下载的版本是keepalived-2.0.4
2、解压到本地目录/home/mes,tar vxzf keepalived-2.0.4.tar.gz
3、cd keepalived-2.0.4
4、./configure --prefix=/usr/local/keepalived 貌似不加后面的--prefix,也是默认安装到这个目录
5、configure过程中,可能会报错,按如下步骤处理
错误1:!!! OpenSSL is not properly installed on your system. !!!
!!! Can not include OpenSSL headers files.
执行:yum -y install openssl-devel
错误2:*** WARNING - this build will not support IPVS with IPv6. Please install libnl/libnl-3 dev libraries to support IPv6 with IPVS.
执行:yum -y install libnl libnl-devel,完了之后再执行./configure --prefix=/usr/local/keepalived
错误3:libnfnetlink headers missing
执行:yum install -y libnfnetlink-devel,完了之后再执行./configure --prefix=/usr/local/keepalived
如果没有再报错,表示configure成功了
6、make && make install
7、指定配置文件启动 /usr/local/keepalived/sbin/keepalived -D -f /usr/local/keepalived/etc/keepalived/keepalived.conf
8、开机自启动配置
拷贝执行文件
cp /usr/local/keepalived/sbin/keepalived /usr/sbin/
将init.d文件拷贝到etc下,加入开机启动项 ,2.x和1.x版本的/etc/init.d/keepalived路径不一样,这里坑了我一把
cp /home/mes/keepalived-2.0.4/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
添加keepalived到开机启动
chkconfig --add keepalived
chkconfig keepalived on
以后可以愉快滴用service keepalived start了
9、修改keepalived.conf如下:修改这个文件:/etc/keepalived/keepalived.conf
#全局配置
global_defs {
notification_email {
11111111@qq.com #管理员邮箱,可以配置多个,一个一行
}
notification_email_from ****@qq.com
smtp_server smtp.qq.com
smtp_connect_timeout 30
router_id nginx_master #重点参数、局域网keepalived主机身份标识信息,不一定是主机名,默认为本地主机名
}
#检测脚本,每2秒执行一次检测脚本
vrrp_script chk_http_port {
script "/home/mes/check_nginx_pid.sh"
interval 2
weight 2
}
#
#vrrp协议相关配置
vrrp_instance VI_1 {
state MASTER #keepalived角色描述(状态)信息,可以配置参数(MASTER BACKUP)
interface ens160 #表示将生成虚IP地址,设置在指定的网卡上,ifconfig可以查看
virtual_router_id 66 #表示keepalived家族标识信息,主备要一致
priority 100 #keepalived服务竞选主备服务器优先级设置(越大越优先)
advert_int 1 #主服务组播包发送间隔秒数
authentication { #主备主机之间通讯认证机制,主备一致
auth_type PASS
auth_pass 1111
}
track_script {
chk_http_port
}
#虚拟ip
virtual_ipaddress {
192.168.123.200
}
}
10、在/home/mes目录下新建一个脚本文件:
#!/bin/bash
A=`ps -C nginx --no-header |wc -l`
if [ $A -eq 0 ];then
/usr/local/nginx/sbin/nginx #重启nginx
sleep 2
if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then #nginx重启失败,则停掉keepalived服务,进行VIP转移killall keepalived
fi
fi
11、重启keepalived:service keepalived restart