如何在两个节点安装高可用集群(rabbitMq+haproxy+keepalived)

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

 

链接在此!!!快快下载

文章先读:如果节点够的话,建议rabbitmq放在单独的节点,haproxy和keepalived放在同一个节点,keepalived做主备,然后使用虚拟IP;

1、然后点击上面的链接下载MQtar -zxvf rabbit.install.tgz进行解压
解压后文件列表如下

2、然后执行./install进行安装,需要安装几台节点,就把压缩包拷贝几个节点,然后重述上述命令进行安装

3、节点1操作以节点1 为集群节点进行演示,

  • 关闭MQ服务  service rabbitmq-server stop
  • 以集群模式启动 rabbitmq-server –detached
  • 查看集群状态  rabbitmqctl cluster_status
  • 创建一个用户,用于整个集群:rabbitmqctl add_user roboconf roboconf   rabbitmqctl set_permissions roboconf ".*" ".*" ".*"
  • 确保HA同步是自动的 rabbitmqctl set_policy ha-all "" '{"ha-mode":"all","ha-sync-mode":"automatic"}'
  • 修改 /etc/hosts文件  增加((本地IP) (节点名称))(IP与rabbitMQ安装对应node名,有几个节点加几个)
  • 如果不知道怎么修改节点名称的话,执行:hostnamectl set-hostname 节点名称

至此,节点1配置结束,

4、节点2~n操作:2~n节点的操作都一样,

  • 编辑/var/lib/rabbitmq/.erlang.cookie并插入与节点Rabbit1相同的内容
  • 可以这么操作(在节点1执行命令如下)scp/var/lib/rabbitmq/.erlang.cookie 节点2的IP:/var/lib/rabbitmq/.erlang.cookie

  • 关闭MQ服务  service rabbitmq-server stop
  •  

    以集群模式启动rabbitmq-server –detached
  • 然后关闭MQ rabbitmqctl stop_app

  • 将节点2加入节点1的集群中 rabbitmqctl join_cluster rabbit@节点1
  • 启动MQ rabbitmqctl start_app

  • 查看集群状态 rabbitmqctl cluster_status

出现以下画面者,恭喜你,集群已经配置好,两个节点属于一个集群,下一步配置负载均衡HAProxy

 

 

 

5、选一台节点安装HAproxy

  • 使用yum源安装haproxy,没有yum源的自己配去,yum install -y haproxy
  • 修改配置文件/etc/haproxy/haproxy.cfg(因为修改的比较多,建议把之前的给删掉,然后新建一个配置文件,给400权限)
  • 配置内容如下:(需要修改的我会标红)

 

global
# 指定日志记录路径,这个local2是需要在/etc/rsyslog.conf文件中指定的,指定了日志存储路径之后,需要重启rsyslog服务哦

#查看/etc/rsyslog.conf文件,看看有local几,下面就是local几

log 127.0.0.1 local7 
# 指定haproxy的运行环境
chroot /var/lib/haproxy
# 指定进程的pid
pidfile /var/run/haproxy.pid
# 指定单个进程的最大并发连接数
maxconn 4000
# 指定允许haproxy的用户,groupadd haproxy  : useradd -r -g haproxy haproxy
user haproxy
# 指定允许haproxy的组
group haproxy
# 指定haproxy以守护进程模式运行
daemon
# 设置后台运行2个haproxy进程,但是后台运行了3个进程
# nbproc 2
 
# 指定Unix socket通信(基本没用过)
# stats socket /var/lib/haproxy/stats
 
# 这里是默认的选项,如何在listen段,backend段,frontend段中将这些选项按需求重新制定
defaults
# 指定默认的模式
mode http
# 指定日志信息使用全局指定的日志存储路径,全局日志是存储在rsyslog服务中
log global
# 将log日志记录到rsyslog日志服务器中,指定日志级别为notice级别
log 172.19.4.109 local7 notice
# 日志格式可以不指定,有其默认的值
#log-format %T\ %t\ Some\ Text
# 指定压缩类型
compression algo gzip
# 指定需要压缩的资源类型
compression type text/html text/plain
option httplog
option dontlognull
option http-server-close
# 在后端服务器中可以记录客户端的源IP地址,在日志中加上%{X-Forwarded-For}i
option forwardfor except 127.0.0.1/8
# 如果后端服务器不提供服务,那么将会重新di
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
# 指定接受10000个并发
maxconn 10000
 
# haproxy统计页面配置段
listen stats
# 指定统计页面监听的端口
bind *:33559
# 指定统计页面运行的模式
mode http
# 指定开启统计页面功能
stats enable
# 如果不设置URI,默认是/haproxy?stats
stats uri /admin
# 指定登入是提示信息,\表示转义空白字符
stats realm HAProxy\ statistics
# 指定用户名和密码,在网页登录的时候用
stats auth admin:123456
# 指定统计页面自动刷新的时长
stats refresh 20
# 如果用户认证成功,统计页面可以被访问
stats admin if TRUE
#隐藏统计页面上HAProxy的版本信息
stats hide-version
 
#####rabbitmq的管理界面
listen rabbitmq_admin
bind 0.0.0.0:15672
server rabbit-01 172.19.4.107:15672
server rabbit-02 172.19.4.109:15672
#######
listen rabbitmq
bind 0.0.0.0:5672

option tcplog
mode tcp
timeout client 3h
timeout server 3h
balance roundrobin
# inter 2000 是健康状态检测的时间间隔,rise 2:2次请求成功认为服务器可用,fall 3:3次请求不成功认为服务器不可用
server rabbit-01 自己的节点IP:5672 check fall 3 rise 2
server rabbit-02 有几个节点写几个IP:5672 check fall 3 rise 2

  • 配置结束后,haproxy -c -f /etc/haproxy/haproxy.cfg检查配置文件是否有错,有错的话,看日志自己解决,不行就百度
  • 最后启动HA sudo /usr/sbin/haproxy -f /etc/haproxy/haproxy.cfg -D -p /var/run/haproxy.pid

6、验证是否正确

  • 登录地址,出现以下画面,输入用户名密码

 

 

出现以下画面者,haproxy配置成功,

 

配置keepalived

1、首先从官网下载tar包后解压,

#/usr/local/keepalived/  为你要安装的目录,不要把安装目录弄到tar包 

./configure --prefix=/usr/local/keepalived/

configure的时候可能会报错,是因为缺少opensll依赖,有yum源的话可使用yum install -y openssl openssl-devel命令,没有的话自己下载依赖包去安装。

#编译并安装 make && make install
 

vim /usr/local/keepalived/etc/keepalived

主节点,可直接拷贝
vrrp_script chk_haproxy {
    script "pidof haproxy"   #检查脚本
    interval 2
}
vrrp_instance VI_1 {
    interface ens192  #网卡信息,查看自己的网卡,填进去
    state MASTER    #代表主节点
    priority 200
    virtual_router_id 10
    unicast_src_ip 192.168.1.1   #本机IP地址
    unicast_peer {
        192.168.1.2  #备份节点IP地址
    }
    authentication {
        auth_type PASS
        auth_pass password
    }
    virtual_ipaddress {
        192.168.1.10 //虚拟ip,对外提供服务,可设置多个
    }
    track_script {    #检查进程是否存在脚本
        chk_haproxy
    }
}

备:
vrrp_script chk_haproxy {
    script "pidof haproxy"
    interval 2
}
vrrp_instance VI_1 {
    interface ens192
    state BACKUP
    priority 100
    virtual_router_id 10
    unicast_src_ip 192.168.1.2
    unicast_peer {
        192.168.1.1
    }
    authentication {
        auth_type PASS
        auth_pass password
    }
    virtual_ipaddress {
        192.168.1.10
    }
    track_script {
        chk_haproxy
    }
}

在两个节点都执行下面命令

加入自启动

cp /usr/local/keepalived-2.0.18/keepalived/etc/init.d/keepalived /etc/init.d/(注意,keepalived 在解压后的没有configure之前的文件夹中)

mkdir /etc/keepalived

cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/

cp /usr/local/keepalived-2.0.18/keepalived/etc/sysconfig/keepalived /etc/sysconfig/

cp /usr/local/keepalived/sbin/keepalived /usr/sbin/

设置开机自启动

chkconfig keepalived on  
启动keepalived 服务
systemctl start keepalived.service

systemctl status keepalived.service 查看启动状态,如果是dead,则启动失败,看日志并解决,

启动成功后

使用虚拟IP访问haproxy Web界面,访问成功,则配置完成,访问失败,自己看着步骤再看下是否哪步有错
 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值