首页 > 技术文章 > RabbitMQ部署

pzb-shadow 2020-04-15 11:03 原文

RabbitMQ部署

下载安装包地址:https://www.rabbitmq.com/releases/rabbitmq-server/
[root@rabbitmq ~]# ll 
-rw-r--r--  1 root  root   87768737 Apr 14 15:53 otp_src_22.2.tar.gz
-rw-r--r--  1 root  root   11642480 Apr 14 15:53 rabbitmq-server-generic-unix-3.8.2.tar.xz
安装依赖包
[root@rabbitmq ~]# yum -y install make gcc gcc-c++ kernel-devel m4ncurses-devel openssl-devel unixODBC-devel zlib-devel ncurses-devel
解压otp_src_22.2.tar.gz,并编译安装
[root@rabbitmq ~]# tar -xf otp_src_22.2.tar.gz && cd otp_src_22.2
[root@rabbitmq otp_src_22.2]# ./configure --prefix=/data/erlang --without-javac 
[root@rabbitmq otp_src_22.2]# make && make install
[root@rabbitmq otp_src_22.2]# cd ../
解压rabbitmq-server-generic-unix-3.8.2.tar.xz,并改名
[root@rabbitmq ~]# tar -xf rabbitmq-server-generic-unix-3.8.2.tar.xz
[root@rabbitmq ~]# mv rabbitmq_server-3.8.2 rabbitmq
写入环境变量,添加如下两行
[root@rabbitmq ~]# vim ~/.bash_profile
  export PATH=$PATH:/data/erlang/bin
  export PATH=$PATH:/data/rabbitmq/sbin
刷新环境变量
[root@rabbitmq ~]# source ~/.bash_profile
在后台运行rabbitmq-server
[root@rabbitmq ~]# rabbitmq-server &
  ##  ##      RabbitMQ 3.8.2
  ##  ##
  ##########  Copyright (c) 2007-2019 Pivotal Software, Inc.
  ######  ##
  ##########  Licensed under the MPL 1.1. Website: https://rabbitmq.com

  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: /data/rabbitmq/var/log/rabbitmq/rabbit@rabbitmq.log
        /data/rabbitmq/var/log/rabbitmq/rabbit@rabbitmq_upgrade.log

  Config file(s): (none)

  Starting broker... completed with 3 plugins.
通过指令查看插件是否启动
[root@rabbitmq ~]# rabbitmq-plugins list
Listing plugins with pattern ".*" ...
 Configured: E = explicitly enabled; e = implicitly enabled
 | Status: * = running on rabbit@zlxt-redis-82
 |/
[  ] rabbitmq_amqp1_0                  3.8.2
[  ] rabbitmq_auth_backend_cache       3.8.2
[  ] rabbitmq_auth_backend_http        3.8.2
[  ] rabbitmq_auth_backend_ldap        3.8.2
[  ] rabbitmq_auth_backend_oauth2      3.8.2
[  ] rabbitmq_auth_mechanism_ssl       3.8.2
[  ] rabbitmq_consistent_hash_exchange 3.8.2
[  ] rabbitmq_event_exchange           3.8.2
[  ] rabbitmq_federation               3.8.2
[  ] rabbitmq_federation_management    3.8.2
[  ] rabbitmq_jms_topic_exchange       3.8.2
[E*] rabbitmq_management               3.8.2   #必须启动
[e*] rabbitmq_management_agent         3.8.2  #必须启动
[  ] rabbitmq_mqtt                     3.8.2
[  ] rabbitmq_peer_discovery_aws       3.8.2
[  ] rabbitmq_peer_discovery_common    3.8.2
[  ] rabbitmq_peer_discovery_consul    3.8.2
[  ] rabbitmq_peer_discovery_etcd      3.8.2
[  ] rabbitmq_peer_discovery_k8s       3.8.2
[  ] rabbitmq_prometheus               3.8.2
[  ] rabbitmq_random_exchange          3.8.2
[  ] rabbitmq_recent_history_exchange  3.8.2
[  ] rabbitmq_sharding                 3.8.2
[  ] rabbitmq_shovel                   3.8.2
[  ] rabbitmq_shovel_management        3.8.2
[  ] rabbitmq_stomp                    3.8.2
[  ] rabbitmq_top                      3.8.2
[  ] rabbitmq_tracing                  3.8.2
[  ] rabbitmq_trust_store              3.8.2
[e*] rabbitmq_web_dispatch             3.8.2  #必须启动
[  ] rabbitmq_web_mqtt                 3.8.2
[  ] rabbitmq_web_mqtt_examples        3.8.2
[  ] rabbitmq_web_stomp                3.8.2
[  ] rabbitmq_web_stomp_examples       3.8.2
如果三个插件前面没有e*或者E*,则输入如下两个指令,让rabbitmq加载插件
[root@rabbitmq ~]# rabbitmq-plugins enable rabbitmq_management
[root@rabbitmq ~]# rabbitmqctl start_app
查看端口是否都启动:5672、15672、25672
[root@rabbitmq ~]# netstat -plnt
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name                      
tcp        0      0 0.0.0.0:4369            0.0.0.0:*               LISTEN      113593/epmd         
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      -                   
tcp        0      0 0.0.0.0:15672           0.0.0.0:*               LISTEN      126511/beam.smp     
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      -                   
tcp        0      0 132.120.203.82:16380    0.0.0.0:*               LISTEN      6010/redis-server 1 
tcp        0      0 0.0.0.0:25672           0.0.0.0:*               LISTEN      126511/beam.smp                       
tcp6       0      0 :::4369                 :::*                    LISTEN      113593/epmd                          
tcp6       0      0 :::22                   :::*                    LISTEN      -                                    
tcp6       0      0 :::5672                 :::*                    LISTEN      126511/beam.smp
防火墙放行端口,将mq的tcp监听端口和网页管理端口都设置成允许远程访问(如果未开启防火墙不用设置)
[root@rabbitmq ~]# firewall-cmd --permanent --add-port=15672/tcp
[root@rabbitmq ~]# firewall-cmd --permanent --add-port=5672/tcp
[root@rabbitmq ~]# systemctl restart firewalld.service
通过IP:15672访问rabbitmq页面

 

创建rabbitmq用户,创建的新用户默认角色为空
rabbitmqctl add_user username passwd  //添加用户,后面两个参数分别是用户名和密码
rabbitmqctl set_permissions -p / username ".*" ".*" ".*"  //添加权限
rabbitmqctl set_user_tags username administrator  //修改用户角色,将用户设为管理员

用户角色说明:
management:用户可以访问管理插件
policymaker:用户可以访问管理插件,并管理他们有权访问的vhost的策略和参数。
monitoring:用户可以访问管理插件,查看所有连接和通道以及与节点相关的信息。
administrator:用户可以做任何监视可以做的事情,管理用户,vhost和权限,关闭其他用户的连接,并管理所有vhost的政策和参数。

用户命令管理汇总:
新建用户:rabbitmqctl add_user username passwd
删除用户:rabbitmqctl delete_user username
改密码: rabbimqctl change_password {username} {newpassword}
设置用户角色:rabbitmqctl set_user_tags {username} {tag ...}

权限说明:
rabbitmqctl set_permissions [-pvhostpath] {user} {conf} {write} {read}
Vhostpath:虚拟主机,表示该用户可以访问那台虚拟主机;
user:用户名。
Conf:一个正则表达式match哪些配置资源能够被该用户访问。
Write:一个正则表达式match哪些配置资源能够被该用户设置。
Read:一个正则表达式match哪些配置资源能够被该用户访问。
管理界面介绍:
# 输入用户名密码登录后进入主界面
Overview:用来显示流量,端口,节点等信息,以及修改配置文件;
Connections:显示所有的TCP连接;
channels:显示所有的信道连接;
exchanges:显示所有的交换机以及创建删除等;
queues:显示所有的队列以及创建删除等;
admins:显示所有的用户以及用户管理;
虚拟主机:
# 创建一个虚拟主机
rabbitmqctl add_vhost vhost_name
# 删除一个虚拟主机
rabbitmqctl delete_vhost vhost_name
常用文件路径:
/data/rabbitmq/var/log/rabbitmq/rabbit@tms.log:记录rabbitmq运行日常的日志
/data/rabbitmq/var/log/rabbitmq/rabbit@tms-sasl.log:rabbitmq的崩溃报告
/data/rabbitmq/etc/rabbitmq/rabbitmq.config:rabbitmq的配置文件
/data/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@tms:rabbit消息持久化文件

  参考链接:https://www.cnblogs.com/cwp-bg/p/10070467.html

 

推荐阅读