【RabbitMQ】Linux上安装RabbitMQ详细步骤

RabbitMQ 安装

  • 前言
    • [一、RabbitMQ 版本确认和安装包下载](#一、RabbitMQ 版本确认和安装包下载)
    • [二、RabbitMQ 安装步骤与启动](#二、RabbitMQ 安装步骤与启动)
    • [三、RabbitMQ 用户创建、权限配置](#三、RabbitMQ 用户创建、权限配置)

前言

RabbitMQ是一个开源的消息代理软件,实现了高级消息队列协议(AMQP),用于在不同的应用程序之间进行异步通信。RabbitMQ是一个由Erlang语言编写的消息中间件,它遵循AMQP协议,提供了稳定可靠的消息传输服务。

最近公司迁移服务器,需要升级安装RabbitMQ,借此机会记录一下整个安装过程,有需要的可以直接参考此篇文章.

一、RabbitMQ 版本确认和安装包下载

RabbitMQ依赖于Erlang语言,所以我们安装RabbitMQ必须要先安装Erlang,RabbitMQ和Erlang有版本对应关系,我们必须选择合适的版本才能安装成功,访问链接: 官网版本对照,查看版本对应关系。

选定版本后访问链接下载安装包: 官方RabbitMQ安装包下载官方Erlang安装包下载

本文选择4.0.7版本RabbitMQ和27.3版本Erlang

二、RabbitMQ 安装步骤与启动

如果我们服务器上已经存在RabbitMQ的话,需要先将旧版本卸载后在进行安装

1、查看rabbitmq版本号

bash 复制代码
sudo rabbitmqctl --version

2、查看Erlang版本号

bash 复制代码
erl -version

3、停止运行当前rabbitmq(如果已存在的话)

bash 复制代码
sudo rabbitmqctl stop

4、卸载rabbitmq

bash 复制代码
sudo yum remove rabbitmq-server

如图所示表示已经卸载完成

5、验证卸载,提示命令未找到表示经卸载

bash 复制代码
sudo rabbitmqctl --version

6、卸载Erlang

bash 复制代码
sudo yum remove erlang

步骤4会卸载erlang,执行后会如下图显示,代表已经删除了

7、验证卸载,提示命令未找到表示经卸载

bash 复制代码
erl -version

8、上传安装包到服务器目录上

进入目录执行安装erlang

bash 复制代码
sudo rpm -ivh erlang-27.3-1.el8.x86_64.rpm 

9、验证erlang安装

bash 复制代码
erl -version

10、安装rabbitmq

bash 复制代码
sudo rpm -ivh rabbitmq-server-4.0.7-1.el8.noarch.rpm 

11、验证rabbitmq安装

bash 复制代码
sudo rabbitmqctl --version

至此,已经安装成功

12、启动rabbitmq服务

bash 复制代码
sudo systemctl start rabbitmq-server

其他命令:

停止rabbitmq服务

bash 复制代码
sudo systemctl stop rabbitmq-server

重启rabbitmq服务

bash 复制代码
sudo systemctl restart rabbitmq-server

13、设置开机自动启动

bash 复制代码
sudo systemctl enable rabbitmq-server

14、检查启动状态

bash 复制代码
sudo systemctl status rabbitmq-server

如图表示已启动成功

15、启用管理插件

bash 复制代码
sudo rabbitmq-plugins enable rabbitmq_management

16、配置端口开放,管理插件需要开放两个端口,AMQP 协议端口:5672,管理界面端口:15672

开放15672端口:

bash 复制代码
firewall-cmd --zone=public --add-port=15672/tcp --permanent

开放5672端口:

bash 复制代码
firewall-cmd --zone=public --add-port=5672/tcp --permanent

重启防火墙:

bash 复制代码
firewall-cmd --reload

17、访问web界面

浏览器输入http://服务器ip:15672/,不过默认guest账户是不允许远程访问的

三、RabbitMQ 用户创建、权限配置

1、查看guest默认用户权限

bash 复制代码
 sudo rabbitmqctl list_user_permissions guest

如下图所示该用户是没有读权限的,允许 guest 用户从远程访问管理界面存在安全风险,一般情况下都会新建一个用户

2、创建用户、授权

bash 复制代码
rabbitmqctl add_user 用户名 密码 #创建用户

如下图创建一个root用户,但是还不能使用登录,还需要添加虚拟主机、配置权限

3、添加虚拟主机

虚拟主机(Virtual Host) 是一个独立的命名空间,用于隔离不同的应用程序或环境。每个虚拟主机都有自己的交换机、队列、绑定和权限设置,这样可以避免不同应用程序之间的资源冲突和数据泄露。

bash 复制代码
rabbitmqctl add_vhost /root

4、查看虚拟主机

bash 复制代码
sudo rabbitmqctl list_vhosts

5、用户添加权限

其中 -胖表示制定虚拟主机,后面跟着用户名,用户名后面代表权限,从左到右分别表示配置权限、写权限、读权限,利用正则表达式陪匹配权限,.表示精确匹配,.*表示允许用户对所有资源执行相应的操作,^表示按照什么开头匹配资源,例如:只允许用户操作以queue1开头的队列,^queue1.*

bash 复制代码
rabbitmqctl set_permissions -p /虚拟主机 用户 '.*' '.*' '.*' 

如配置所有权限

6、授权

set_user_tags 命令用于为 RabbitMQ 用户分配角色标签(tags),这些标签决定了用户在 RabbitMQ 中可以执行的操作范围。

bash 复制代码
 rabbitmqctl set_user_tags root administrator 
权限 说明
administrator 允许执行所有管理操作,包括用户管理、虚拟主机管理、策略管理等。
monitoring 允许查看所有管理信息,包括节点状态、通道状态、连接状态等
policymaker 允许定义和修改策略,包括队列策略、镜像策略等。
management 允许通过 Web 管理界面进行管理操作,包括查看和管理队列、交换机、绑定等。
none 只能执行基本操作,如发布、消费消息。

7、登录web管理界面

利用刚刚创建好的root用户登录web页面

至此,完成所有安装操作

为了帮助更多像你一样的读者,我将持续在专栏中分享技术干货和实用技巧。如果你觉得这篇文章对你有帮助,可以考虑关注我的专栏,谢谢。

相关推荐
特立独行的猫a15 分钟前
redis客户端库redis++在嵌入式Linux下的交叉编译及使用
linux·数据库·c++·redis·redis客户端库
无敌小茶40 分钟前
Linux学习笔记之环境变量
linux·笔记
Harbor Lau1 小时前
Linux常用中间件命令大全
linux·运维·中间件
꧁坚持很酷꧂2 小时前
Linux Ubuntu18.04下安装Qt Craeator 5.12.9(图文详解)
linux·运维·qt
凉、介2 小时前
PCI 总线学习笔记(五)
android·linux·笔记·学习·pcie·pci
电鱼智能的电小鱼2 小时前
EFISH-SBC-RK3588无人机地面基准站项目
linux·网络·嵌入式硬件·机器人·无人机·边缘计算
电鱼智能的电小鱼2 小时前
基于 EFISH-SBC-RK3588 的无人机环境感知与数据采集方案
linux·网络·嵌入式硬件·数码相机·无人机·边缘计算
小诸葛的博客3 小时前
详解Linux中的定时任务管理工具crond
linux·运维·chrome
一默19913 小时前
CentOS 7.9升级OpenSSH到9.9p2
linux·运维·centos
keep intensify4 小时前
Linux常用指令
linux·服务器·php