官网地址:http://www.keepalived.org/
版本记录:http://www.keepalived.org/changelog.html
下载链接:http://www.keepalived.org/download.html
一、基本环境说明
系统版本 | Centos6.8 |
运行用户 | root |
Keepalive版本 | 1.4.5 |
二、Keepalived文件说明
配置文件:/etc/keepalived/keepalived.conf
主程序文件:/usr/sbin/keepalived
启动脚本:/etc/init.d/keepalived
日志文件:/var/log/keepalived.log
三、安装部署
1.下载源码包,上传到/usr/local/src目录;
2.解压:tar -xf keepalived-1.4.5.tar.gz
3.安装依赖包:yum -y install libnl-devel libnfnetlink-devel openssl-devel
4.编译:cd keepalived-1.4.5 ; ./configure --prefix=/usr/local/keepalived
5.安装:make && make install
编译正常显示:

四、配置文件说明
keepalived.conf (主)
global_defs { router_id centos100 #标识本节点的字符串,通常设置为主机名或者业务名 } vrrp_instance VI_1 { state BACKUP #非抢占模式主节点state设置成BACKUP,让其通过priority来竞争;防止VIP频繁切换 nopreempt #非抢占模式,主节点必须配置 interface eth0 #定义vrrp绑定的接口,即接收或发送心跳通告的接口,即HA监测接口 virtual_router_id 100 #虚拟路由标识(VRID),同一实例该数值必须相同;同一网卡上的不同vrrp实例,该值必须不能相同。取值范围0-255 priority 150 #该vrrp实例中本机的keepalived的优先级 advert_int 3 #心跳信息发送和接收时间间隔,单位为秒 authentication { #认证方式,同一实例中这个配置必须完全一样才可通过认证。只建议使用PASS认证 auth_type PASS auth_pass 5566 #最多支持8字符,超过8字符将只取前8字符 } virtual_ipaddress { #设置的VIP 10.200.10.101/24 dev eth0 scope global label eth0 : 1 } } |
keepalived.conf (备)
global_defs { router_id centos102 #标识本节点的字符串,通常设置为主机名或者业务名 } vrrp_instance VI_1 { state BACKUP interface eth0 virtual_router_id 100 priority 100 #优先级不相同 advert_int 3 authentication { auth_type PASS auth_pass 5566 } virtual_ipaddress { 10.200.10.101/24 dev eth0 scope global label eth0: 1 } } |
五、测试过程
1、模拟主节点宕机
测试方法:停止主节点上的keepalived进程或者将主节点关机;
测试结果:经测试,VIP会自动漂到另一台机器,且主节点恢复后VIP不会漂回来;
2、模拟网络中断
测试方法:停止主节点的网口(ifconfig eth0 down)
测试结果:经测试,停止网卡后VIP会自动漂到另一台机器,且主节点恢复后VIP不会漂回来;
六、其他
1、日志配置
默认keeepalived的日志会记录到/var/log/messages中。可以配置keepalived使其记录到其它文件中。
先修改/etc/sysconfig/keepalived文件,以下是原文内容。
/etc/sysconfig/keepalived
# Options for keepalived. See `keepalived --help' output and keepalived(8) and # keepalived.conf(5) man pages for a list of all options. Here are the most # common ones : # # --vrrp -P Only run with VRRP subsystem. # --check -C Only run with Health-checker subsystem. # --dont-release-vrrp -V Dont remove VRRP VIPs & VROUTEs on daemon stop. # --dont-release-ipvs -I Dont remove IPVS topology on daemon stop. # --dump-conf -d Dump the configuration data. # --log-detail -D Detailed log messages. # --log-facility -S 0-7 Set local syslog facility (default=LOG_DAEMON) # KEEPALIVED_OPTIONS= "-D" |
要配置独立的日志,将其中的"KEEPALIVED_OPTIONS"改为如下:
KEEPALIVED_OPTIONS="-D -S 0"
上面配置使用local0这个设备来记录日志,因此去修改rsyslog的配置文件/etc/rsyslog.conf,添加该设备记录日志的级别和路径。
# Keepalived log config
local0.* /var/log/keepalived.log
再重启rsyslog。
service rsyslog restart
2、Keepalive常用命令
service keepalived stop
service keepalived status
service keepalived start
3、Keepalive 监控项
七、版本升级
一.升级脚本
升级脚本keepalived_update.sh
#!/bin/bash NEW_VERSION=1.4.5 check=`/usr/sbin/keepalived -v 2>&1|grep $ { NEW_VERSION } ` if [ "$check" ] ;then echo "keepalived Already is ${NEW_VERSION}." exit 0 fi yum -y install libnl-devel libnfnetlink-devel openssl-devel cd /usr/local/src tar -xf keepalived-$ { NEW_VERSION } .tar.gz cd keepalived-$ { NEW_VERSION } ./configure --prefix=/usr/local/keepalived && make && make install mv /usr/sbin/keepalived /usr/sbin/keepalived-v1.2.15 cp -a /usr/local/keepalived/sbin/keepalived /usr/sbin/keepalived sed -i 's@KEEPALIVED_OPTIONS="-D"@KEEPALIVED_OPTIONS="-D -S 0"@g' /etc/sysconfig/keepalived grep keepalived /etc/rsyslog.conf || echo -e "# Keepalived log config\nlocal0.* /var/log/keepalived.log" >> /etc/rsyslog.conf service rsyslog restart |
二.操作步骤
1.检查配置是否需要修改;2.编译安装;3.重启keepalived服务;4.确认VIP正常分配;
三.升级过程中遇到的问题
问题1:升级重启keeepalived服务后VIP没有正常分配
临时解决方案:手动执行命令分配VIP(注意网卡设备),ifconfig eth0:1 [yourvip] netmask 255.255.255.0 up
最终解决方案:检查配置文件,重启network,重启keepalived