Linux环境下 RabbitMQ 的下载与安装

简介: 0 环境CentOS7RabbitMQ 3.6.5erlang 18.3socatrabbitmq是使用erlang语言编写的,所以需要先安装erlang,其次rabbitmq安装依赖于socat,所以三个安装包都需要下载。

0 环境

CentOS7

rabbitmq是使用erlang语言编写的,所以需要先安装erlang,其次rabbitmq安装依赖于socat,所以三个安装包都需要下载。另外rabbitmq对于erlang的版本是有要求的,这个可以去官网查看。

0.1 Mac本地文件上传

通过ssh连接本地虚拟机中的CentOS 7 服务器,将所需安装文件上传至Linux服务器
上传erlang文件
上传rabbitmq文件
Linux服务器中文件列表

0.2 Linux服务器下直接执行下载命令

wget www.rabbitmq.com/releases/erlang/erlang-18.3-1.el7.centos.x86_64.rpm
wget http://repo.iotti.biz/CentOS/7/x86_64/socat-1.7.3.2-5.el7.lux.x86_64.rpm
wget www.rabbitmq.com/releases/rabbitmq-server/v3.6.5/rabbitmq-server-3.6.5-1.noarch.rpm

1 安装基础依赖

yum -y install build-essential openssl openssl-devel unixODBC unixODBC-devel make gcc gcc-c++ kernel-devel m4 ncurses-devel tk tc xz

2 安装rpm包

一定要按顺序!!!

  • rpm -ivh erlang-18.3-1.el7.centos.x86_64.rpm

  • rpm -ivh socat-1.7.3.2-5.el7.lux.x86_64.rpm

  • rpm -ivh rabbitmq-server-3.6.5-1.noarch.rpm

3 修改配置

vim /usr/lib/rabbitmq/lib/rabbitmq_server-3.6.5/ebin/rabbit.app

  • RabbitMQ的核心配置文件(显然就是个JSON格式文件),在这里可以查看到rabbitmq默认监听的端口号是5672

  • 找到loopback_users配置项,去除guest,然后保存退出

4 RabbitMQ 基本命令

  • 启动服务

rabbitmq-server start &

  • 停止服务的
rabbitmqctl stop

查看进程:lsof -i:5672
管理插件:rabbitmq-plugins enable rabbitmq-management

5 RabbitMQ 管控台

  • 启用管控台

rabbitmq-plugins enable rabbitmq_management

默认启用端口是15672,通过ip+端口进行访问,如

最好先关闭下iptables规则
iptables -F && iptables -t nat -F

访问成功后需要输入用户名和密码进行登录,统一输入guest即可.
但是在该版本,发现网上此法并不行!

  • rabbitmq的web控制台使用默认账户guest登录失败——login failed

问题背景

rabbitmq的默认账户和密码都是guest,安装完rabbitmq之后可以使用guest/guest登录。

而通过web控制台登录有以下两种形式:

  • 本地登陆(即在rabbitmq安装的机器上登陆——地址栏输入http://localhost:15672
  • 远程登陆(即在其他机器上通过指定IP地址登陆——地址栏输入http://:15672)

但是,在rabbitmq3.3.0之后,出于安全性考虑,默认情况下rabbitmq的guest/guest账户将不能实现远程登录,只能在本地登录.

解决方案

新建账户

默认的guest账户无法远程登陆,并不意味着其他用户也无法远程登录.
所以,可以通过如下命令新增用户、设定用户角色以及赋予用户权限实现远程登陆:

新增用户

$ rabbitmqctl add_user Username  Password

RabbitMQ的用户角色分类

none、management、policymaker、monitoring、administrator

  • none

不能访问 management plugin

  • management

用户可以通过AMQP做的任何事外加:

  • 列出自己可以通过AMQP登入的virtual hosts
  • 查看自己的virtual hosts中的queues, exchanges 和 bindings
  • 查看和关闭自己的channels 和 connections
  • 查看有关自己的virtual hosts的“全局”的统计信息,包含其他用户在这些virtual hosts中的活动。
  • policymaker

management可以做的任何事外加:

  • 查看、创建和删除自己的virtual hosts所属的policies和parameters
  • monitoring

management可以做的任何事外加:

  • 列出所有virtual hosts,包括他们不能登录的virtual hosts
  • 查看其他用户的connections和channels
  • 查看节点级别的数据如clustering和memory使用情况
  • 查看真正的关于所有virtual hosts的全局的统计信息
  • administrator

policymaker和monitoring可以做的任何事外加:

  • 创建和删除virtual hosts
  • 查看、创建和删除users
  • 查看创建和删除permissions
  • 关闭其他用户的connections
  • 设定用户administrator角色

用户角色可以分为超级管理员administrator、监控者monitoring、策略制定者policymaker、普通管理者management等

$ rabbitmqctl set_user_tags <用户名> administrator

  • 修改密码

change_password  JavaEdge JavaEdge

  • 查看用户列表

rabbitmqctl list_users

  • 删除账户

rabbitmqctl  delete_user javaedge

  • 赋予用户权限

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

用户权限包括配置权限、读权限和写权限
配置权限会影响到exchange、queue的声明和删除。读写权限会影响到从queue里取消息、向exchange发送消息以及queue和exchange的绑定操作
比如,将queue绑定到某个exchange上,需要具有queue的写权限以及exchange的读权限;向exchange发送消息需要具有exchange的写权限;从queue里取消息需要具有queue的读权限。

  • 查看用户授权

rabbitmqctl list_permissions -p /

  • 清除权限信息
rabbitmqctl clear_permissions [-p VHostPath] ymq
rabbitmqctl  clear_permissions  -p / JavaEdge
Clearing permissions for user "JavaEdge" in vhost "/"

此时,就可以通过你添加的新用户/密码来进行rabbitmq的远程登录了

相关实践学习
RocketMQ一站式入门使用
从源码编译、部署broker、部署namesrv,使用java客户端首发消息等一站式入门RocketMQ。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
目录
相关文章
|
11天前
|
消息中间件 PHP 数据安全/隐私保护
docker安装rabbitmq并配置hyperf使用
通过以上步骤,您可以实现在Docker容器中安装和配置RabbitMQ,并在PHP的Hyperf框架中进行集成和使用。这种方式为开发者提供了快速部署并实现消息队列解决方案的能力,同时维持了环境与生产环境的一致性,从而为开发高效的分布式应用程序提供了便利。
20 3
docker安装rabbitmq并配置hyperf使用
|
7天前
|
Oracle 关系型数据库 MySQL
linux安装及卸载mysql
在Linux上安装MySQL客户端涉及添加RPM源,运行`yum install mysql-community-client.x86_64 -y`。忘记密码时,编辑`/etc/my.cnf`,添加`skip-grant-tables`,重启MySQL,然后登录修改密码。卸载MySQL需停服,用`rpm -ev`逐个卸载相关组件,删除文件夹,并验证是否卸载干净。重新安装客户端可使用`rpm -ivh`命令。
55 8
|
16天前
|
Web App开发 安全 Linux
Linux系统之安装Firefox浏览器
【7月更文挑战第8天】Linux系统之安装Firefox浏览器
46 8
|
14天前
|
消息中间件 Windows
win10 安装RabbitMQ的步骤--和报错解决
win10 安装RabbitMQ的步骤--和报错解决
21 4
|
18天前
|
存储 Ubuntu Java
【Linux】已解决:Ubuntu虚拟机安装Java/JDK
【Linux】已解决:Ubuntu虚拟机安装Java/JDK
25 1
|
2天前
|
安全 Linux 数据安全/隐私保护
入职必会-开发环境搭建33-VMWare虚拟机安装Linux系统
CentOS(Community ENTerprise Operating System)是一个基于Linux的开源操作系统,它是由社区志愿者团队从Red Hat Enterprise Linux(RHEL)源代码重新编译而成。CentOS致力于提供一个稳定、可靠且免费的企业级Linux发行版,适用于服务器和工作站环境。
|
12天前
|
缓存 Linux 测试技术
安装【银河麒麟V10】linux系统--并挂载镜像12
【7月更文挑战第12天】安装【银河麒麟V10】linux系统--并挂载镜像
65 0
|
15天前
|
Ubuntu 安全 Linux
Linux系统之安装Ninvaders太空入侵者小游戏
【7月更文挑战第9天】Linux系统之安装Ninvaders太空入侵者小游戏
21 0
|
21天前
|
存储 Linux
Linux文件的上和下,FinalShell文件右键可下文件,先选择root文件夹,然后把他文件往里面拖动,就可以下载了,命令下载,ls -l可以看当前文件目录,sz 文件名可下载,tab补,rz出上
Linux文件的上和下,FinalShell文件右键可下文件,先选择root文件夹,然后把他文件往里面拖动,就可以下载了,命令下载,ls -l可以看当前文件目录,sz 文件名可下载,tab补,rz出上
|
21天前
|
关系型数据库 MySQL Linux
Linux部署实战前言,MySQL在CentOS安装【单机软件】,MySQL的安装需要root权限,yum install mysql,systemctl enable mysqld开机自启的意思
Linux部署实战前言,MySQL在CentOS安装【单机软件】,MySQL的安装需要root权限,yum install mysql,systemctl enable mysqld开机自启的意思