开发者社区> javaedge> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

Linux环境下 RabbitMQ 的下载与安装

简介: 0 环境 CentOS7 RabbitMQ 3.6.5 erlang 18.3 socat rabbitmq是使用erlang语言编写的,所以需要先安装erlang,其次rabbitmq安装依赖于socat,所以三个安装包都需要下载。
+关注继续查看

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

欢迎star一波~Gayhub

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Linux环境下 RabbitMQ 的下载与安装
Linux环境下 RabbitMQ 的下载与安装
31 0
动画演示10个有趣但毫无用处的Linux命令
原文地址 BY SXWGF ·  JANUARY 7, 2014 Linux最强大的一个特征就是它有大量的各种小命令工具,这也可以称做是它最有趣的一个地方了。在这些大量的有用的命令和脚本中,你会发现有少部分命令工具不那么有用的——如果你不愿意说是完全没用处的话。你要知道,Linux命令终端并不是总来干一些严肃的事情的,这里列举的几个没有实际用处、但很有趣的命令,它们的有趣并不是因为无
1310 0
Linux基本配置和管理 10 ---- Linux下使用dd命令制作ubuntu的u盘启动
 第一步,取得一个ubuntu的iso镜像,假设我当前的ios镜像在/home/chenguolin/***.iso     第二步,插入u盘并查看u盘在当前系统下的代号    第三步,卸载u盘,sudo umount /de...
949 0
查看linux版本命令汇总
一、 查看内核版本命令        cat /proc/version 或 uname -a 或 uname -r 二、查看linux版本      lsb_release -a      cat /etc/issue     cat /etc/redhat-release 或者rpm -q redhat-release (只适合redhat)
853 0
linux/windows环境下mysql数据库启动、停止、重启命令
linux环境下 一、启动 1、使用 service 启动:service mysqld start 2、使用 mysqld 脚本启动:/etc/inint.d/mysqld start 3、使用 safe_mysqld 启动:safe_mysqld& 二、停止 1、使用 service 启动:service mysqld stop 2
2246 0
linux ssh下 vi清空文件内容命令
1、清空一个文件的内容,不仅仅是修改,使用下面的命令即可: 切换到命令行模式 :1,$d 2、vi下显示行号 按Esc切换到命令行模式,输入: :set nu vi里怎样跳转到某一指定行 输入 :行号 然后回车即可
3420 0
linux之screen命令
linux平台下想同时运行多个操作,执行多个程序或命令;命令行就一个,要想同时执行多个命令如何操作? 一个screen命令即可; Centos操作系统默认没有安装screen; 安装方法: Centos: yum install screen 功能介绍:   screen命令用于新建一个或多个“命令行“窗口”, 在新建的这个”窗口“中, 可以执行命令;每个”窗口“都是独立并行的; 使用方法:   新建一个“控制台“窗口”:     screen  -S  控制台窗口名     控制台窗口名是自己定义的;     回车后便进入了这个新建的控制台。
815 0
+关注
javaedge
关注公众号:JavaEdge,后台回复面试,领取更多大厂求职资源。曾在百度、携程、华为等大厂搬砖,专注Java生态各种中间件原理、框架源码、微服务、中台等架构设计及落地实战,只生产硬核干货!
2303
文章
1
问答
来源圈子
更多
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载