Centos7 安装配置 RabbitMQ3.6

Centos7 安装配置 RabbitMQ3.6

$$ zero,说明:

0,参考:https://www.linuxidc.com/Linux/2016-03/129557.htm

也可以参考 :RabbitMQ教程(安装与使用详解,Spring集成)_鸟哥哥的专栏-CSDN博客_rabbitmq教程    比较详细

1,   前言:网上安装只有安装成功的例子,错误的例子解决方案要自己找(也能提高自己)

2,这里是我安装的实例

3,安装的东西是崭新的

4,很多人喜欢将下载的软件保存到 /usr/local/webserver/中(目前流行的)

不过,我喜欢放在 家目录中( pwd ==> /root ),方便自己观看与删除软件安装包

通常软件安装在 /usr/local/ 下(目前流行的,在该目录下新建文件夹安装 如:/usr/local/php )

5, 这是 yum 源码包 安装。 网上有 rpm包安装,请参考  https://blog.csdn.net/zhaogangyyxf/article/details/79614464

一,erlang安装

1、在安装erlang之前先安装下依赖文件(这一步不要忘掉了, 不然后面./configure的时候要报错):

 [root@localhost ~]# yum install gcc glibc-devel make ncurses-devel openssl-devel xmlto

 [root@localhost ~]# yum install yum install setroubleshoot -y

 [root@localhost ~]# yum install socat

  2、到erlang官网去下载erlang安装包

   官网地址: http://www.erlang.org/downloads

 [root@localhost ~]# wget -c http://erlang.org/download/otp_src_21.0.tar.gz

 [root@localhost ~]# tar -zxvf otp_src_21.0.tar.gz

 [root@localhost ~]# cd otp_src_21.0/

3、编译安装( 我这里指定编译安装后放在/usr/local/erlang目录里面,这个你们可以改成其他的 ):

 [root@localhost ~]# otp_src_21.0]# mkdir /usr/local/erlang

 [root@localhost ~]# otp_src_21.0]# ./configure --prefix=/usr/local/erlang

 [root@localhost ~]# otp_src_21.0]# make && make install

  4、测试安装是否成功:

 [root@localhost ~]# cd /usr/local/erlang/bin/ 

 [root@localhost bin]# ./erl

若出现以下界面,则说明我们erlang配置OK了    

  输入【 halt(). 】 退出控制台

 > halt().

【 或者 】 : 使用下面的测试 erlang 是否安装成功:

注意 erl 要可以使用( vim /etc/profile ==> 在末尾加入这么一行即可:export PATH=$PATH:/usr/local/erlang/bin ==> source /etc/profile ==> 配置全局环境变量):

    [root@localhost ~]# erl -version

二、安装rabbitmq

  1、到官网下载最新安装包:http://www.rabbitmq.com/releases/rabbitmq-server/

[root@localhost ~]# cd usr/local   #  rabbitmq 不用编译安装,解压到 usr/local/下 即可

[root@localhost local]# wget -c http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.15/rabbitmq-server-generic-unix-3.6.15.tar.xz

一般下载慢,可以在Windows10上直接下载(  erlang 同理,只不过安装包要对应好安装的系统  )可以使用  xshell  与 xftp 

解压:

[root@localhost local]# xz -d rabbitmq-server-generic-unix-3.6.15.tar.xz 

[root@localhost local]# tar -xvf rabbitmq-server-generic-unix-3.6.15.tar

[root@localhost local]# rm -rf rabbitmq-server-generic-unix-3.6.15.tar      # 删除 rabbitmq 安装包

[root@localhost local]# mv rabbitmq-server-generic-unix-3.6.15  rabbitmq   # mv 在同一个目录下是重命名,不同目录下是拷贝

2、配置rabbitmq的环境变量(这个跟上面的erlang配置以及java的环境变量差不多)

 [root@localhost ~]# vim /etc/profile

 在末尾加入以下配置:export PATH=$PATH:/usr/local/rabbitmq/sbin

                   export PATH=$PATH:/usr/local/erlang/bin

 更新配置文件:[root@localhost ~]# source /etc/profile

三,使用:

1,运行RabbitMQ需要首先开放15672和5672端口:

参数介绍:

@1、 firwall-cmd:是Linux提供的操作firewall的一个工具;       

@2、--permanent:表示设置为持久;

@3、--add-port:标识添加的端口;

 [root@localhost ~]# firewall-cmd --zone=public --add-port=15672/tcp --permanent # 不加 --permanent  是临时修改
 [root@localhost ~]# firewall-cmd --zone=public --add-port=5672/tcp --permanent
 [root@localhost ~]# firewall-cmd --reload   #  重载生效刚才的端口设置
  1. centos7     建议使用  iptables    (  我是关闭了   firewall    后使用的)

  2. iptables -I INPUT -p tcp --dport 5672 -j ACCEPT

  3. iptables -I INPUT -p tcp --dport 15672 -j ACCEPT

执行命令:service iptables save
规则自动保存到了/etc/sysconfig/iptables,用此命令保存的规则开机会自动生效。

 

rabbitmq启动失败(BOOT FAILED)_pansanday的专栏-CSDN博客_boot failed rabbitmq           erlang安装不对   yum  install erlang

rabbitmq-server

              RabbitMQ 3.6.6. Copyright (C) 2007-2016 Pivotal Software, Inc.
  ##  ##      Licensed under the MPL.  See http://www.rabbitmq.com/
  ##  ##
  ##########  Logs: /Applications/Coding/rabbitmq/var/log/rabbitmq/rabbit@newbie.log
  ######  ##        /Applications/Coding/rabbitmq/var/log/rabbitmq/rabbit@newbie-sasl.log
  ##########
              Starting broker...


BOOT FAILED
===========

Error description:
   {could_not_start,rabbit,
       {undef,
           [{crypto,module_info,[attributes],[]},
            {rabbit_misc,module_attributes,1,
                [{file,"src/rabbit_misc.erl"},{line,798}]},
            {rabbit_misc,'-all_module_attributes/1-fun-0-',3,
                [{file,"src/rabbit_misc.erl"},{line,818}]},
            {lists,foldl,3,[{file,"lists.erl"},{line,1261}]},
            {rabbit_boot_steps,find_steps,1,
                [{file,"src/rabbit_boot_steps.erl"},{line,40}]},
            {rabbit_boot_steps,run_boot_steps,1,
                [{file,"src/rabbit_boot_steps.erl"},{line,26}]},
            {rabbit,start,2,[{file,"src/rabbit.erl"},{line,687}]},
            {application_master,start_it_old,4,
                [{file,"application_master.erl"},{line,272}]}]}}

Log files (may contain more information):
   /Applications/Coding/rabbitmq/var/log/rabbitmq/rabbit@newbie.log
   /Applications/Coding/rabbitmq/var/log/rabbitmq/rabbit@newbie-sasl.log

{"init terminating in do_boot",{could_not_start,rabbit,{undef,[{crypto,module_info,[attributes],[]},{rabbit_misc,module_attributes,1,[{file,"src/rabbit_misc.erl"},{line,798}]},{rabbit_misc,'-all_module_attributes/1-fun-0-',3,[{file,"src/rabbit_misc.erl"},{line,818}]},{lists,foldl,3,[{file,"lists.erl"},{line,1261}]},{rabbit_boot_steps,find_steps,1,[{file,"src/rabbit_boot_steps.erl"},{line,40}]},{rabbit_boot_steps,run_boot_steps,1,[{file,"src/rabbit_boot_steps.erl"},{line,26}]},{rabbit,start,2,[{file,"src/rabbit.erl"},{line,687}]},{application_master,start_it_old,4,[{file,"application_master.erl"},{line,272}]}]}}}

Crash dump was written to: erl_crash.dump
init terminating in do_boot ()
折腾一番, 发现是erlang没有装好, 之前重新安装过homebrew, 怀疑是之前被我卸载掉了
重新安装erlang

$ yum  install erlang
 

 
  • # 下载源码包

  • wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.7.8/rabbitmq-server-generic-unix-3.7.8.tar.xz

  • # 解压

  • tar -xvf rabbitmq-server-generic-unix-3.7.8.tar.xz -C /usr/local/

  • # 添加环境变量

  • vim /etc/profile

  • ------ 添加如下内容 ------

  • PATH=$PATH:/usr/local/rabbitmq_server-3.7.8/sbin

  • # 重载一下环境变量

  • source /etc/profile

  • # 添加web管理插件

  • rabbitmq-plugins enable rabbitmq_management

2,rabbitmq的基本操作:

    启动:rabbitmq-server -detached

    关闭:rabbitmqctl stop

    查看状态:rabbitmqctl status

&1, 启动使用:

   [root@localhost ~]# rabbitmq-plugins enable rabbitmq_management  # 配置 web界面

   [root@localhost ~]# rabbitmq-server    # 或者 rabbitmq-server -detached  或者 
    
                                            rabbitmqctl stop   ==>  rabbitmq-server

&2,访问管理页面:http://192.168.?.?:15672 端口默认为15672

&3,默认来宾用户:guest, 来宾用户密码:guest

3,开启rabbitmq远程访问

    添加用户:rabbitmqctl add_user admin 123456  // ad是用户名,admin123是用户密码

    添加权限:rabbitmqctl set_permissions -p "/" admin "." "." ".*"

    修改用户角色:rabbitmqctl set_user_tags admin administrator

    然后就可以远程访问了,然后可直接配置用户权限等信息

  4、rabbitmq常用命令

    add_user

    delete_user

    change_password

    list_users

    add_vhost

    delete_vhost

    listvhostssetpermissions [-p ]

    clear_permissions [-p ]

    list_permissions [-p ]

    listuserpermissions

    list_queues [-p ] [ ...]

    list_exchanges [-p ] [ ...]

    list_bindings [-p ]

    list_connections [ ...]

四,错误与问题(解决):

1,有时会报启动rabbitmq,提示ERROR: node with name "rabbit" already running on "localhost":

  [root@localhost ~]# rabbitmq-server

  ERROR: node with name "rabbit" already running on "localhost"

semodule -l|grep rabbitmq

ps aux|grep epmd

ps aux|grep erl

错误问题 : ERROR: distribution port 25672 in use on VM_6_21_centos (by non-Erlang process?) :

1,Linux查看端口占用并释放端口:

netstat -apn|grep 端口号   :  netstat -apn|grep  25672

kill -9 PID

查看了一下,25672这个端口,已经被我的Java的应用程序占用。

解决方法:释放端口,重新执行   rabbitmq-server -detached / rabbitmq-server  即可

重启rabbitmq服务 

重启rabbitmq服务通过两个命令来实现:
rabbitmqctl stop :停止rabbitmq
rabbitmq-server restart : 重启rabbitmq

因为rabbitmqctl是没有restart命令的,所以重启rabbitmq服务需要这么两步。

Linux线程JOINABLE与DETACHED的区别  : Linux线程JOINABLE与DETACHED的区别_xiaoluer的专栏-CSDN博客_线程joinable


安装时rabbitmq并未加入系统服务,所以启动时进入安装路径

./rabbitmq-server -detached

或者

sudo rabbitmqctl start_app

此时如果rabbitmq-server stop会无法停止,报节点已经启动

需用   rabbitmqctl  stop_app 停止erlang上的node

查看是否启动成功

rabbitmq-server status
--------------------- 

kill  -9   进程号

rabbitmq-server   或者         rabbitmqctl stop   ==>  rabbitmq-server

2,查看端口号,配置环境变量后(rabbitmq会开机自启动),注意:rpm包安装的要自己设置开机自启动

&& 三种开机自启动的方法

ln -s                    在/etc/rc.d/rc.d目录中建立/etc/init.d/服务的软链接(代表0~6七个运行级别之一)

chkonfig                命令行运行级别设置

ntsysv                   伪图形运行级别设置

全文地址请点击:https://blog.csdn.net/qq32863631/article/details/78631174?utmsource=copy

3,账号密码都是   guest      。 登录rabbitmq报错User can only log in via localhost

 在访问管理界面使用guest用户登录时出现login failed错误。

 到服务器上查询日志显示出现错误的原因是:HTTP access denied: user ‘guest’ - User can only log in via localhost。

解决:

  1,rabbitmq从3.3.0开始禁止使用guest/guest权限通过除localhost外的访问。我的是3.6

  2,如果想使用guest/guest通过远程机器访问,需要在rabbitmq配置文件中(找到/rabbitmq_server-3.6.14/ebin下面的rabbit.app文件)中设置 
  loopback_users为[]。

  3,找到/rabbitmq_server-3.6.15/ebin(我的:/usr/local/rabbitmq/ebin)下面的rabbit.app文件文件完整内容如下(注意后面的半角句号): ,

     [root@localhost ~]# cd /usr/local/rabbitmq/ebin

     [root@localhost ebin]# vim rabbit.app

  4,找到:loopback_users里的<<”guest”>>删除。

      /loopback_users  回车  

  [{rabbit, [{loopback_users, []}]}].

  5,然后重启:

  systemctl restart rabbitmq-server.service  或者    rabbitmqctl stop   ==>  rabbitmq-server

RabbitMQ用户增删及权限控制     RabbitMQ用户增删及权限控制 - 全能程序猿 - 博客园

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值