Linux环境下 RabbitMQ 的下载与安装

0 环境

CentOS7

RabbitMQ 3.6.5

erlang 18.3

socat

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://<ip>: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的远程登录了

转载于:https://my.oschina.net/JavaEdge/blog/3024304

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在Linux安装RabbitMQ,可以按照以下步骤进行: 1. 首先,需要安装Erlang环境,因为RabbitMQ是基于Erlang语言开发的。可以使用以下命令安装: sudo apt-get install erlang 2. 接着,需要下载RabbitMQ安装包。可以从官网下载最新版本的安装包,也可以使用以下命令下载: wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.8.9/rabbitmq-server-generic-unix-3.8.9.tar.xz 3. 下载完成后,解压缩安装包: tar -xvf rabbitmq-server-generic-unix-3.8.9.tar.xz 4. 进入解压缩后的目录,执行以下命令安装: sudo ./sbin/rabbitmq-server 5. 安装完成后,可以使用以下命令启动RabbitMQ服务: sudo systemctl start rabbitmq-server 6. 如果需要设置RabbitMQ开机自启动,可以使用以下命令: sudo systemctl enable rabbitmq-server 7. 最后,可以使用以下命令检查RabbitMQ服务是否正常运行: sudo systemctl status rabbitmq-server 以上就是在Linux安装RabbitMQ的步骤。 ### 回答2: 要在Linux安装RabbitMQ,首先需要确保系统已安装Erlang/OTP,因为RabbitMQ是使用Erlang编写的。可以使用以下命令安装Erlang/OTP: 1.更新系统软件包列表:sudo apt-get update 2.安装Erlang/OTP:sudo apt-get install erlang 安装Erlang/OTP后,可以按照以下步骤安装RabbitMQ: 1.从RabbitMQ官方网站(https://www.rabbitmq.com/download.html)下载适用于LinuxRabbitMQ安装包。选择适合你Linux发行版本的安装包。 2.将下载的文件复制到你想要安装RabbitMQ的目录。例如,将文件复制到/usr/local/目录。 3.解压缩安装包:sudo tar -zxvf rabbitmq-server-generic-unix-x.x.x.tar.gz (请将"x.x.x"替换为你下载RabbitMQ版本号) 4.重命名解压缩出来的文件夹:sudo mv rabbitmq_server-x.x.x/ rabbitmq 5.将RabbitMQ所在的sbin目录添加到系统的PATH环境变量中:export PATH=$PATH:/usr/local/rabbitmq/sbin 6.执行以下命令,创建RabbitMQ所需的目录:sudo mkdir /var/lib/rabbitmq sudo chown -R rabbitmq:rabbitmq /var/lib/rabbitmq 7.为RabbitMQ创建一个配置文件:sudo nano /etc/rabbitmq/rabbitmq.conf 8.在打开的配置文件中输入以下内容: NODENAME=rabbit@localhost NODE_PORT=5672 CONFIG_FILE=/etc/rabbitmq/rabbitmq CONFIG_FILE_VERSION=2 9.保存并退出配置文件。 10.启动RabbitMQ服务:sudo rabbitmq-server -detached 11.检查RabbitMQ是否成功启动:sudo rabbitmqctl status 如果成功安装和启动RabbitMQ,你应该能看到类似于"{rabbit,\[rabbit@localhost\],\[persistent\_mode\]}\n"的输出。 现在,RabbitMQ已经成功安装在你的Linux系统中,你可以使用它来建立分布式应用程序之间的通信。 ### 回答3: 在Linux安装rabbitmq可以按照以下步骤进行: 1. 首先,确保已经安装Erlang/OTP(Open Telecom Platform),因为RabbitMQ是使用Erlang编写的。可以通过使用以下命令来安装Erlang: ``` sudo apt install erlang ``` 2. 接下来,需要下载安装RabbitMQ包管理系统。可以从RabbitMQ官方网站下载最新版本的软件包。 ``` wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.9.5/rabbitmq-server-3.9.5-1.noarch.rpm ``` 3. 安装RabbitMQ软件包。 ``` sudo rpm -Uvh rabbitmq-server-3.9.5-1.noarch.rpm ``` 4. 启动RabbitMQ服务。 ``` sudo systemctl start rabbitmq-server ``` 5. 验证RabbitMQ服务是否成功启动。 ``` sudo systemctl status rabbitmq-server ``` 如果显示"active (running)",则表示RabbitMQ已经成功安装并且正在运行。 6. 可以通过RabbitMQ的Web图形界面管理工具访问RabbitMQ服务器,默认情况下,它监听在端口15672上。在浏览器中输入`http://localhost:15672`并使用默认的登录凭据(用户名:guest,密码:guest)登录。 以上就是在Linux安装RabbitMQ的简单步骤。在安装完成后,你可以配置RabbitMQ以满足你的特定需,并开始使用它来构建可靠的消息队列系统。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值