keepalived 安装
直接通过apt-get方式安装最简单
1 2 3 4
| [root@bogon /]# apt-get install libssl-dev openssl libpopt-dev [root@bogon /]# apt-get install -y keepalived [root@bogon /]# keepalived -v [root@bogon /]# Keepalived v1.2.13 (08/03,2017)
|
编写 Haproxy 状态监测
1 2 3 4 5 6 7 8 9 10
| [root@bogon /]# vim /etc/keepalived/check_haproxy.sh #!/bin/sh if [ $(ps -C haproxy --no-header | wc -l) -eq 0 ]; then /home/dxy/haproxy/sbin/haproxy -f /home/dxy/haproxy/conf/haproxy.cfg fi
sleep 2 if [ $(ps -C haproxy --no-header | wc -l) -eq 0 ]; then killall keepalived fi
|
设置keepalived master的最简配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
| ! Configuration File for keepalived # global setting , notify email setting global_defs { #存在于同一个网段中,一组keepalived的各个节点都有不同的名字 #在全局设置中,我们还可以设置管理员的email信息等。 router_id LVS_V1 }
#这个是我们在上一小结讲到的haproxy检查脚本,我们保存在这个文件中(注意文件权限) vrrp_script chkhaproxy { script "/etc/keepalived/check_haproxy.sh" #每10秒钟,检查一次 interval 10 }
#keepalived实例设置,是最重要的设置信息 vrrp_instance VI_1 { #state状态MASTER表示是主要工作节点。 #一个keepalived组中,最多只有一个MASTER节点,当然也可以没有 state MASTER #实例所绑定的网卡设备,我的网卡设备是ens33。您按照您自己的来 interface ens33 #同一个keepalived组,节点的设置必须一样,这样才会被识别 virtual_router_id 52 #节点优先级,BACKUP的优先级一定要比MASTER的优先级低 priority 100 #组播信息发送间隔,两个节点设置必须一样 advert_int 1 #实际的ens33上的固定ip地址 mcast_src_ip 192.168.1.11 #验证信息,只有验证信息相同,才能被加入到一个组中。 authentication { auth_type PASS auth_pass 1111 } #虚拟地址和绑定的端口,如果有多个,就绑定多个 #dev 是指定浮动IP要绑定的网卡设备号 virtual_ipaddress { 192.168.1.10 dev ens33 }
#设置的检查脚本 #关联上方的“vrrp_script chkhaproxy” track_script { chkhaproxy } }
|
设置keepalived slave的最简配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
| ! Configuration File for keepalived # global setting , notify email setting global_defs { #这里和master节点不同 router_id LVS_V2 }
#check haproxy vrrp_script chkhaproxy { script "/etc/keepalived/check_haproxy.sh" interval 10 }
# instance setting vrrp_instance VI_1 { # 这里和Master节点不一样 state BACKUP interface ens33 # 这里一定是一样的 virtual_router_id 52 # 这里的优先级比Master节点低 priority 99 advert_int 1 # 这里和Master节点不一样 mcast_src_ip=192.168.1.12 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.1.10 dev ens33 }
track_script { chkhaproxy } }
|
以上配置中请注意几个关键点:
- 注意 haproxy 状态检查的脚本的位置,根据自己创建文件的位置不一样,脚本检查的指定位置也不一样;
- 注意优先级,MASTER节点的优先级一定要高于所有的BACKUP节点;
- 注意局域网的组播地址,一定要可用。局域网内所有keepalived节点都是利用组播方式寻找对方;
- 谁说BACKUP节点只能有一个!?
- 最后,keepalived一定要注册成服务形式,您可以想象上面所有脚本、配置、命令如果重启后再来一次,会是什么情况。
接下来,我们要开始启动 Master 节点和 Backup 节点了,为了准确的查看日志状态,您需要观察系统日志。系统日志所在的位置:
1
| tail -f /var/log/messages
|
启动keepalived
1
| [root@localhost ~]# service keepalived start
|
如果设置和启动都是成功的,您不会在日志信息中收到任何的keepalived报错信息。接下来您就可以使用192.168.1.10这个IP访问 haproxy了.
验证Keepalived是否正常启动
在主备机环境中输入以下命令,查看当前系统网络配置信息:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| # ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 08:00:27:07:f5:db brd ff:ff:ff:ff:ff:ff inet 192.168.1.11/24 brd 192.168.16.255 scope global eth0 valid_lft forever preferred_lft forever inet 192.168.1.10/24 scope global secondary eth0 valid_lft forever preferred_lft forever inet6 fe80::a00:27ff:fe07:f5db/64 scope link valid_lft forever preferred_lft forever
|
可以发现eth0下多了inet 192.168.1.10/24,表明keepalived已正常工作。
参考地址
- http://valleylord.github.io/post/201603-mycat-haproxy/
- http://www.itpux.com/thread-4668-1-1.html
- https://blog.csdn.net/u012758088/article/details/78651964
- http://kingleema.com/2015/11/14/setup-keepalived-on-ubuntu-server/