美文网首页
CentOS 安装最新 RabbitMQ

CentOS 安装最新 RabbitMQ

作者: Rinaloving | 来源:发表于2023-03-09 09:10 被阅读0次

CentOS 7 安装 RabbitMQ

什么是RabbitMQ

RabbitMQ就是当前最主流的消息中间件之一。RabbitMQ是一个开源的AMQP实现,服务器端用Erlang语言编写,支持多种客户端,如:Python、Ruby、.NET、Java、JMS、C、PHP、ActionScript、XMPP、STOMP等,支持AJAX。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。

安装 RabbitMQ

  1. 下载 Erlang 并安装
    • Erlang 官网

    • 下载地址

    • 我们这里下载安装包安装(otp_src_25.2.3.tar.gz)


      QQ截图20230228110718.png
    • 上传到 服务器 (首先要安装 yum install lrzsz),并安装

      • 上传文件(我是放在 /usr/local/ 目录下的)
         r z  
        
      QQ截图20230228111655.png
      • 解压文件
        tar -zvxf otp_src_25.2.3.tar.gz 
        
      • 安装
        # 进入程序目录
        cd otp_src_25.2.3/
        # 这里要新建一个erlang文件夹,因为erlang编译安装默认是装在/usr/local下的bin和lib中,这里我们将他统一装到/usr/local/erlang中,方便查找和使用。
        mkdir -p /usr/local/erlang
        # 在编译之前,必须安装以下依赖包
        yum install -y make gcc gcc-c++ m4 openssl openssl-devel ncurses-devel unixODBC unixODBC-devel java java-devel
        ./configure --prefix=/usr/local/erlang
        
    • 报错 WARNING: No OpenGL headers found, wx will NOT be usable


      QQ截图20230228115315.png
    • 不影响正常编译,直接编译

      make && make  install #进行编译安装
    
    • 添加环境变量
         vim /etc/profile
         #########   添加如下内容   ###############
         PATH=$PATH:/usr/local/erlang/bin
         ########################################
    
         source /etc/profile</pre>
    
  2. 安装 RabbitMQ
    QQ截图20230228133423.png
    • rabbitmq-server-generic-unix-3.11.9.tar.xz ,(上传,解压)

      • 解压这个文件需要安装 xz

        yum install xz
        
      • 解压

         tar -xvf rabbitmq-server-generic-unix-3.11.9.tar.xz -C /usr/local/
        
      • 添加环境变量

         # 添加环境变量
         vim /etc/profile
         ------  添加如下内容  ------
         PATH=$PATH:/usr/local/rabbitmq_server-3.11.9/sbin
        
         # 重载一下环境变量
         source /etc/profile
        
         # 添加web管理插件
         rabbitmq-plugins enable rabbitmq_management
        
      • 启动服务(3.11.9版本也不像网上说的要配置配置文件)

        rabbitmq-server -detached
        
      • 查看启动状态

        rabbitmqctl status
        
      • 因为我们部署在阿里云(所以要开通端口)

        QQ截图20230228150019.png
        QQ截图20230228151417.png
      • 访问页面(http://106...1*9:15672/)

      QQ截图20230228151446.png
      • 如果服务器防火墙开着,就要开启对应端口,否则也会导致无法访问
        # 开放端口
        firewall-cmd --add-port=15672/tcp --permanent
        firewall-cmd --reload</pre>
        

设置 RabbitMQ 开机自启动

  1. 设置自启动
    • 在/etc/init.d 目录下新建一个 rabbitmq

       vi rabbitmq
      
    • 填入以下内容

      • 版本一(启动可以,自启动不行)
        #!/bin/bash
        #
        # chkconfig: 2345 80 05
        # description: rabbitmq 
        # processname: rabbitmq
      
        #RabbitMQ安装目录
        RABBITMQ_HOME=/usr/local/rabbitmq_server-3.11.9
        export RABBITMQ_HOME
      
        case "$1" in
         start)
         echo "Starting RabbitMQ ..."
         cd $RABBIT_HOME/sbin
         rabbitmq-server -detached
         ;;
        stop)
         echo "Stopping RabbitMQ ..."
         cd $RABBIT_HOME/sbin
         rabbitmqctl stop
         ;;
        status)
         echo "Status RabbitMQ ..."
         cd $RABBIT_HOME/sbin
         rabbitmqctl status
         ;;
        restart)
         echo "Restarting RabbitMQ ..."
         cd $RABBIT_HOME/sbin
         rabbitmq-server -detached
         ;;
      
        *)
         echo "Usage: $prog {start|stop|status|restart}"
         ;;
        esac
        exit 0</pre>
      
      • 版本二(这个是可以的)
        #!/bin/bash
        #chkconfig:2345 61 61
        
        export HOME=/usr/local/rabbitmq_server-3.11.9/
        export PATH=$PATH:/usr/local/erlang/bin
        export PATH=$PATH:/usr/local/rabbitmq_server-3.11.9/sbin
        
        case "$1" in
         start)
         echo "Starting RabbitMQ ..."
         rabbitmq-server  -detached
         ;;
        stop)
         echo "Stopping RabbitMQ ..."
         rabbitmqctl stop
         ;;
        status)
         echo "Status RabbitMQ ..."
         rabbitmqctl status
         ;;
        restart)
         echo "Restarting RabbitMQ ..."
         rabbitmqctl stop
         rabbitmq-server  restart
         ;;
        
        *)
         echo "Usage: $prog {start|stop|status|restart}"
         ;;
        esac
        exit 0</pre>
        
      • 参考文档
    • 设置步骤

      • 对 rabbitmq 授予可执行权限
         chmod -R 777 rabbitmq 
        
      • 添加 rabbitmq 服务到系统服务中
        chkconfig --add rabbitmq 
        
      • 设置自启动
         chkconfig rabbitmq on
        
      • 查看自启动项是否设置成功
        chkconfig --list rabbitmq 
        
      • 开启 rabbit 服务
        ./rabbitmq start
        
    • 设置详情

        [root@iZuf6h4mzg64z054s6q08qZ init.d]# chmod -R 777 rabbitmq 
        [root@iZuf6h4mzg64z054s6q08qZ init.d]# chkconfig --add rabbitmq 
        [root@iZuf6h4mzg64z054s6q08qZ init.d]# chkconfig rabbitmq on
        [root@iZuf6h4mzg64z054s6q08qZ init.d]# chkconfig --list rabbitmq 
    
        Note: This output shows SysV services only and does not include native
    systemd services. SysV configuration data might be overridden by native
    systemd configuration.
    
    If you want to list systemd services use 'systemctl list-unit-files'.
    To see services enabled on particular target use
    'systemctl list-dependencies [target]'.
    
      rabbitmq        0:off   1:off   2:on    3:on    4:on    5:on    6:off
       [root@iZuf6h4mzg64z054s6q08qZ init.d]# ./rabbitmq start
       Starting RabbitMQ ...
     2023-02-28 15:41:33.352670+08:00 [notice] <0.44.0> Application syslog exited with reason: stopped
     2023-02-28 15:41:33.356711+08:00 [notice] <0.230.0> Logging: switching to configured handler(s);                   
    following messages may not be visible in this log output
    
        ##  ##      RabbitMQ 3.11.9
       ##  ##
       ##########  Copyright (c) 2007-2023 VMware, Inc. or its affiliates.
       ######  ##
       ##########  Licensed under the MPL 2.0. Website: https://rabbitmq.com
    
         Erlang:      25.2.3 [emu]
       TLS Library: OpenSSL - OpenSSL 1.0.2k-fips  26 Jan 2017
       Release series support status: supported
    
       Doc guides:  https://rabbitmq.com/documentation.html
       Support:     https://rabbitmq.com/contact.html
       Tutorials:   https://rabbitmq.com/getstarted.html
       Monitoring:  https://rabbitmq.com/monitoring.html
    
     Logs: /usr/local/rabbitmq_server-3.11.9/var/log/rabbitmq/rabbit@iZuf6h4mzg64z054s6q08qZ.log
     /usr/local/rabbitmq_server-3.11.9/var/log/rabbitmq/rabbit@iZuf6h4mzg64z054s6q08qZ_upgrade.log
     <stdout>
    
     Config file(s): (none)
    
     Starting broker... completed with 3 plugins.
    
    • 重启服务器,自启动成功


      QQ截图20230228162433.png

登录设置 RabbitMQ

  1. 登录 RabbitMQ
    • 使用默认的用户 guest / guest (此也为管理员用户)登陆,会发现无法登陆,报错:User can only log in via localhost。那是因为默认是限制了guest用户只能在本机登陆,也就是只能登陆localhost:15672
    QQ截图20230228162816.png
    • 可以通过修改配置文件rabbitmq.conf,取消这个限制: loopback_users这个项就是控制访问的,如果只是取消guest用户的话,只需要loopback_users.guest = false即可(这是网上的方法,我安装的是当前最新的版本,根本没有这个配置文件

    • 那去官网溜达一下,找到到如下一段话(官网地址

      QQ截图20230228170133.png
    • 我们去 /usr/local/rabbitmq_server-3.11.9/etc/rabbitmq/ 新建一个 rabbitmq.conf 文件,内容就把官网的一小段复制上去

     # DANGER ZONE!
     #
     # allowing remote connections for default user is highly discouraged
     # as it dramatically decreases the security of the system. Delete the user
     # instead and create a new one with generated secure credentials.
     loopback_users = none
    
     ```
    
    
    
QQ截图20230228170540.png QQ截图20230228170649.png
  • 我们再用 guest 去登陆一下,完美登录


    QQ截图20230228170755.png

RabbitMQ 常用指令

  1. 常用指令说明
    • 见下表

      命令 说明 备注
      rabbitmq-server -detached 启动 rabbitmq
      rabbitmqctl status 查看启动状态
      chkconfig rabbitmq-server on 开机自启
      rabbitmqctl stop 停止
      rabbitmqctl list_users 查看角色
      rabbitmq-plugins enable rabbitmq_management 开启Web端监控
      rabbitmq-plugins list 查看插件
      rabbitmqctl add_user jack 123456 创建jack用户 密码123456
      rabbitmqctl set_user_tags jack administrator 设置jack用户为管理员角色
      rabbitmqctl set_permissions -p / jack '.' '.' '.*' 设置jack角色所有权限

相关文章

网友评论

      本文标题:CentOS 安装最新 RabbitMQ

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