L10.2 keepalive 实现haproxy高可用(双主模型)

keepalived实现haproxy高可用。

haproxy实现RS负载均衡。

说明:

1,当keepalive节点状态master时,haproxy应该是start状态,backup为restart,fault为stop状态;(注意脚本监测权限减5,这样会有数字计算优先级方面的问题,因此在backup状态也使用restart haproxy)

2,对haproxy的start,restart,stop,都将用脚本的方式实现,在keepalived配置中调用脚本;

3,我们不只对keepalive的状态进行监控,更应该对haproxy服务进行状态监控,也在keepalive配置文件内定义。(使用 killall -0 service)

        killall -0 service :是对一个服务进行状态监测的,使用信号0;

        示例:httpd 运行状态返回值为0,停止状态返回值为1

步骤:

1,配置node1,node2 haproxy,实现基本的负载均衡代理。

2,haproxy,start,restart,stop和通知脚本

3,双主模型keepalived配置

4,测试:访问两个vip都可以实现负载均衡,互为主备。

5,通知修改(略)




1,配置node1,node2 haproxy,实现基本的负载均衡代理。

修改配置文件 haproxy.conf

frontend  main *:80

default_backend             websrvs

backend websrvs

balance     roundrobin

server  web1 192.168.0.22:80 check maxconn 5000

server  web2 192.168.0.23:80 check maxconn 3000

listen stats *:9103
 #http://192.168.0.21:9103/haproxy?stats状态页查看

stats enable

scp haproxy.conf node2:/etc/haproxy/haproxy.conf

单独测试负载均衡成功

chkconfig haproxy off

2,haproxy,start,restart,stop和通知脚本

#!/bin/bash
# Author: MageEdu <[email protected]>
# description: An example of notify script
#

vip="192.168.0.59"
contact=‘[email protected]‘

notify() {
    mailsubject="`hostname` to be $1: $vip floating"
    mailbody="`date ‘+%F %H:%M:%S‘`: vrrp transition, `hostname` changed to be $1"
    echo $mailbody | mail -s "$mailsubject" $contact
}

case "$1" in
    master)
        notify master
        /etc/rc.d/init.d/haproxy start
        exit 0
    ;;
    backup)
        notify backup
        /etc/rc.d/init.d/haproxy restart
        exit 0
    ;;
    fault)
        notify fault
        /etc/rc.d/init.d/haproxy stop
        exit 0
    ;;
    *)
        echo ‘Usage: `basename $0` {master|backup|fault}‘
        exit 1
    ;;
esac

3,双主模型keepalived配置

node1

[[email protected] keepalived]$ cat keepalived.conf
! Configuration File for keepalived

global_defs {
   notification_email {
[email protected]   
}
   notification_email_from [email protected]
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id K1 
}

vrrp_script chk_mt_down {
        script "[[ -f /etc/keepalived/down ]] && exit 1 || exit 0"  #监测down文件,有down文件则意味着是要down机的。
        interval 1
        weight -5
}

vrrp_script chk_haproxy {
script "killall -0 haproxy &>/dev/null"    #监测haproxy状态
interval 1
        weight -5
}

vrrp_instance VI_1 {        #实例1主状态
    state MASTER
    interface eth0
    virtual_router_id 57
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.0.59/24 brd 192.168.0.59 dev eth0 label eth0:0
    }
  track_script {
                chk_mt_down
                chk_haproxy
        }
    notify_master "/etc/keepalived/notify.sh master" #添加通知信息
    notify_backup "/etc/keepalived/notify.sh backup"
    notify_fault "/etc/keepalived/notify.sh fault"
}

vrrp_instance VI_2 {                    #实例2 备用状态
    state BACKUP 
    interface eth0
    virtual_router_id 58
    priority 99 
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 2222
    }
    virtual_ipaddress {
        192.168.0.60/24 brd 192.168.0.60 dev eth0 label eth0:1
    }
  track_script {
                chk_mt_down
                chk_haproxy
        }
    notify_master "/etc/keepalived/notify.sh master" #添加通知信息
    notify_backup "/etc/keepalived/notify.sh backup"
    notify_fault "/etc/keepalived/notify.sh fault"
}

node2,红色为修改

[[email protected] keepalived]# cat keepalived.conf
! Configuration File for keepalived

global_defs {
   notification_email {
[email protected]   
}
   notification_email_from [email protected]
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id K2 
}

vrrp_script chk_mt_down {
        script "[[ -f /etc/keepalived/down ]] && exit 1 || exit 0"  #监测down文件,有down文件则意味着是要down机的。
        interval 1
        weight -5
}

vrrp_script chk_haproxy {
        script "killall -0 haproxy &>/dev/null"
        interval 1
        weight -5
}

vrrp_instance VI_1 {
    state BACKUP
    interface eth0
    virtual_router_id 57
    priority 99 
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.0.59/24 brd 192.168.0.59 dev eth0 label eth0:0
    }
  track_script {
                chk_mt_down
chk_haproxy
        }
    notify_master "/etc/keepalived/notify.sh master" #添加通知信息
    notify_backup "/etc/keepalived/notify.sh backup"
    notify_fault "/etc/keepalived/notify.sh fault"

}

vrrp_instance VI_2 {
    state MASTER
    interface eth0
    virtual_router_id 58
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 2222
    }
    virtual_ipaddress {
        192.168.0.60/24 brd 192.168.0.60 dev eth0 label eth0:1
    }
          track_script {
                chk_mt_down
               chk_haproxy
        }
    notify_master "/etc/keepalived/notify.sh master" #添加通知信息
    notify_backup "/etc/keepalived/notify.sh backup"
    notify_fault "/etc/keepalived/notify.sh fault"
}

4,测试:访问两个vip都可以实现负载均衡,互为主备。

http://192.168.0.59

http://192.168.0.60

都可实现负载均衡

5,通知具体情况略作修改(略)

时间: 2024-10-07 05:02:30

L10.2 keepalive 实现haproxy高可用(双主模型)的相关文章

基于heartbeat v1配置mysql和httpd的高可用双主模型

一.配置高可用集群的前提:(以两节点的heartbeat为例) ⑴时间必须保持同步 ⑵节点之间必须用名称互相通信 建议使用/etc/hosts,而不要用DNS 集群中使用的主机名为`uname -n`表示的主机名: ⑶ping node(仅偶数节点才需要) ⑷ssh密钥认证进行无障碍通信: 二.heartbeat v1的配置 程序主配置文件:ha.cf 认证密钥:authkeys, 其权限必须为组和其它无权访问: 资源配置文件:haresources /usr/share/doc/heartbe

keepAlived+nginx实现高可用双主模型LVS

实验目的: 利用keepalived实现高可用反向代理的nginx.以及双主模型的ipvs 实验环境: node1:在nginx做代理时做反向代理节点,在keepalived实现LVS时做Director.VIP1:172.16.18.22 VIP2:172.16.18.23 node2:在nginx做代理时做反向代理节点,在keepalived实现LVS时做Director.VIP1:172.16.18.22 VIP2:172.16.18.23 node3:在nginx做代理时做web服务器.

keepalived + haproxy 实现web 双主模型的高可用负载均衡

1.本文的架构图: 阐述各服务器用途: 1.haproxy在本构架中实现的是:负载均衡 2.keepalived实现对haproxy的高可用 3.apache static 实现静态页面的访问 4.aoache dynamic实现动态页面的访问,图中有两个是实现负载均衡的 配置各功能模块: 一.配置haproxy和keepalived 验证: 1.当一台keepalived宕机后,VIP会不会转移到另外一台服务器 2.当一台haproxy服务出故障,VIP会不会转移到另外一台服务器 注意: 那如

Nginx+keepalived(高可用双主模式)

Nginx+keepalived(高可用双主模式) tips:前面已经介绍了nginx+keepalived高可用主从模式,今天补充下高可用的双主模式,均可以作为主机使用 server1:192.168.237.128             VIP1:192.168.237.10 server2:192.168.237.129             VIP2:192.168.237.20 vim /etc/keepalived/keepalived.conf //编辑配置文件,增加一段新的v

mysql高可用双主+keepalived

Mysql双主复制 实验拓扑:sql1  192.168.10.1   server id 1 vip 192.168.10.100 Sql2  192.168.10.2   server id 2 vip 192.168.10.100 客户端 192.168.10.3 Sql1配置双主 主库配置:vim /etc/my.cnf Log-bin=mysql-bin    //打开二进制日志 Server-id=1 Service mysqld start   //重启mysql进程 登录到mys

[Mysql高可用]——双主互备+keepalived

实验架构图    实验环境 主机名 操作系统 Mysql版本 keepalived版本 主机IP VIP lyj1(Master/Slave) Red Hat release 6.5 Mysql5.6.31 keepalived-1.2.12 10.0.100.201 10.0.100.220 lyj2(Slave/Master) Red Hat release 6.5 Mysql5.6.31 keepalived-1.2.12 10.0.100.202 构建双主互备 1. 分别修改DB1和DB

【转载】MySQL和Keepalived高可用双主复制

服务器主机IP和虚拟浮动IP配置 RealServer A 192.168.75.133 RealServer B 192.168.75.134 VIP A 192.168.75.110 VIP B 192.168.75.111 安装KeepAlived软件包 [[email protected] ~]# yum install keepalived =========================================================================

keepalived高可用双主配置文件

###########################lb01 cat /etc/keepalived/keepalived.conf ! Configuration File for keepalived_lb01 global_defs { #  notification_email { #  [email protected] #  } router_id LB01 } vrrp_script check_lb { script "/server/scripts/check_lb.sh&q

Apache+lvs高可用+keepalive(主从+双主模型)

Apache+lvs高可用+keepalive(主从+双主模型)???? keepalive实验准备环境: httpd-2.2.15-39.el6.centos.x86_64 keepalived-1.2.13-1.el6.x86_64.rpm ? ? ???? 实验拓扑图: ? ? ? ? LVS+Keepalived 实现高可用的前端负载均衡器 ? node15: 1.安装httpd [[email protected] ~]# yum intsall -y httpd 2.配置httpd