Rabbitmq 安装及配置【root】

【说明】需要配置本机的yum源,用于安装socat软件。

8.1 安装socat

操作系统ReadHat7

# yum -y install socat

报错1

此时会报错没有socat包或是找不到socat包,解决方法安装centos的epel的扩展源

yum -y install epel-release 

之后重新安装socat

操作系统ReadHat6

先将socat-1.7.2.4-1.el6.rf.x86_64.rpm上传到目标服务器上/opt/software/rabbitmq

# cd /opt/software/rabbitmq

# rpm -ivh socat-1.7.2.4-1.el6.rf.x86_64.rpm

8.2 安装erlang

操作系统ReadHat7

# rpm -ivh erlang-21.3.8.6-1.el7.x86_64.rpm

报错1

warning: erlang-20.3.8.22-1.el7.x86_64.rpm: Header V4 RSA/SHA1 Signature, key ID 6026dfca: NOKEY

error: Failed dependencies:

        libcrypto.so.10(OPENSSL_1.0.2)(64bit) is needed by erlang-20.3.8.22-1.el7.x86_64

升级openssl版本为OPENSSL_1.0.2

# rpm -ivh openssl-libs-1.0.2k-16.el7.x86_64.rpm --force

之后重新安装erlang

# rpm -ivh erlang-21.3.8.6-1.el7.x86_64.rpm

操作系统ReadHat6

# rpm -ivh erlang-21.3.8.6-1.el6.x86_64.rpm

报错1

warning: erlang-21.3.8.6-1.el6.x86_64.rpm: Header V4 RSA/SHA1 Signature, key ID 6026dfca: NOKEY

error: Failed dependencies:

        libcrypto.so.10(OPENSSL_1.0.1)(64bit) is needed by erlang-21.3.8.6-1.el6.x86_64

        libcrypto.so.10(OPENSSL_1.0.1_EC)(64bit) is needed by erlang-21.3.8.6-1.el6.x86_64

        libcrypto.so.10(libcrypto.so.10)(64bit) is needed by erlang-21.3.8.6-1.el6.x86_64

升级openssl版本为OPENSSL_1.0.1

# rpm -ivh openssl-1.0.1e-57.el6.x86_64.rpm --force –nodeps

之后重新安装erlang

8.3 安装Rabbitmq

先将rabbitmq-server-3.7.16-1.el7.noarch.rpm上传到目标服务器上/opt/software/rabbitmq

# cd /opt/software/rabbitmq

# rpm -ivh rabbitmq-server-3.7.8-1.el7.noarch.rpm  (ReadHat7)

# rpm -ivh rabbitmq-server-3.7.8-1.el6.noarch.rpm  (ReadHat6)

8.4 配置Rabbitmq

(1)生成配置文件

# cp /usr/share/doc/rabbitmq-server-3.7.8/rabbitmq.config.example /etc/rabbitmq/rabbitmq.config

(2)启动rabbitmq

# service rabbitmq-server start   (ReadHat6)

 或/etc/init.d/rabbitmq-server start

# systemctl start rabbitmq-server.service   (ReadHat7)

# systemctl enable rabbitmq-server.service   (ReadHat7)

(3)为MQ添加admin用户并设置密码为admin

# rabbitmqctl add_user admin admin

执行结果回显如下:

Creating user " admin " ...

Adding user "admin" ...

 
删除用户
rabbitmqctl delete_user Username
查看用户列表
rabbitmqctl list_users

(4)允许管理用户的配置、写入和读取访问

# rabbitmqctl set_permissions admin ".*" ".*" ".*"

执行结果回显如下:

Setting permissions for user "admin" in vhost "/" ...

(5)设置admin用户为管理员,可用于页面登录

# rabbitmqctl  set_user_tags admin administrator

执行结果回显如下:

Setting tags for user "admin" to [administrator] ...

(6)修改rabbitmq 允许打开的文件数为:100000(ReadHat7)

vi /usr/lib/systemd/system/rabbitmq-server.service
找到[Service]配置项,在其中新增一行配置:LimitNOFILE=100000, 如果有不用新增

(7)开启rabbitmq web页面支持

# rabbitmq-plugins enable rabbitmq_management  

【说明】如果报”cannot_read_enabled_plugins_file,"/etc/rabbitmq/enabled_plugins",可忽略该提示,然后执行如下命令:

# chmod 755 /etc/rabbitmq/enabled_plugins

【注意】/etc/hosts需要配置主机名

(7)【可选】rabbitmq禁用guest用户登录管理页面
修改/etc/rabbitmq/rabbitmq.config配置文件
搜索loopback_users
取消掉%% {loopback_users, [<<"guest">>]}, 前面的注释%%

8.5 启动Rabbitmq

# systemctl restart rabbitmq-server.service (ReadHat7)

# service rabbitmq-server restart (ReadHat6)

# /sbin/service rabbitmq-server restart (ReadHat6)

或/etc/init.d/rabbitmq-server start

etc/init.d/service rabbitmq-server start

8.6 访问Rabbitmq

(1)页面访问:http://10.10.167.34:15672,用户名和密码为admin/admin

(2)登录后能看到一个节点及其他信息

8.7 集群Rabbitmq

(1)配置hostname文件,此步骤需放启动rabbitmq之前执行

首先,在10.10.167.33服务器上,修改vi /etc/hostname

# vi /etc/hostname

node1

后,在10.10.167.34服务器上,修改vi /etc/hostname

# vi /etc/hostname

node2

(2)配置hosts文件

然后在node1服务器上,修改vi /etc/hosts

# vi /etc/hosts

10.10.167.33    node1

10.10.167.34    node2

node2服务器上,修改vi /etc/hosts

# vi /etc/hosts

10.10.167.33    node1

10.10.167.34    node2

然后查看下hostnamectl status,如果不正确的话,需要再进行设置下:

[root@node1 ~]# hostnamectl status

   Static hostname: node1

         Icon name: computer-vm

           Chassis: vm

        Machine ID: d01c397f6dd1423f808eaadf13a0dc08

           Boot ID: f35d1333c9e648faaf68add6d15d1b9c

    Virtualization: vmware

  Operating System: Red Hat Enterprise Linux Server 7.2 (Maipo)

       CPE OS Name: cpe:/o:redhat:enterprise_linux:7.2:GA:server

            Kernel: Linux 3.10.0-327.el7.x86_64

      Architecture: x86-64

(3)搭建集群

配置Erlang Cookie要保证集群中的不同节点相互通信必须共享相同的 Erlang Cookie。具体的目录存放在/var/lib/rabbitmq/.erlang.cookie,把node2设置成和node1一样的即可,权限是400

先启动一台,启动后会在用户的根目录下生成一个.erlang.cookie文件,然后把这个文件复制到其它机器的同样目录下,必须保证3台机器的cookie是一样的,然后再重启另外两台

[root@node1 ~]# cat /var/lib/rabbitmq/.erlang.cookie

LBOTELUJAMXDMIXNTZMB

[root@node1 ~]# chmod 400  /var/lib/rabbitmq/.erlang.cookie

node1服务器中的.erlang.cookie文件,拷贝到node2服务器上:

[root@node1 ~]# scp /var/lib/rabbitmq/.erlang.cookie root@node2:/var/lib/rabbitmq

先停止运行节点,然后以后台方式启动 RabbitMQ Servernode1node2分别执行):

[root@node1 ~]# rabbitmqctl stop    redhat6、7 不需要

[root@node1 ~]# rabbitmq-server -detached   

             service: name=rabbitmq-server enabled=yes state=restarted redhat6

             systemctl restart rabbitmq-server.service  redhat7  

使命令在控制台不能按ctrl + c和关闭,关闭程序自动停

然后我们以node1作为集群中心,在node2上执行加入集群中心命令(节点类型为磁盘节点):

[root@node2 ~]# rabbitmqctl stop_app

[root@node2 ~]# rabbitmqctl reset

[root@node2 ~]# rabbitmqctl join_cluster rabbit@node1

//默认是磁盘节点,如果是内存节点的话,需要加--ram参数

[root@node2 ~]# rabbitmqctl start_app

直接删掉集群中的某个节点:

rabbitmqctl forget_cluster_node node_name

例子:

rabbitmqctl forget_cluster_node rabbit@rabbit2

(4)验证集群

查看集群的状态(包含node1node2节点):

[root@node1 ~]# rabbitmqctl cluster_status

Cluster status of node rabbit@node1

[{nodes,[{disc,[rabbit@node1,rabbit@node2]}]}, {running_nodes,[rabbit@node2,rabbit@node1]},

{cluster_name,<<"rabbit@node1">>},

{partitions,[]},

{alarms,[{rabbit@node2,[]},{rabbit@node1,[]}]}]

RabbitMQ Web 管理界面,验证集群的信息:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值