RabbitMQ 3.7部署与基本配置教程
系统环境:Centos7
erlang版本:21
RabbitMQ版本:3.7.8
一、下载和安装erlang环境
由于RabbitMQ是erlang语言所开发,所以需要先安装erlang环境。在erlang官方https://www.erlang-solutions.com/resources/download.html可以进行RPM包的下载和安装,不过为了解决依赖关系,推荐安装官方yum仓库(还需要配置下EPEL的yum仓库用于其他包的安装)
wget https://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm
rpm -Uvh erlang-solutions-1.0-1.noarch.rpm
yum install erlang
二、下载和安装rabbitmq
在RabbitMQ官方http://www.rabbitmq.com/install-rpm.html#downloads进行RPM包的下载,然后安装RPM包
yum install rabbitmq-server-3.7.8-1.el7.noarch.rpm
三、开启RabbitMQ的Web插件,以实现通过Web界面管理MQ
rabbitmq-plugins list #查看插件情况
rabbitmq-plugins enable rabbitmq_management rabbitmq_management_agent rabbitmq_web_dispatch #安装插件
四、启动与关闭RabbitMQ服务
RabbitMQ启动后监听在5672端口,而Web端是15672。直接运行rabbitmq-server命令可以让服务在前台启动,并且能看到日志信息等提示,当然更多情况我们都是后台启动的
rabbitmq-server
rabbitmq-server -detached #后台启动
systemctl start rabbitmq-server.service #也可以通过脚本管理服务
rabbitmqctl stop #关闭RabbitMQ服务
五、服务启动后用浏览器访问验证
默认管理账户和密码都是guset,不过这个时候应该会出现User can only log in via localhost 的提示,意思是说这个用户默认只能通过本地登录。修改配置文件可以解除该限制,让RabbitMQ可以远程登录:
vi /etc/rabbitmq/rabbitmq.config #该文件需要自行创建
[{rabbit, [{loopback_users, []}]}]. #增加一行,注意点号要保留
systemctl restart rabbitmq-server.service
六、创建用户与权限
登录Web界面后在admin菜单里可以创建新的管理账户,与使用命令行效果是一样的。主要需要注意的地方就是tags有以下几种:
administrator:超级管理员,什么权限都有
monitoring:可以登录控制台和查看节点信息,比如内存、进程数、磁盘使用等
policymaker:可以登录控制台和制定策略,但是无法查看节点信息
management:仅能登录控制台
其他:无法登录控制台,一般是提供者和消费者
rabbitmqctl add_user admin RABBIT_PASSWORD #创建一个用户,密码请自定义
rabbitmqctl set_permissions admin ".*" ".*" ".*" #给新建的用户配置权限、读权限和写权限
rabbitmqctl set_user_tags admin administrator #用户分组
在用户表格Can access virtual hosts一列中可以看到新创建的用户是no access的,这是说他没有访问虚拟机的权限,这里的虚拟机可以理解为数据库,在右侧找到virtual hosts点击进去可以创建虚拟机和分配权限
七、RabbitMQ的其他管理命令
RabbitMQ队列管理命令,控制队列开始或者停止工作,但是不会杀掉进程
rabbitmqctl start_app #开始队列工作
rabbitmqctl stop_app #停止队列工作
rabbitmqctl add_user USERNAME PASSWORD #创建用户
rabbitmqctl del_user USERNAME #删除用户
rabbitmqctl change_password USERNAME NEWPASSWORD #修改用户密码
rabbitmqctl set_user_tags USERNAME TAGS #设置用户权限
rabbitmqctl set_permissions -p / USERNAME '.*' '.*' '.*' #设置用户允许访问的虚拟机以及权限(数据库)
#命令实例
rabbitmqctl add_user it its123 #创建it用户,密码为its123
rabbitmqctl set_user_tags it administrator #修改it用户权限
rabbitmqctl set_permissions -p / it '.*' '.*' '.*' #设置IT用户可以访问的数据库
八、重构MQ脚本,用于快速恢复服务
#! /bin/bash
rm -rf /var/lib/rabbitmq/mnesia/rabbit* #清空数据
killall -u rabbitmq #关闭进程
rabbitmq-server -detached #重启服务
sleep 10
#重新构建
rabbitmqctl start_app
rabbitmqctl set_vm_memory_high_watermark 0.8
rabbitmqctl add_user it its123
rabbitmqctl set_user_tags it administrator
rabbitmqctl set_permissions -p / it '.*' '.*' '.*'
rabbitmqctl add_user test_user2 aGk123ap2 #用户2
rabbitmqctl set_user_tags test_user2 administrator
rabbitmqctl set_permissions -p / test_user2 '.*' '.*' '.*'
rabbitmqctl add_user test_user3 opsjasgasg #用户3
rabbitmqctl set_user_tags test_user3 administrator
rabbitmqctl set_permissions -p / test_user3 '.*' '.*' '.*'
评论