安装Keepalived
yum install -y wget make gcc openssl-devel popt-devel
wget http://www.keepalived.org/software/keepalived-1.2.15.tar.gz tar zxvf keepalived-1.2.15.tar.gz cd keepalived-1.2.15 ./configure --prefix=/usr/local/keepalived make make install
cp /usr/local/keepalived/sbin/keepalived /usr/sbin/ cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/ cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
mkdir -p /etc/keepalived/ cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf chmod +x /etc/init.d/keepalived vi /etc/keepalived/keepalived.conf ! Configuration File for keepalived global_defs { notification_email { admin@123.com } notification_email_from admin@123.com smtp_server mail.123.com smtp_connect_timeout 30 router_id LVS_DEVEL } vrrp_script chk_haproxy { script "/etc/keepalived/chk_haproxy.sh" interval 2 weight 2 } vrrp_instance VI_1 { state MASTER interface eth0 virtual_router_id 51 priority 101 advert_int 1 mcast_src_ip 172.16.33.124 authentication { auth_type PASS auth_pass 1111 } track_script { chk_haproxy #监测haproxy进程状态 } virtual_ipaddress { 172.16.33.123 } } }
vi /etc/keepalived/chk_haproxy.sh
status=$(ps aux|grep haproxy | grep -v grep | grep -v bash | wc -l)
if [ "${status}" = "0" ]; then
/etc/init.d/haproxy start
status2=$(ps aux|grep haproxy | grep -v grep | grep -v bash |wc -l)
if [ "${status2}" = "0" ]; then
/etc/init.d/keepalived stop
fi
fi
service keepalived start service keepalived stop 1、将Master上的keepalived停止 查看Master上的日志 tail -f /var/log/messages Sep 23 01:24:34 181 Keepalived[3125]: Stopping Keepalived v1.2.8 (09/23,2013) Sep 23 01:24:34 181 Keepalived_vrrp[3127]: VRRP_Instance(VI_1) sending 0 priority Sep 23 01:24:34 181 Keepalived_vrrp[3127]: VRRP_Instance(VI_1) removing protocol VIPs. 发现Master释放了VIP 再查看Backup上的日志 Sep 23 01:20:26 182 Keepalived_vrrp[2887]: VRRP_Instance(VI_1) Transition to MASTER STATE Sep 23 01:20:27 182 Keepalived_vrrp[2887]: VRRP_Instance(VI_1) Entering MASTER STATE Sep 23 01:20:27 182 Keepalived_vrrp[2887]: VRRP_Instance(VI_1) setting protocol VIPs. Sep 23 01:20:27 182 Keepalived_vrrp[2887]: VRRP_Instance(VI_1) Sending gratuitous ARPs on eth0 for 10.10.3.180 Sep 23 01:20:27 182 Keepalived_healthcheckers[2886]: Netlink reflector reports IP 10.10.3.180 added 发现Backup绑定了VIP 2、将Master上的keepalived启动 查看Master上的日志 tail -f /var/log/messages Sep 23 01:27:56 181 Keepalived_vrrp[3450]: VRRP_Instance(VI_1) Entering MASTER STATE Sep 23 01:27:56 181 Keepalived_vrrp[3450]: VRRP_Instance(VI_1) setting protocol VIPs. Sep 23 01:27:56 181 Keepalived_vrrp[3450]: VRRP_Instance(VI_1) Sending gratuitous ARPs on eth0 for 10.10.3.180 Sep 23 01:27:56 181 Keepalived_healthcheckers[3449]: Netlink reflector reports IP 10.10.3.180 added 发现Master绑定了VIP 再查看Backup上的日志 Sep 23 01:21:15 182 Keepalived_vrrp[2887]: VRRP_Instance(VI_1) Received higher prio advert Sep 23 01:21:15 182 Keepalived_vrrp[2887]: VRRP_Instance(VI_1) Entering BACKUP STATE Sep 23 01:21:15 182 Keepalived_vrrp[2887]: VRRP_Instance(VI_1) removing protocol VIPs. Sep 23 01:21:15 182 Keepalived_healthcheckers[2886]: Netlink reflector reports IP 10.10.3.180 removed 发现Backup释放了VIP tcpdump vrrp 检查vrrp是否已正常工作,抓包会看到对应的ip ip a eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:0c:29:74:b0:22 brd ff:ff:ff:ff:ff:ff inet 172.16.33.124/24 brd 172.16.33.255 scope global eth0 inet 172.16.33.123/32 scope global eth0 inet6 fe80::20c:29ff:fe74:b022/64 scope link valid_lft forever preferred_lft forever 安装haproxy
#tar -xvzf haproxy-1.4.24.tar.gz
#cd haproxy-1.4.24
#make TARGET=linux26 ARCH=x86_64
#TARGET是指定内核版本,ARCH指定CPU架构,我使用的是64bit系统
#make install
#mkdir /etc/haproxy
#cp examples/haproxy.cfg /etc/haproxy
#cp examples/haproxy.init /etc/init.d/haproxy
#chmod +x /etc/init.d/haproxy
#ln -s /usr/local/sbin/haproxy /usr/sbin/
#mkdir /usr/share/haproxy
vi /etc/haproxy/haproxy.cfg
global
log 127.0.0.1 local0
#日志输出配置,所有日志都记录在本机,通过local0输出
log 127.0.0.1 local1 notice
#log loghost local0 info
maxconn 4096
#最大连接数
chroot
/usr/share/haproxy
#改变当前工作目录。
uid 99
#所属用户的uid
gid 99
#所属运行的gid
daemon
#以后台形式运行haproxy
defaults
log global
mode http
#默认的模式mode { tcp|http|health },tcp是4层,http是7层,health只会返回OK
option httplog
option dontlognull
option redispatch
#当serverId对应的服务器挂掉后,强制定向到其他健康的服务器
option abortonclose
#当服务器负载很高的时候,自动结束掉当前队列处理比较久的链接
retries 3
#两次连接失败就认为是服务器不可用
maxconn 2000
#默认的最大连接数
contimeout 5000
#连接超时
clitimeout 50000
#客户端超时
srvtimeout 50000
#服务器超时
frontend www
bind *:80
#这里建议使用bind *:80的方式,要不然做集群高可用的时候有问题,vip切换到其他机器就不能访问了。
acl web hdr(host) -i www.test.com
#acl后面是规则名称,-i是要访问的域名,如果访问www.test.com这个域名就分发到下面的webserver 的作用域。
use_backend webserver
if
web
acl url_static path_beg -i /
static
/images /javascript /stylesheets
acl url_static path_end -i .jpg .gif .png .css .js
acl url_dynamic path_end -i .php
use_backend
static
if
url_static
use_backend
dynamic
if
url_dynamic
backend webserver
#webserver作用域
mode http
balance roundrobin
#banlance roundrobin 轮询,balance source 保存session值,支持static-rr,leastconn,first,uri等参数
option httpchk
/index
.html
#检测文件,如果分发到后台index.html访问不到就不再分发给它
server web01 172.16.33.126:80
inter 3000 rise 2 fall 3 check maxconn 5000
server web02 172.16.33.127:80 inter 3000 rise 2 fall 3 check maxconn 5000
#listen web
# bind 172.16.33.123:80
# mode http
# server web01 172.16.33.126:80 check inter 2000 rise 2 fall 5
# server web02 172.16.33.127:80 check inter 2000 rise 2 fall 5
listen mysql
bind 0.0.0.0:23306 #代理端口
mode tcp #模式 TCP
option mysql-check user root #mysql健康检查 root为mysql登录用户名
balance round robin #调度算法
server mysql1 10.0.31.40:4306 weight 1 check inter 1s rise 2 fall 2 #健康检查加上check
server mysql2 10.0.31.41:4306 weight 1 check inter 1s rise 2 fall 2
listen admin_stats
bind *:8080 #监听端口
mode http #http的7层模式
option httplog #采用http日志格式
log 127.0.0.1 local0 err
maxconn 10
stats refresh 30s #统计页面自动刷新时间
stats uri /stats #统计页面url
stats realm XingCloud\ Haproxy #统计页面密码框上提示文本
stats auth admin:admin #统计页面用户名和密码设置
stats hide-version #隐藏统计页面上HAProxy的版本信息
相关推荐
最后,部署Keepalived,配置VIP,确保在HAProxy节点发生故障时可以进行故障转移,以实现整个系统的高可用性。 在整个架构中,高可用性不仅仅体现在MyCat本身,还体现在负载均衡器HAProxy以及整个高可用集群的配置上...
主机名IP地址操作系统组件备注环境说明架构图目录结构配置文件docker-compose配置文件keepalived配置文件keepalived检测脚本hapr
例如,haproxy role负责安装和配置HAproxy负载均衡器,mysql role负责安装和配置Mysql数据库等。 三、HAproxy负载均衡 HAproxy是一种开源的负载均衡器,可以将流量分配到多个服务器上,以提高系统的可用性和性能。...
编写这个脚本并在Keepalived配置中引用,以便在HAProxy异常时触发故障转移。 4. **测试**: 完成上述步骤后,启动HAProxy和Keepalived服务,进行测试以验证高可用性。可以通过模拟主服务器故障,观察是否能成功...
在构建高可用性服务时,`Haproxy` 和 `Keepalived` 是两种非常重要的工具,它们在Linux环境中广泛用于实现负载均衡和故障切换。`Haproxy` 是一个高性能的TCP/HTTP负载均衡器,而`Keepalived` 提供了VRRP(Virtual ...
在构建高可用性、负载均衡的数据库系统时,`keepalived`、`haproxy` 和 `mycat` 是三个关键组件。本配置文件集合主要用于实现基于 CentOS 7 的多节点环境中,MySQL 双主读写分离以及故障自动切换的解决方案。下面将...
2. 配置Keepalived:在`/etc/keepalived/keepalived.conf`中定义主、备节点的角色,设置监控的检查脚本和VIP。 3. 启动Keepalived:`systemctl start keepalived` 4. 配置VIP漂移:当主节点故障时,VIP会自动漂移到...
1. **系统准备**:首先,我们需要在CentOS 7系统上安装必要的软件包,包括haproxy、openssl(用于生成SSL证书)、keepalived等。 2. **配置haproxy**:编写haproxy的配置文件(通常为`/etc/haproxy/haproxy.cfg`)...
**HAproxy的配置与安装:** 1. **安装HAproxy**:在Red Hat 5.8上,可以通过`yum`命令来安装HAproxy。执行`sudo yum install haproxy`,等待安装完成。 2. **配置HAproxy**:配置文件通常位于`/etc/haproxy/...
1. 安装并配置Haproxy和Keepalived在ld1和ld2服务器上,配置负载均衡策略和故障切换规则。 2. 在ng1和ng2服务器上安装Nginx,配置反向代理规则,指向Haproxy的VIP。 3. 在lamp1和lamp2服务器上安装LAMP环境,配置...
Haproxy和Keepalived就是两个常用工具,它们可以构建出一个高效且可靠的分布式系统。本篇将详细介绍这两个工具以及它们的配置文件。 Haproxy是一款开源的高性能、高可用的负载均衡器,它能对HTTP、TCP等多种协议...
在部署环境中,文章提到了四台CentOS或Redhat虚拟机,分别用于MySQL实例、haproxy和keepalived的安装。MySQL实例配置了主主复制,以解决读写问题并确保数据一致性。主主复制的关键在于解决自增ID冲突,通过设置`auto...
通过配置 Haproxy 和 Keepalived 实现高可用性,确保集群的可用性和负载均衡。 知识点: 1. 高可用集群的定义和重要性 高可用集群是指一个系统或应用程序在出现故障或宕机时仍能继续提供服务的能力。高可用集群...
本文将围绕“Nginx + keepalived + MongoDB + haproxy + Sphinx”这一技术栈,详细介绍如何实现一个稳定的分布式集群部署方案。 #### 二、关键技术解析 ##### 1. Nginx **定义**:Nginx是一款高性能的HTTP和反向...
### MyCat高可用负载均衡集群实现(HAProxy+Keepalived+MyCat) #### 一、概述 在当今高度依赖数据库应用的企业环境中,确保数据库系统的稳定性和高效性至关重要。为了达到这一目标,采用高可用(High ...
在了解了如何安装和配置MariaDB集群、Haproxy以及Keepalived,以及如何进行性能测试之后,接下来让我们深入探讨每部分的知识点。 首先,MariaDB集群的安装和配置是构建高可用和负载均衡数据库的关键步骤。MariaDB是...
- 其次,安装并配置多个MyCat实例,作为数据的接入层。 - 接着,部署HAProxy,设置相应的负载均衡策略。 - 然后,配置Keepalived实现高可用,监控MyCat节点的状态。 - 最后,测试整个集群的性能和稳定性,进行...