• haproxy+keepalived集群搭建02



    前言

    安装方式:自定义安装
    服务器环境:Centos7.5
    haproxy版本:2.5.7
    keepalived版本:2.0.20


    1 安装haproxy

    1.1 下载

    HAProxy官方下载地址为: https://www.haproxy.org/#down,如果这个网站无法访问,也可以从 hkps:/src.fedoraproject.org/repo/pkgs/haproxy/上进行下载。这里我下载的是2.5.7版本,下载后通过xftp等工具将压缩包上传至服务器的/usr/app/目录下,其中app文件夹需要自己提前创建好,然后进行解压:

    cd /usr/local
    tar -zxvf haproxy-2.5.7.tar.gz 
    
    • 1
    • 2

    1.2 安装依赖

    yum -y install make gcc gcc-c++ libpcre3-dev openssl libssl-dev zlib1g-dev
    
    • 1

    1.3 编译

    cd /usr/local/haproxy-2.5.7
    make TARGET=3100 ARCH=x86_64 PREFIX=/usr/local/haproxy
    make install TARGET=3100 ARCH=x86_64 PREFIX=/usr/local/haproxy
    
    • 1
    • 2
    • 3

    1.4 创建配置文件目录

    mkdir -p /usr/local/haproxy/conf
    mkdir -p /etc/haproxy/
    
    • 1
    • 2

    1.5 添加配置文件软连接

    touch /usr/local/haproxy/conf/haproxy.cfg
    ln -s /usr/local/haproxy/conf/haproxy.cfg /etc/haproxy/haproxy.cfg
    
    • 1
    • 2

    1.6 拷贝错误页面并添加目录软连接(HTTP模式选配)

    cp -r /usr/local/haproxy-2.5.7/examples/errorfiles /usr/local/haproxy/
    ln -s /usr/local/haproxy/errorfiles /etc/haproxy/errorfiles
    
    • 1
    • 2

    1.7 拷贝开机启动文件并授权

    cp /usr/local/haproxy-2.5.7/examples/haproxy.init /etc/init.d/haproxy
    chmod +x /etc/init.d/haproxy
    
    • 1
    • 2

    1.8 添加haproxy命令脚本软连接

    ln -s /usr/local/haproxy/sbin/haproxy /usr/sbin
    
    • 1

    1.9 设置HAProxy开机启动

    chkconfig --add haproxy
    chkconfig haproxy on
    
    • 1
    • 2

    1.10 添加haproxy用户组和用户并创建chroot运行路径

    HAProxy配置文件有指定用户和用户组,以及chroot运行路径:

    groupadd haproxy
    useradd -g haproxy haproxy
    mkdir /usr/share/haproxy
    
    • 1
    • 2
    • 3

    1.11 haproxy 配置文件

    vi /usr/local/haproxy/conf/haproxy.cfg
    
    • 1

    配置文件内容如下:

    global
        log 127.0.0.1    local0
        chroot /usr/share/haproxy
        group    haproxy
        user    haproxy
        daemon
        maxconn 4096
        node    edu-haproxy-01
        description    edu-haproxy-01
    defaults
        mode                    http
        log                     global
        option                  httplog
        option                  dontlognull
        option http-server-close
        option forwardfor       except 127.0.0.0/8
        option                  redispatch
        retries                 3
        timeout http-request    10s
        timeout queue           1m
        timeout connect         10s
        timeout client          1m
        timeout server          1m
        timeout http-keep-alive 10s
        timeout check           10s
        maxconn                 3000
    listen stats
            bind          0.0.0.0:8000
            mode          http
            stats         enable
            stats         hide-version
            stats uri     /haproxystats
            stats realm   Haproxy\stats
            stats auth    admin:admin
            stats admin   if TRUE
    
    frontend http-in
            bind 0.0.0.0:5672
            mode tcp
            log global
            option httplog
            option httpclose
            default_backend rabbitmq-server
    
    backend rabbitmq-server
            mode tcp
            balance roundrobin
            server  rabbitmq-node1 192.168.45.201:5672 maxconn 2000 weight 1  check inter 5s rise 2 fall 2
            server  rabbitmq-node2 192.168.45.202:5672 maxconn 2000 weight 1  check inter 5s rise 2 fall 2
            server  rabbitmq-node3 192.168.45.203:5672 maxconn 2000 weight 1  check inter 5s rise 2 fall 2
    
    • 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
    • 48
    • 49
    • 50

    2 安装rsyslog日志服务

    2.1 安装

    yum -y install rsyslog
    
    • 1

    2.2 配置

    vi /etc/rsyslog.conf
    
    • 1
    # Provides UDP syslog reception
    # 打开下面的配置
    $ModLoad imudp
    $UDPServerRun 514
    
    # Provides TCP syslog reception
    # 打开下面的配置
    $ModLoad imtcp
    $InputTCPServerRun 514
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    2.3 添加配置文件

    在/etc/rsyslog.d/目录下创建 haproxy的日志配置文件haproxy.log

    vi /etc/rsyslog.d/haproxy.log
    
    • 1

    添加配置内容如下:

    local0.* /var/log/haproxy.log
    &~
    
    • 1
    • 2

    2.4 重启rsyslog服务

    systemctl restart rsyslog.service
    
    • 1

    3、开启端口

    需要参考haproxy中的配置文件“/usr/local/haproxy/conf/haproxy.cfg”,该文件中使用到了哪些端口就开启哪些端口即可;我这里使用到了8000和5672端口;

    # 查看防火墙状态,如果未开启防火墙,那么需要先开启防火墙
    firewall-cmd --state
    # 开启防火墙
    systemctl start firewalld.service
    #查看已开启的端口
    firewall-cmd --list-ports
    #开启指定端口
    firewall-cmd --zone=public --add-port=8000/tcp --permanent
    firewall-cmd --zone=public --add-port=5672/tcp --permanent
    systemctl restart firewalld.service
    firewall-cmd --reload
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    4、开启haproxy并验证

    systemctl start haproxy
    systemctl status haproxy
    
    • 1
    • 2

    管理后台地址:http://192.168.45.191:8000/haproxystats
    账号:admin
    密码:admin
    在这里插入图片描述

    在这里插入图片描述

    5、安装keepalived(自定义)

    按照上述步骤安装完毕两台haproxy:
    haproxy-01:192.168.45.191
    haproxy-02:192.168.45.192
    计划配置虚拟ip:192.168.45.190

    5.1 下载并解压

    下载地址:https://www.keepalived.org/download.html

    cd /usr/local/
    tar -zxvf keepalived-2.0.20.tar.gz 
    
    • 1
    • 2

    5.2 安装依赖

    yum -y install openssl-devel libnl libnl-devel
    
    • 1

    5.3 编译安装

    cd keepalived-2.0.20/
    ./configure --prefix=/usr/local/keepalived
    make && make install
    
    • 1
    • 2
    • 3

    编译安装后会生成以下文件路径:
    /usr/local/etc/keepalived/keepalived.conf
    /usr/local/etc/sysconfig/keepalived
    /usr/local/sbin/keepalived

    5.4 配置

    # keepalived启动脚本变量引用文件,默认文件路径是/etc/sysconfig/,也可以不做软链接,直接修改启动脚本中文件路径即可(安装目录下)
    cp /usr/local/keepalived/etc/sysconfig/keepalived  /etc/sysconfig/keepalived 
     
    # 将keepalived主程序加入到环境变量(安装目录下)
    cp /usr/local/keepalived/sbin/keepalived /usr/sbin/keepalived
     
    # keepalived启动脚本(源码目录下),放到/etc/init.d/目录下就可以使用service命令便捷调用
    cp /usr/local/keepalived-2.0.20/keepalived/etc/init.d/keepalived  /etc/init.d/keepalived
     
    # 将keepalived配置文件放到默认路径下
    mkdir /etc/keepalived
    touch /etc/keepalived/keepalived.conf
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    haproxy-01的keepalived.conf配置文件内容如下:

    ! Configuration File for keepalived
    
    global_defs {
       router_id director1
    }
    vrrp_script check_haproxy {
       script "/etc/keepalived/haproxy_chk.sh"
       interval 5
    }
    
    vrrp_instance VI_1 {
        state MASTER
        interface ens33
        virtual_router_id 80
        priority 100
        advert_int 1
        authentication {
            auth_type PASS
            auth_pass 1111
        }
        virtual_ipaddress {
            192.168.45.190
        }
        track_script {
            check_haproxy
        }
    }
    
    • 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

    haproxy-02的keepalived.conf配置文件内容如下:

    ! Configuration File for keepalived
    
    global_defs {
       router_id director2
    }
    vrrp_script check_haproxy {
       script "/etc/keepalived/haproxy_chk.sh"
       interval 5
    }
    
    vrrp_instance VI_1 {
        state BACKUP
        interface ens33
        virtual_router_id 80
        priority 50
        advert_int 1
        authentication {
            auth_type PASS
            auth_pass 1111
        }
        virtual_ipaddress {
            192.168.45.190
        }
        track_script {
            check_haproxy
        }
    }
    
    • 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

    5.5 设置开机启动

    # 添加为系统服务
    chkconfig –-add keepalived
    # 设置开机启动
    chkconfig keepalived on
    # 启动、关闭、重启、查看 keepalived 
    systemctl starts keepalived 
    systemctl stop keepalived 
    systemctl restart keepalived 
    systemctl status keepalived 
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    6、 验证keepalived

    在这里插入图片描述
    在这里插入图片描述

  • 相关阅读:
    .NET Core 中的 ORM 框架对比
    道路空间功率谱密度与时间功率谱密度(笔记)
    elasticsearch完整学习
    Vue中如何进行自定义图表与可视化图形设计
    [RK3588-Android12] 双HDMI+喇叭Speak同音问题
    【java web】JSP-Java Server Page
    53-54 - 被遗弃的多重继承
    java基础--transient关键字减少序列化
    若依前后端分离版入门
    Vue指令
  • 原文地址:https://blog.csdn.net/u010404909/article/details/125464578