开发者学堂课程【企业集群平台架构设计与实现:lvs/haproxy/keepalived:企业集群平台架构设计与实现haproxy篇3(二)】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/391/detail/5015
企业集群平台架构设计与实现haproxy篇3(二)
目录:
一、使用 HAProxy 的 Web 监控平台
二、HAproxy+KeepAlivep 高可用负载均衡系统
一、使用 HAProxy 的 Web 监控平台
HAProxy 虽然实现了服务的故障转移,但是在主机或者服务出现故障的时候,并不能发出通知告知运维人员,这对于及时性要求很高的业务系统来说,是非常不便的,不过,HAProxy 似乎也考虑到了这一点,在新的版本中 HAProxy 推出了一个基于 Web 的监控平台,通过这个平台可以查看此集群系统所有后端服务器的运行状态,在后端服务或服务器出现故障时,监控页面会通过不同的颜色来展示故障信息,这在很大程度上解决了后端服务器故障报警的问题,运维人员可通过监控这个页面来第一时间发现节点故障,进而修复故障。
二、 HAproxy+KeepAlivep 高可用负载均衡系统
1、高可用 HAproxy 集群系统的拓扑结构
在主机和备机上重新安装 haproxy,然后配置 haproxy,这个不再介绍,下面直接给出配置好的 keepalived.conf 文件内容。在haproxy-server 主机上,keepalived.conf 的内容如下:
global_defs {
notification_email {
acassen@firewall.loc
failover @firewall.loc
sysadmin@firewall.loc
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 192.168.200.1
smtp_connect_timeout 30
router_id HAProxy_DEVEL
}
vrrp_script check_haproxy {
script "killall -0 haproxy" #设置探测haproxy 服务运行状态的方式,这里的“killall -O haproxy”仅仅是检测haproxy服务状态的探测命令。
interval 2
}
vrrp_instance HAProxy_HA {
state BACKUP #在haproxy-server和backup- haproxy上均配置为BACKUP
interface eth0
virtual_router_id 180
priority 100
advert_int 2
nopreempt #不抢占模式,只在优先级高的机器_上设置即可,优先级低的机器不设置
authentication {
auth_type PASS
auth_pass 1111
}
track_script {
check_haproxy
}
virtual_ipaddress {
192.168.66.10/24 dev eth0 #HAProxy 的对外服务IP,即VIP
}
}
最后,将 keepalived.conf 文件复制到 backup-haproxy 服务器上对应的位置,然后将 keepalived.conf 文件中 priority 值修改为90,由于配置的是不抢占模式,因此,还需要在 backup-haproxy 服务器上去掉 nopreempt 选项。
完成所有配置后,分别在 haproxy-server 和 backup-haproxy 主机上依次启动 haproxy 服务和 keepalived 服务。注意,这里一定要先启动 haproxy 服务,因为 keepalived 服务在启动的时候会自动检测 haproxy 服务是否正常,如果发现 haproxy 服务没有启动,那么主、备 keepalived 将自动进入 fault 状态。在依次启动服务后,在正常情况下 VIP地址应该运行在 haproxy-server 服务器上,通过命令“ip a” 可以查看 VIP是否已经正常加载。
简单测试:在浏览器访问http://192/168.81.233/
刷新,也能看到 tomcat1 和2的相互转换,实现了负载均衡。同理,域名换成http://img.zb.com/和http://www.zb.com/也是一样。
在 192.168.81.237里打开资源
[ root@237server keepalived]# tail -f/var/log/messages
回车
在192.168.81.236上右击,选择 Clone Session,
在192.168.81.236(1)里打开资源,编辑:
[ root@localhost ~]# tail -f /var/ log/ messages
在192.168.81.236里停掉 haproxy:
[root@localhost keepalived]# /etc/ init. d/haproxy stop
Stopping haproxy : [OK]
[ root@loca lhost keepal ived ] #
看到236里边, Keepalived_vrrp [ 4219] : VRRP Instance(HA 1) Now in FAULT state
Keepalived进入到 FAULT state 状态,原因是VRRP Script( check_ haproxy) failed,所以就进入到 Now in FAULT 模式。
现在看192.168.81.237,也进入 FAULT state 模式。
Apr 21 21:57:36 237server Keepalived vrrp [ 2889]: VRRP_ Instance(HA 1) Now in FAULT state
在192.168.81.237 (1)里启动haproxy
[ root@237server ~]# /etc/ init. d/haproxy start
starting haproxy : [ OK ]
[ root@237server ~]#]
再到192.168.81.237里看到,日志检测到状态正常。
VRRP Script( check_ haproxy) succeeded
然后自动切换到Transition to MASTER STATE
再到192.168.81.237 (1)编辑
[ root@237server ~] # ip add
看到233跑到了237上边。
实现 haproxy 的高可用。
也可切换回236主机。