一、下载 Erlang 和 RabbitMQ 的安装源
1、RabbitMQ 与 Erlang 版本对应
RabbitMQ 与 Erlang 版本对应
RabbitMQ Erlang Version Requirements
确定好自己 Erlang 和 RabbitMQ 版本之后,我们开始下载
2、RabbitMQ 和 Erlang rpm 安装源仓库
https://packagecloud.io/rabbitmq
3、从 RabbitMQ 官网找到 rpm 仓库
RabbitMQ 官网
https://www.rabbitmq.com/
4、Erlang 安装源下载
wget --content-disposition https://packagecloud.io/rabbitmq/erlang/packages/el/7/erlang-23.3.4.11-1.el7.x86_64.rpm/download.rpm
yum -y install wget
简单解释一下 -y
参数的意思,比如下面这张图下载过程中,可能会有让你确认是否需要下载的动作,如果我们加上这个参数之后,就不会有这个提示,直接一路畅通无阻,一步到位,如果说下载过程中,你想自己来确认一下是否需要下载,就可以去掉这个 -y
再次下载
5、RabbitMQ rpm 安装源下载
wget --content-disposition https://packagecloud.io/rabbitmq/rabbitmq-server/packages/el/7/rabbitmq-server-3.9.13-1.el7.noarch.rpm/download.rpm
二、开始安装
1、安装 Erlang
rpm -ivh erlang-23.3.4.11-1.el7.x86_64.rpm
i表示安装,v表示显示安装过程,h表示显示进度
2、安装 RabbitMQ
rpm -ivh rabbitmq-server-3.9.13-1.el7.noarch.rpm
至此我们的基本安装就完毕了。
三、RabbitMQ 基本配置
1、启动服务
service rabbitmq-server start
2、查看服务状态
service rabbitmq-server status
3、停止服务
service rabbitmq-server stop
4、重启服务
service rabbitmq-server restart
5、开启图形化管理界面
rabbitmq-plugins enable rabbitmq_management
注意:!!!
这里需要配置防火墙开放端口,因为后面需要访问这个图形化界面
我这里主要做了几个事情
查看当前防火墙状态
firewall-cmd --state
查看当前防火墙开启的端口
firewall-cmd --zone=public --list-ports
将 RabbitMQ web 访问端口 15672 开放出来
firewall-cmd --zone=public --add-port=15672/tcp --permanent
再次查看当前防火墙开启的端口,可以看到没有,因为没有生效
更新防火墙规则
firewall-cmd --reload
再次查看当前防火墙开启的端口,可以看到已经开放出来了
我这里防火墙是 firewall ,可能有些是 iptables
详细可以查看这个文章怎么配置
防火墙配置
6、访问管理界面
默认用户名和密码是:guest/guest
输入访问,可以看到登录失败
提示:用户只能通过本地主机登录
7、配置管理界面访问用户
注意:!!!
由于我这个是最新的版本,所以配置方式会有点不一样,如果是以往早一点的版本作如下配置
我们直接修改这个文件
vi /usr/lib/rabbitmq/lib/rabbitmq_server-3.9.13/ebin/rabbitmq.app
这个目录下会有一个 ebin 的目录,里面有一个 rabbitmq.app 的配置文件,我们直接修改里面的内容就可以(但是由于我这个是目前最新版,就没有这个文件了)
修改前
修改后
修改之后重启 RabbitMQ 服务即可
那么我们新版本的如何配置才能访问这个 web 页面呢?已知有这么两种方式
第一种
我们进入到这个目录
cd /etc/rabbitmq/
创建一个 rabbitmq.config 配置文件
touch rabbitmq.config
在 rabbitmq.config 文件中添加如下内容
[{rabbit, [{loopback_users, []}]}].
保存退出后,重启我们 RabbitMQ 服务,然后再次登录
第二种
创建一个新用户进行访问
第一步:添加 admin 用户并设置密码
rabbitmqctl add_user admin admin
第二步:添加 admin 用户为administrator角色
rabbitmqctl set_user_tags admin administrator
第三步:设置 admin 用户的权限,指定允许访问的vhost以及write/read
rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*"
无需重启,我们直接用 admin 登录,可以看到可以成功登录
四、管理界面相关操作
1、创建用户
创建了一个 user1,鼠标悬停到 name ,可以点击对该用户进行操作
Can access virtual hosts 中显示 No access,即 user1 用户没有可以访问的虚拟主机
角色说明
1、 超级管理员(administrator) 可登陆管理控制台,可查看所有的信息,并且可以对用户,策略(policy)进行操 作。
2、 监控者(monitoring) 可登陆管理控制台,同时可以查看rabbitmq节点的相关信息(进程数,内存使用 情况,磁盘使用情况等)
3、 策略制定者(policymaker) 可登陆管理控制台, 同时可以对policy进行管理。但无法查看节点的相关信息(上 图红框标识的部分)。
4、 普通管理者(management) 仅可登陆管理控制台,无法看到节点信息,也无法对策略进行管理。
5、 其他 无法登陆管理控制台,通常就是普通的生产者和消费者。
2、创建 Virtual Hosts 虚拟服务器
Virtual Hosts配置
像 mysql 拥有数据库的概念并且可以指定用户对库和表等操作的权限。 RabbitMQ 也有类似的权限管理;在RabbitMQ中可以虚拟消息服务器 Virtual Host,每个 Virtual Hosts 相当于一个相对独立的 RabbitMQ 服务器,每个 VirtualHost 之间是相互隔离的。exchange、queue、message 不能互通。 相当 于 mysql 的 db 。Virtual Name 一般以 / 开头。
这里创建虽然设置了,但是默认只给 admin 访问
我们可以设置其他用户,鼠标悬停到 name 上,点击
可以发现,user1 用户也可以访问了