CentOS 7 搭建RabbitMQ环境

0 版本选择

查询地址:https://www.rabbitmq.com/which-erlang.html

Windows下载:https://erlang.org/download/otp_versions_tree.html

Linux可在其GitHub仓库直接下载rpm安装包

1 Erlang安装 (22.3.4.1版本)

1.1 在线安装

这里选用的Erlang是rabbitMQ官方提供的精简包,只有rabbitMQ运行所必须的环境

1.1.1 配置软件仓库和签名密钥

vi /etc/yum.repos.d/rabbitmq-erlang.repo

To use Erlang 22.x on CentOS 7:

[rabbitmq-erlang]
name=rabbitmq-erlang
baseurl=https://dl.bintray.com/rabbitmq-erlang/rpm/erlang/22/el/7
gpgcheck=1
gpgkey=https://dl.bintray.com/rabbitmq/Keys/rabbitmq-release-signing-key.asc
repo_gpgcheck=0
enabled=1

1.1.2 安装

yum install erlang

来自:https://github.com/rabbitmq/erlang-rpm的readme.md

1.2 离线安装

1.2.1 准备

下载需要的密钥和对应的安装包

密钥下载地址:https://github.com/rabbitmq/signing-keyshttps://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.asc

安装包下载地址:https://github.com/rabbitmq/erlang-rpm/releases/download/v22.3.4.1/erlang-22.3.4.1-1.el7.x86_64.rpm

上传到服务器,进入到目录,这里上传到/usr目录

cd /usr

1.2.2 配置密钥

离线可以不用这一步

sudo rpm --import rabbitmq-release-signing-key.asc

1.2.3 安装

rpm -ivh erlang-22.3.4.1-1.el7.x86_64.rpm

1.3 验证

显示版本号,并进入控制台,即成功。

erl

退出,“.”不能忘记

halt().

2 安装RabbitMQ (3.8.4 版本)

2.1 在线安装

2.1.1 导入签名密钥

sudo rpm --import https://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.asc

2.1.2 配置软件仓库

/etc/yum.repos.d/目录下添加.repo文件(例如rabbitmq.repo),在文件中添加以下内容,并保存

vi /etc/yum.repos.d/rabbitmq.repo

The following example sets up a repository that will install RabbitMQ 3.8 and targets CentOS 7:

[bintray-rabbitmq-server]
name=bintray-rabbitmq-rpm
baseurl=https://dl.bintray.com/rabbitmq/rpm/rabbitmq-server/v3.8.x/el/7/
gpgcheck=0
repo_gpgcheck=0
enabled=1

2.1.3 安装

https://dl.bintray.com/rabbitmq/rpm/rabbitmq-server中查找对应的版本,这里使用的是CentOS 7 ,所以安装地址是:

https://dl.bintray.com/rabbitmq/rpm/rabbitmq-server/v3.8.x/el/7/noarch/rabbitmq-server-3.8.4-1.el7.noarch.rpm

yum install https://dl.bintray.com/rabbitmq/rpm/rabbitmq-server/v3.8.x/el/7/noarch/rabbitmq-server-3.8.4-1.el7.noarch.rpm

2.2 离线安装

2.2.1 准备

下载对应的安装包(若选用离线,密钥在安装erlang的时候已经配置过,故这里可不再次配置)

rabbitmq以及其依赖包

socat下载地址:http://mirror.centos.org/centos/7/os/x86_64/Packages/socat-1.7.3.2-2.el7.x86_64.rpm

rabbitmq下载地址:https://dl.bintray.com/rabbitmq/rpm/rabbitmq-server/v3.8.x/el/7/noarch/rabbitmq-server-3.8.4-1.el7.noarch.rpm

github上对应版本下载:https://github.com/rabbitmq/rabbitmq-server/releases

2.2.2 安装

将下载的安装包上传服务器,这里上传到/usr目录

cd /usr

rpm -ivh socat-1.7.3.2-2.el7.x86_64.rpm

rpm -ivh rabbitmq-server-3.8.4-1.el7.noarch.rpm

一键安装

rpm -Uvh *.rpm --nodeps --force

2.3 安装路径

默认是:/usr/lib/rabbitmq

whereis rabbitmq

2.4 开启守护进程

使用rpm安装,默认是关闭守护进程的,需要开启

chkconfig rabbitmq-server on

2.5 启动/停止

# start it back
service rabbitmq-server start

# restart it back
service rabbitmq-server restart

# stop the local node
service rabbitmq-server stop

# check on service status as observed by service manager
service rabbitmq-server status

2.6 放行端口

systemctl status firewalld

firewall-cmd --list-ports

firewall-cmd --zone=public --add-port=5672/tcp --permanent
firewall-cmd --zone=public --add-port=15672/tcp --permanent
firewall-cmd --zone=public --add-port=15674-15675/tcp --permanent
firewall-cmd --zone=public --add-port=4396/tcp --permanent
firewall-cmd --zone=public --add-port=25672/tcp --permanent
firewall-cmd --zone=public --add-port=1883/tcp --permanent

firewall-cmd --reload

2.7 用户管理

查看所有用户

rabbitmqctl list_users

添加一个用户

rabbitmqctl add_user admin 123456

配置权限

rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*"

查看用户权限

rabbitmqctl list_user_permissions admin

设置tag

rabbitmqctl set_user_tags admin administrator

删除用户(安全起见,删除默认用户)

rabbitmqctl delete_user guest

重启即可用新账号登录

2.8 启用插件

2.8.1 Web管理

rabbitmq-plugins enable rabbitmq_management

访问:http://{ip}:15672/

默认账号密码:guest guest(这个账号只允许本机访问)

2.8.2 MQTT

启动MQTT插件

rabbitmq-plugins enable rabbitmq_mqtt

创建账号

rabbitmqctl add_user mqtt-user mqtt-123456
rabbitmqctl set_permissions -p / mqtt-user ".*" ".*" ".*"
rabbitmqctl set_user_tags mqtt-user management

具体可查看:https://www.rabbitmq.com/mqtt.html

2.8.3 Web STOMP

rabbitmq-plugins enable rabbitmq_web_stomp

具体可查看:https://www.rabbitmq.com/web-stomp.html

2.8.4 Web MQTT

rabbitmq-plugins enable rabbitmq_web_mqtt

具体可查看:https://www.rabbitmq.com/web-mqtt.html

2.8.5 TRACING

rabbitmq-plugins enable rabbitmq_tracing

消息记录追踪插件

3 RabbitMQ普通集群配置

先按照以上步骤安装完单机版

3.1 环境

IP地址主机名操作系统用途
192.168.68.133rabbitmq1CentOS7.8(64位)磁盘节点
192.168.68.134rabbitmq2CentOS7.8(64位)内存节点
192.168.68.135rabbitmq3CentOS7.8(64位)内存节点

3.2 放行端口

firewall-cmd --zone=public --add-port=35672-35682/tcp --permanent
firewall-cmd --zone=public --add-port=4369/tcp --permanent

firewall-cmd --reload

3.3 拷贝cookie

scp root@192.168.68.133:/var/lib/rabbitmq/.erlang.cookie /var/lib/rabbitmq/.erlang.cookie

拷贝完以后需要重启Rabbit MQ服务

3.4 设置内存节点

将 2、3 服务器rabbitMQ设置成 1 服务器的内存节点,在2、3服务器上执行如下命令

rabbitmqctl stop_app

rabbitmqctl join_cluster --ram rabbit@rabbitmq1

rabbitmqctl start_app

–ram 指定内存节点类型

–disc 指定磁盘节点类型

修改节点类型

rabbitmqctl stop_app
rabbitmqctl change_cluster_node_type disc
rabbitmqctl start_app

4 RabbitMQ镜像集群配置

查看博客:https://blog.51cto.com/11134648/2155934

5 服务器名修改后可能遇到的报错

5.1 报错一

Error: unable to perform an operation on node 'rabbit@pro-xxx'. Please see diagnostics information and suggestions below.

Most common reasons for this are:

 * Target node is unreachable (e.g. due to hostname resolution, TCP connection or firewall issues)
 * CLI tool fails to authenticate with the server (e.g. due to CLI tool's Erlang cookie not matching that of the server)
 * Target node is not running

In addition to the diagnostics info below:

 * See the CLI, clustering and networking guides on https://rabbitmq.com/documentation.html to learn more
 * Consult server logs on node rabbit@pro-xxx
 * If target node is configured to use long node names, don't forget to use --longnames with CLI tools

DIAGNOSTICS
===========

attempted to contact: ['rabbit@pro-xxx']

rabbit@pro-xxx:
  * connected to epmd (port 4369) on pro-xxx
  * epmd reports node 'rabbit' uses port 25672 for inter-node and CLI tool traffic 
  * can't establish TCP connection to the target node, reason: timeout (timed out)
  * suggestion: check if host 'pro-xxx' resolves, is reachable and ports 25672, 4369 are not blocked by firewall

Current node details:
 * node name: 'rabbitmqcli-23998-rabbit@pro-xxx'
 * effective user's home directory: /var/lib/rabbitmq
 * Erlang cookie hash: AsZk1YLHaHBTrRfcnFH+PQ==

需要编辑服务器的hosts配置文件

vi /etc/hosts

追加内容,即:把本机的IP追加进去,名称对应服务器名称

192.168.68.133 pro-xxx

echo 192.168.68.133 pro-xxx >> /etc/hosts

再重启rabbitMQ服务

5.2 报错二

Error: unable to perform an operation on node 'rabbit@localhost'. Please see diagnostics information and suggestions below.

Most common reasons for this are:

 * Target node is unreachable (e.g. due to hostname resolution, TCP connection or firewall issues)
 * CLI tool fails to authenticate with the server (e.g. due to CLI tool's Erlang cookie not matching that of the server)
 * Target node is not running

In addition to the diagnostics info below:

 * See the CLI, clustering and networking guides on https://rabbitmq.com/documentation.html to learn more
 * Consult server logs on node rabbit@localhost
 * If target node is configured to use long node names, don't forget to use --longnames with CLI tools

DIAGNOSTICS
===========

attempted to contact: [rabbit@localhost]

rabbit@localhost:
  * connected to epmd (port 4369) on localhost
  * epmd reports node 'rabbit' uses port 25672 for inter-node and CLI tool traffic 
  * TCP connection succeeded but Erlang distribution failed 

  * Node name (or hostname) mismatch: node "rabbit@test-xxx" believes its node name is not "rabbit@test-xxx" but something else.
    All nodes and CLI tools must refer to node "rabbit@test-xxx" using the same name the node itself uses (see its logs to find out what it is)


Current node details:
 * node name: 'rabbitmqcli-26280-rabbit@localhost'
 * effective user's home directory: /var/lib/rabbitmq
 * Erlang cookie hash: AsZk1YLHaHBTrRfcnFH+PQ==

解决

vi /etc/rabbitmq/rabbitmq-env.conf

#新增以下内容
RABBITMQ_NODENAME=rabbit@test-xxx
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值