天天看点

RabbitMQ管理(3)——Web端管理

前面讲述的都是使用rabbitmqctl工具来管理RabbitMQ,有些时候你是否会觉得这种方式是不是不太友好?而且为能够运行rabbitmqctl工具,当前的用户需要拥有访问Erlang cookie的权限,由于服务器可能是以guest或者rabbit用户身份来运行的,因此你需要获得这些文件的访问权限,这样就引申出来一些权限管理的问题。

RabbitMQ的开发团队也考虑到了这种情况,并且开发了RabbitMQ management插件。RabbitMQ management插件同样是由Erlang语言编写,并且和RabbitMQ服务运行在同一个Erlang虚拟机中。

RabbitMQ management插件可以提供Web管理界面用来管理如前面所述的虚拟主机、用户等,也可以用来管理队列、交换器、绑定关系、策略、参数等,还可以用来监控RabbitMQ服务的状态及一些数据统计类信息,可谓是功能强大,基本上能够涵盖所有RabbitMQ管理的功能。

在使用Web管理界面之前需要先启用RabbitMQ management插件。RabbitMQ提供了很多的插件,默认存放在$RABBITMQ_HOME/plugins路径中,如下所示:

其中以.ez扩展名称结尾的文件就是RabbitMQ的插件,上面文件中的rabbitmq_management-3.6.10.ez就是指RabbitMQ management插件。启动插件的命令不是使用rabbitmqctl工具,而是使用rabbitmq-plugins工具,其语法格式为:rabbitmq-plugins [-n node] {command} [command options…]。启动插件是使用rabbitmq-plugins enable [plugin-name],关闭插件的命令是rabbitmq-plugins disable [plugin-name]。

执行命令rabbitmq-plugins enable rabbitmq_management命令来开启RabbitMQ managmenet插件:

可以通过rabbitmq-plugins list命令来查看当前的插件使用情况,如下所示。其中标记为[E*]的为显示启动,而[e*]为隐式启动,如显示启动rabbitmq_management插件会同时隐式启动amqp_client、cowboy、cowlib、rabbitmq_management_agent、rabbitmq_web_dispatch等另外5个插件。

顺利登录之后,可以看到Web管理的主界面如下图所示。

RabbitMQ管理(3)——Web端管理
RabbitMQ管理(3)——Web端管理

在上图中可以看到当前的用户为guest和root,都被赋予了administator的权限,在页面的下方可以添加用户。点击任意用户可以进入相关的详细页面如下图所示所示。在此页面中可以为用户设置权限和清除权限,也可以删除或者更新用户,更新用户是指更新用户的密码和角色。

RabbitMQ管理(3)——Web端管理
RabbitMQ管理(3)——Web端管理

对于Web管理页面的其他功能,比如创建和删除队列、交换器、绑定关系等操作会在后面的介绍中提及,当然还少不了对于策略的操作。

最后补充一下与开启management插件对应的关闭management插件的命令是:rabbitmq-plugins disable rabbitmq_management,示例参考如下: