前面章节介绍了怎样使用 rabbitmqctl 命令行工具来管理 RabbitMQ,除了 rabbitmqctl 工具外,RabbitMQ 还提供了一个 Web 端管理页面 “rabbitmq_management” 插件,默认情况下该插件没有启用。
rabbitmq_management 插件可以提供 Web 管理界面用来管理虚拟机(vhost)、用户、队列、交换器、绑定关系、策略等等。还可以用来监控 RabbitMQ 服务的状态及一些数据统计类信息,可谓是功能强大,基本上能够涵盖所有 RabbitMQ 管理的功能。
在使用 Web 管理界面之前需要先启用 rabbitmq_management 插件,RabbitMQ 提供了很的插件,默认存放在 $RABBITMQ_HOME/plugins 目录下,如下图:
上图中,每一个目录就是一个 RabbitMQ 插件,如:accept-0.3.5 插件,该目录内容如下:
├─ebin │ accept.app │ accept_encoding_header.beam │ accept_header.beam │ accept_neg.beam │ accept_parser.beam │ └─include accept.hrl
上面的 .beam 就是 Erlang 编译后生成的可执行文件。.hrl 是 Erlang 的头文件,它可以包含任何合法的 Erlang 代码,但通常里面只包含一些记录和宏的定义。
RabbitMQ 中启动插件使用 rabbitmq-plugins 命令,其语法格式为:
rabbitmq-plugins [--node <node>] [--timeout <timeout>] [--longnames] [--quiet] <command> [<command options>]
参数说明:
--node:默认节点是“rabbit@target-hostname”,其中 target-hostname 是本地主机。 在名为“myserver.example.com”的主机上,节点名称通常为“rabbit@myserver”(除非 RABBITMQ_NODENAME 已被覆盖)。 “hostname -s”的输出通常是在“@”符号之后使用的正确后缀。
-q 或 --quiet:选择安静输出模式。当安静模式生效时,信息性消息会减少。
-s, --silent:选择静音输出模式。当静默模式生效时,信息性消息会减少并且表头会被抑制。
-t timeout, --timeout timeout:以秒为单位的操作超时。并非所有命令都支持超时。默认为无穷大。
-l, --longnames:当集群配置为使用长 (FQDN) 节点名称时必须指定。
--erlang-cookie cookie:用于对目标节点进行身份验证的共享密钥。首选使用本地文件或 RABBITMQ_ERLANG_COOKIE 环境变量,而不是在命令行上指定此选项。
启动插件使用 rabbitmq-plugins enable [plugin-name] 命令,例如:启动 rabbitmq_management 插件:
D:\server\rabbitmq_server-3.9.11\sbin> rabbitmq-plugins enable rabbitmq_management Enabling plugins on node rabbit@hxstrive: rabbitmq_management The following plugins have been configured: rabbitmq_management rabbitmq_management_agent rabbitmq_web_dispatch Applying plugin configuration to rabbit@hxstrive... The following plugins have been enabled: rabbitmq_management rabbitmq_management_agent rabbitmq_web_dispatch set 3 plugins. Offline change; changes will take effect at broker restart.
停用插件使用 rabbitmq-plugins disable [plugin-name] 命令,例如:停用 rabbitmq_management 插件:
D:\server\rabbitmq_server-3.9.11\sbin> rabbitmq-plugins disable rabbitmq_management Disabling plugins on node rabbit@hxstrive: rabbitmq_management All plugins have been disabled. Applying plugin configuration to rabbit@hxstrive... The following plugins have been disabled: rabbitmq_management_agent rabbitmq_web_dispatch rabbitmq_management nothing to do. Offline change; changes will take effect at broker restart.
可以使用 rabbitmq-plugins list 命令来查看当前插件的使用情况,如下所示:
D:\server\rabbitmq_server-3.9.11\sbin> rabbitmq-plugins list Listing plugins with pattern ".*" ... Configured: E = explicitly enabled; e = implicitly enabled | Status: [failed to contact rabbit@hxstrive - status not shown] |/ [ ] rabbitmq_amqp1_0 3.9.11 ... [ ] rabbitmq_jms_topic_exchange 3.9.11 [E ] rabbitmq_management 3.9.11 [e ] rabbitmq_management_agent 3.9.11 ... [e ] rabbitmq_web_dispatch 3.9.11 [ ] rabbitmq_web_stomp_examples 3.9.11
其中,标记为 [E*] 的插件为显示启动,而 [e*] 为隐式启动。
启用 rabbitmq_management 插件之后还需要重启 RabbitMQ 服务才能使其正式生效。启动成功后通过浏览器访问 http://localhost:15672 进入登录页面,然后输入默认的用户名和密码 guest 来登录 RabbitMQ 管理页面。登录成功之后,Web 管理的主页面如下图:
(1)管理连接界面如下图:
(2)管理信道 channel 界面如下:
(3)管理交换器 exchange 页面如下图:
(4)管理队列 Queue 的界面如下图:
(5)管理用户信息页面如下图:
(6)管理虚拟机界面如下图:
更详细的用法需要读者自己去动手。