RabbitMQ 安装与界面管理
RabbitMQ概述
官网:https://www.rabbitmq.com/
RabbitMQ是部署最广泛的开源消息代理。
RabbitMQ拥有成千上万的用户,是最流行的开源消息代理之一。从T-Mobile到Runtastic, RabbitMQ在全球范围内广泛应用于小型初创企业和大型企业。
RabbitMQ是轻量级的,易于部署在premises和云中。它支持多种消息传递协议。RabbitMQ可以以分布式和联合的方式部署,以满足高规模、高可用性的需求。
RabbitMQ运行在许多操作系统和云环境上,并为最流行的语言提供了广泛的开发工具。
安装准备
下载Rabbit
下载地址:https://www.rabbitmq.com/download.html
这里以Linux
系统进行举例,我使用的是CentOS7的镜像,可以选择对应版本
下载Erlang
RabbitMQ是基于Erlang开发,所以想要使用RabbitMQ,需要安装Erlang
查看对应版本的Erlang 网址:https://www.rabbitmq.com/which-erlang.html
该处是对应的,不可以让Erlang版本超出范围
下载地址:https://www.erlang-solutions.com/
Linux安装
代码语言:javascript复制[root@localhost ~]# mkdir -p /usr/rabbitmq # 在/usr文件夹下创建rabbitmq文件夹
[root@localhost ~]# cd /usr/rabbitmq # 进入/usr/rabbitmq 文件夹下
[root@localhost rabbitmq]#
使用X-ftp
将下载的文件移动到该文件下
安装Erlang
代码语言:javascript复制rpm -Uvh erlang-23.3.1-1.el7.x86_64.rpm # 后面的文件名改为下载的文件名
yum install -y erlang #安装erlang , 这里可能会报错
yum list | grep erlang # 查询erlang在系统中安装包的名字 , 如果显示installed 不用执行上面的安装
erl -v #查看erlang版本
安装socat
代码语言:javascript复制yum install -y socat
安装RabbitMQ
代码语言:javascript复制rpm -Uvh rabbitmq-server-3.8.14-1.el7.noarch.rpm
yum install rabbitmq-server -y
测试是否安装成功
代码语言:javascript复制# 启动服务
systemctl start rabbitmq-server
# 查看服务状态,如图
systemctl status rabbitmq-server.service
# 开机自启动
systemctl enable rabbitmq-server
# 停止服务
systemctl stop rabbitmq-server
Docker安装
更新yum
代码语言:javascript复制yum update #yum 更新到最新
yum install -y yum-utils device-mapper-persistent-data lvm2 #安装需要的软件包
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo #设置yum源为阿里云
安装Docker
代码语言:javascript复制yum install docker-ce -y #安装docker
docker -v #查看docker版本
配置Docker镜像
代码语言:javascript复制[root@localhost rabbitmq]# mkdir -p /etc/docker
[root@localhost rabbitmq]# tee /etc/docker/daemon.json <<-'EOF'
>
> {
> "registry-mirrors": ["https://9vqg1xqp.mirror.aliyuncs.com"]
> }
> EOF
重启、查看docker状态
代码语言:javascript复制systemctl daemon-reload
systemctl restart docker #重启docker
systemctl status daocker #查看docker状态
docker images #查看docker镜像
Docker常用命令
代码语言:javascript复制#启动docker:
systemctl start docker
#停止docker:
systemctl stop docker
#重启docker:
systemctl restart docker
#查看docker状态
systemctl status docker
#开机启动
systemctl enable docker
systemctl unenable docker
#查看docker概要信息
docker info
#查看docker帮助文档
docker --help
开始安装
代码语言:javascript复制获取rabbit镜像
docker pull rabbitmq:management
代码语言:javascript复制创建并运行容器
docker run -di --name=myrabbit -p 15672:15672 rabbitmq:management
启动服务
代码语言:javascript复制docker ps -a #查看容器
docker images #查看镜像
docker start 3da6ff4c1cd4 #启动,最后的一串和容器中名字对应
这时候,访问路径: 你的IP地址:15672 (账号密码:guest)
小提示 如果你关机时,docker中rabbitmq容器没有关闭,再次开启时可能出现端口错误 ,记得关闭容器 docker ps #查看容器 docker stop xxx #关闭容器
RabbitMQ界面管理
代码语言:javascript复制默认情况下,rabbitmq是没有安装web端的客户端插件,需要安装才可以生效
rabbitmq-plugins enable rabbitmq_management
之后重启服务
代码语言:javascript复制systemctl restart rabbitmq-server
之后可以进入网址:你的ip地址:15672 (例如:192.168.57.129:15672
)
linux ip地址查看方法: ifconfig
正常进入的页面为:
说明:rabbitmq有一个默认账号和密码是:
guest
, 默认情况只能在本机(localhost
)下访问,所以需要添加一个远程登录的用户
首先关闭防火墙,依次输入即可
代码语言:javascript复制systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
systemctl stop firewalld
授权账号和密码 用户级别 ( 设置操作权限时使用 ):
- administrator:可以登录控制台、查看所有信息、可以对 rabbitmq进行管理
- monitoring:监控者 登录控制台,查看所有信息
- policymaker:策略制定者 登录控制台,指定策略
- managment 普通管理员 登录控制台
最后会进行解析以上级别
代码语言:javascript复制rabbitmqctl add_user admin admin #新增 admin 用户
rabbitmqctl set_user_tags admin administrator #设置用户操作权限
代码语言:javascript复制rabbitmqctl set_permissions -p / admin ".*" ".*" ".*" #为用户添加资源权限
这时候使用 admin
用户 就可以登陆成功了
小结
代码语言:javascript复制rabbitmqctl add_user 账号 密码 #添加新用户
rabbitmqctl set_user_tags 账号 administrator #设置用户操作权限 ,administrator可更改
rabbitmqctl change_password Username Newpassword #修改密码
rabbitmqctl delete_user Username #删除用户
rabbitmqctl list_users #查看用户清单
rabbitmqctl.bat set_permissions -p /用户名 ".*" "." ".*" #为用户添加资源权限
RabbitMQ用户级别
1.nono
- 不能访问
management plugin
2.management
- 查看自己相关节点信息
- 列出自己可以通过
AMQP
登入的虚拟机 - 查看自己的虚拟机节点
virtual hosts
的queues
,exchanges
和bindings
信息 - 查看和关闭自己的
channels
和connections
- 查看有关自己的虚拟机节点
virtual hosts
的统计信息,包括其他用户在这个节点virtual hosts
中的活动信息,
3.Policymaker
- 包含
management
所有权限 - 查看和创建和删除自己的
virtual hosts
所属的policies
和parameters
信息.
4.Monitoring
- 包含
management
所有权限 - 罗列出所有的
virtual hosts
,包括不能登录的virtual hosts
. - 查看其他用户的
connections
和channels
信息 - 查看节点级别的数据如
clustering
和memory
使用情况 - 查看所有的
virtual hosts
的全局统计信息
5.Administrator
- 最高权限
- 可以创建和删除
virtual hosts
- 可以查看创建和删除
users
- 查看创建
permisssions
- 关闭所有用户的
connections
个人博客为: MoYu’s HomePage