美文网首页Java 杂谈Java程序员
RabbitMQ 的下载与安装(CentOS 7)

RabbitMQ 的下载与安装(CentOS 7)

作者: JavaEdge | 来源:发表于2019-03-17 11:42 被阅读2次

    0 文件及版本

    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官网文档以及其他资料后找到了该问题的原因,遂总结如下。

    今天前端反映rabbitmq的web控制台使用默认账户guest登录失败——login failed。在查阅了rabbitmq官网文档以及其他资料后找到了该问题的原因,遂总结如下。

    问题背景

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

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

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

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

    今天前端反映rabbitmq的web控制台使用默认账户guest登录失败——login failed。在查阅了rabbitmq官网文档以及其他资料后找到了该问题的原因,遂总结如下。

    1.问题背景
    首先,rabbitmq的默认账户和密码都是guest,安装完rabbitmq之后可以使用guest/guest登录。

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

    一种是本地登陆(即在rabbitmq安装的机器上登陆——地址栏输入http://localhost:15672);
    另一种是远程登陆(即在其他机器上通过指定IP地址登陆——地址栏输入http://<ip>:15672)。
    但是,在rabbitmq3.3.0之后,出于安全性考虑,默认情况下rabbitmq的guest/guest账户将不能实现远程登陆,只能在本地登陆。

    解决方法

    在上面的问题背景下,若想实现成功的远程登陆到rabbitmq控制台上有以下3种方法。

    新建一个用户

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

    • 新增用户
    $ rabbitmqctl add_user Username  Password
    
    • 设定用户administrator角色
      用户角色可以分为超级管理员administrator、监控者monitoring、策略制定者policymaker、普通管理者management等
    $ rabbitmqctl set_user_tags <用户名> administrator
    

    3)赋予用户权限
    $ rabbitmqctl set_permission -p / <用户名> “.” “.” “.*”

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

    此时,就可以通过你添加的新用户/密码来进行rabbitmq的远程登陆了。然而,这个方法并没有解决guest无法登陆的本质问题。

    相关文章

      网友评论

        本文标题:RabbitMQ 的下载与安装(CentOS 7)

        本文链接:https://www.haomeiwen.com/subject/kooymqtx.html