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