keepalived安装及配置使用keepalived监听端口

作者 xqlee
浏览次数 96


1.通过yum安装keepalived软件
 

yum install keepalived -y


2.keepalived默认配置文件存放位置

/etc/keepalived/keepalived.conf

3.keepalived配置文件详解

模式1:通过keepalived检查脚本,脚本检查应用的方式使用。

通过shell脚本检查应用的进程是否存在,如果不存在则停止keepalived服务,达到让本机失去抢占VIP的机会。剩下的其他机器根据优先级占用VIP;
注意:每个机器的优先级必须不同;每个机器状态默认均为BACKUP(BACKUP不会在高优先级启动的时候瞬间抢占VIP,主要用于数据库方面的数据同步,如果瞬间抢回中间未同步完全的数据将会出现问题);
! Configuration File for keepalived

global_defs {
   router_id 10086 #用户标识本节点的名称,通常为hostname 
}

vrrp_script check_redis {#创建一个vrrp_script脚本,检查配置
    script "/etc/keepalived/check_redis.sh"
    interval 2 #检查脚本的频率,单位(秒)
}

vrrp_instance VI_1 {
    state BACKUP #配置为BACKUP节点,一般有三个配置可选MASTER(主机)、SALVE(从机)、BACKUP(备机)
    interface eth0 #虚拟IP使用的网卡名称
    virtual_router_id 51 #VRRP组名,多个节点的设置值必须一样,以指明各个节点属于同一个VRRP组
    priority 90 #节点的优先级(1-254之间的值)
    advert_int 1 #组播信息发送间隔,多个节点设置必须一样
    authentication {#设置验证信息,同一个组的多个节点设置必须一致
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {#指定虚拟IP(即VIP)同一个组的多个节点必须设置一致
       192.168.1.100
    }
    track_script {
	check_redis #执行指定vrrp_script脚本
    }
}

check_redis.sh脚本:

#!/bin/sh
CHECK_PROCESS=`ps -C redis-server --no-heading| wc -l`
if [ $CHECK_PROCESS -eq 0 ];then
echo "Redis is stop"
sleep 2
CHECK_PROCESS=`ps -C redis-server --no-heading| wc -l`
if [ $CHECK_PROCESS -eq 0 ];then
/etc/init.d/keepalived stop
fi
fi

模式二:通过keepalived直接监听应用端口方式使用

配置文件:/etc/keepalived.conf
! Configuration File for keepalived

global_defs {
   router_id 10086
}

vrrp_script check_redis {
    script "</dev/tcp/127.0.0.1/6379" #修改最后的redis端口6379为自己需要监听的端口,理论上可以监听远程端口
    interval 2 #检查脚本的频率,单位(秒)
    weight -30 #端口检查失败,优先级减少30,默认减少2
}

vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 51
    priority 95
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
       192.168.1.100
       192.168.2.110
    }
    track_script {
	check_redis
    }
}
每个主机配置的内容仅仅优先级不能相同,其他保持一致。这里默认使用的MASTER,所以在优先级高的节点恢复之后会立即抢占VIP。如果不希望立即抢回VIP则配置BACKUP,BACKUP则是当前VIP机器的keepalived服务挂掉再去寻找高优先级的主机。

整个过程可以通过一下命令查看日志:
tail -f /var/log/message

4.开放防火墙端口

注意:keepalived默认使用端口122进行通讯,必须开放112端口,或者停用防火墙.保证各个主机之间112端口的连通性
CentOS6中iptables配置开放112端口
#iptables -I INPUT  -p 112 -j ACCEPT
保存规则并重启防火墙
service iptables save
service iptables restart

查看iptables端口开放情况

[root@template keepalived]# iptables -L -n --line-numbers
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination         
1    ACCEPT     112  --  0.0.0.0/0            0.0.0.0/0           
2    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED 
3    ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0           
4    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           
5    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22 
6    REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited          

Chain FORWARD (policy ACCEPT)
num  target     prot opt source               destination         
1    REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited 

Chain OUTPUT (policy ACCEPT)
num  target     prot opt source               destination         
[root@template keepalived]# 


5.启动keepalived

启动命令:
service keepalived start
查看启用状态
service keepalived status
设置开机启动
chkconfig keepalived on
暂无评论
站内搜索
搜索
广而告之(广告说明)
加入QQ群(641395244)
qq group
支持博客发展
support
推荐博客
暂无推荐
分享本文