Ezreal 书架 Ezreal 书架
Home
  • 《Go程序员面试笔试宝典》
  • 《RabbitMQ 实战指南》
  • 《深入理解kafka》
  • MySQL45讲
  • 透视HTTP协议
  • 结构化数据的分布式存储系统
  • Raft 共识算法
Home
  • 《Go程序员面试笔试宝典》
  • 《RabbitMQ 实战指南》
  • 《深入理解kafka》
  • MySQL45讲
  • 透视HTTP协议
  • 结构化数据的分布式存储系统
  • Raft 共识算法
  • RabbitMQ简介

  • RabbitMQ 入门

  • 客户端开发向导

  • RabbitMQ 进阶

  • RabbitMQ 管理

    • 多租户与权限
    • 用户管理
    • Web端管理
  • RabbitMQ实战指南
  • RabbitMQ 管理
ezreal_rao
2023-04-22

Web端管理

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

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

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

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

root@81f22c059192:~# echo $RABBITMQ_HOME
/opt/rabbitmq
root@81f22c059192:~# ls -al /opt/rabbitmq/plugins/
total 5736
drwxr-xr-x 73 rabbitmq rabbitmq    4096 Mar 31 19:31 .
drwxr-xr-x  7 rabbitmq rabbitmq    4096 Apr 18 00:56 ..
-rw-r--r--  1 rabbitmq rabbitmq      59 Mar 31 19:31 README
drwxr-xr-x  4 rabbitmq rabbitmq    4096 Mar 31 19:31 accept-0.3.5
drwxr-xr-x  3 rabbitmq rabbitmq    4096 Mar 31 19:31 amqp10_client-3.11.13
drwxr-xr-x  4 rabbitmq rabbitmq    4096 Mar 31 19:31 amqp10_common-3.11.13
drwxr-xr-x  4 rabbitmq rabbitmq    4096 Mar 31 19:31 amqp_client-3.11.13
drwxr-xr-x  3 rabbitmq rabbitmq    4096 Mar 31 19:31 aten-0.5.8
drwxr-xr-x  3 rabbitmq rabbitmq    4096 Mar 31 19:31 base64url-1.0.1
-rw-r--r--  1 rabbitmq rabbitmq   48840 Mar 31 19:31 bunt-0.2.1.ez
drwxr-xr-x  3 rabbitmq rabbitmq    4096 Mar 31 19:31 cowboy-2.8.0
drwxr-xr-x  4 rabbitmq rabbitmq    4096 Mar 31 19:31 cowlib-2.9.1
drwxr-xr-x  4 rabbitmq rabbitmq    4096 Mar 31 19:31 credentials_obfuscation-3.2.0
-rw-r--r--  1 rabbitmq rabbitmq   55578 Mar 31 19:31 csv-2.4.1.ez
drwxr-xr-x  4 rabbitmq rabbitmq    4096 Mar 31 19:31 cuttlefish-3.1.0
-rw-r--r--  1 rabbitmq rabbitmq   19207 Mar 31 19:31 dialyzex-1.3.0.ez
-rw-r--r--  1 rabbitmq rabbitmq  301629 Mar 31 19:31 earmark_parser-1.4.31.ez
drwxr-xr-x  5 rabbitmq rabbitmq    4096 Mar 31 19:31 eetcd-0.3.6
-rw-r--r--  1 rabbitmq rabbitmq 3943470 Mar 31 19:31 elixir-1.14.3.ez
drwxr-xr-x  3 rabbitmq rabbitmq    4096 Mar 31 19:31 enough-0.1.0
-rw-r--r--  1 rabbitmq rabbitmq   60782 Mar 31 19:31 file_system-0.2.10.ez
drwxr-xr-x  3 rabbitmq rabbitmq    4096 Mar 31 19:31 gen_batch_server-0.8.8
drwxr-xr-x  3 rabbitmq rabbitmq    4096 Mar 31 19:31 getopt-1.0.2
drwxr-xr-x  3 rabbitmq rabbitmq    4096 Mar 31 19:31 gun-1.3.3
-rw-r--r--  1 rabbitmq rabbitmq  182983 Mar 31 19:31 jason-1.4.0.ez
drwxr-xr-x  5 rabbitmq rabbitmq    4096 Mar 31 19:31 jose-1.11.3
-rw-r--r--  1 rabbitmq rabbitmq   94927 Mar 31 19:31 json-1.4.1.ez
-rw-r--r--  1 rabbitmq rabbitmq  107646 Mar 31 19:31 logger-1.14.3.ez
-rw-r--r--  1 rabbitmq rabbitmq  185728 Mar 31 19:31 makeup-1.1.0.ez
-rw-r--r--  1 rabbitmq rabbitmq  319417 Mar 31 19:31 makeup_elixir-0.16.0.ez
-rw-r--r--  1 rabbitmq rabbitmq   99078 Mar 31 19:31 makeup_erlang-0.1.1.ez
-rw-r--r--  1 rabbitmq rabbitmq   91482 Mar 31 19:31 nimble_parsec-1.2.3.ez
drwxr-xr-x  4 rabbitmq rabbitmq    4096 Mar 31 19:31 observer_cli-1.7.3
drwxr-xr-x  3 rabbitmq rabbitmq    4096 Mar 31 19:31 osiris-1.4.2
-rw-r--r--  1 rabbitmq rabbitmq   33890 Mar 31 19:31 parallel_stream-1.0.6.ez
drwxr-xr-x  4 rabbitmq rabbitmq    4096 Mar 31 19:31 prometheus-4.10.0
drwxr-xr-x  4 rabbitmq rabbitmq    4096 Mar 31 19:31 quantile_estimator-0.2.1
drwxr-xr-x  3 rabbitmq rabbitmq    4096 Mar 31 19:31 ra-2.4.9
drwxr-xr-x  5 rabbitmq rabbitmq    4096 Mar 31 19:31 rabbit-3.11.13
drwxr-xr-x  4 rabbitmq rabbitmq    4096 Mar 31 19:31 rabbit_common-3.11.13
drwxr-xr-x  5 rabbitmq rabbitmq    4096 Mar 31 19:31 rabbitmq_amqp1_0-3.11.13
drwxr-xr-x  5 rabbitmq rabbitmq    4096 Mar 31 19:31 rabbitmq_auth_backend_cache-3.11.13
drwxr-xr-x  4 rabbitmq rabbitmq    4096 Mar 31 19:31 rabbitmq_auth_backend_http-3.11.13
drwxr-xr-x  5 rabbitmq rabbitmq    4096 Mar 31 19:31 rabbitmq_auth_backend_ldap-3.11.13
drwxr-xr-x  4 rabbitmq rabbitmq    4096 Mar 31 19:31 rabbitmq_auth_backend_oauth2-3.11.13
drwxr-xr-x  3 rabbitmq rabbitmq    4096 Mar 31 19:31 rabbitmq_auth_mechanism_ssl-3.11.13
drwxr-xr-x  5 rabbitmq rabbitmq    4096 Mar 31 19:31 rabbitmq_aws-3.11.13
drwxr-xr-x  4 rabbitmq rabbitmq    4096 Mar 31 19:31 rabbitmq_consistent_hash_exchange-3.11.13
drwxr-xr-x  5 rabbitmq rabbitmq    4096 Mar 31 19:31 rabbitmq_event_exchange-3.11.13
drwxr-xr-x  4 rabbitmq rabbitmq    4096 Mar 31 19:31 rabbitmq_federation-3.11.13
drwxr-xr-x  4 rabbitmq rabbitmq    4096 Mar 31 19:31 rabbitmq_federation_management-3.11.13
drwxr-xr-x  4 rabbitmq rabbitmq    4096 Mar 31 19:31 rabbitmq_jms_topic_exchange-3.11.13
drwxr-xr-x  5 rabbitmq rabbitmq    4096 Mar 31 19:31 rabbitmq_management-3.11.13
drwxr-xr-x  5 rabbitmq rabbitmq    4096 Mar 31 19:31 rabbitmq_management_agent-3.11.13
drwxr-xr-x  5 rabbitmq rabbitmq    4096 Mar 31 19:31 rabbitmq_mqtt-3.11.13
drwxr-xr-x  4 rabbitmq rabbitmq    4096 Mar 31 19:31 rabbitmq_peer_discovery_aws-3.11.13
drwxr-xr-x  5 rabbitmq rabbitmq    4096 Mar 31 19:31 rabbitmq_peer_discovery_common-3.11.13
drwxr-xr-x  5 rabbitmq rabbitmq    4096 Mar 31 19:31 rabbitmq_peer_discovery_consul-3.11.13
drwxr-xr-x  5 rabbitmq rabbitmq    4096 Mar 31 19:31 rabbitmq_peer_discovery_etcd-3.11.13
drwxr-xr-x  5 rabbitmq rabbitmq    4096 Mar 31 19:31 rabbitmq_peer_discovery_k8s-3.11.13
drwxr-xr-x  3 rabbitmq rabbitmq    4096 Mar 31 19:31 rabbitmq_prelaunch-3.11.13
drwxr-xr-x  4 rabbitmq rabbitmq    4096 Mar 31 19:31 rabbitmq_prometheus-3.11.13
drwxr-xr-x  4 rabbitmq rabbitmq    4096 Mar 31 19:31 rabbitmq_random_exchange-3.11.13
drwxr-xr-x  4 rabbitmq rabbitmq    4096 Mar 31 19:31 rabbitmq_recent_history_exchange-3.11.13
drwxr-xr-x  3 rabbitmq rabbitmq    4096 Mar 31 19:31 rabbitmq_sharding-3.11.13
drwxr-xr-x  4 rabbitmq rabbitmq    4096 Mar 31 19:31 rabbitmq_shovel-3.11.13
drwxr-xr-x  4 rabbitmq rabbitmq    4096 Mar 31 19:31 rabbitmq_shovel_management-3.11.13
drwxr-xr-x  5 rabbitmq rabbitmq    4096 Mar 31 19:31 rabbitmq_stomp-3.11.13
drwxr-xr-x  5 rabbitmq rabbitmq    4096 Mar 31 19:31 rabbitmq_stream-3.11.13
drwxr-xr-x  4 rabbitmq rabbitmq    4096 Mar 31 19:31 rabbitmq_stream_common-3.11.13
drwxr-xr-x  4 rabbitmq rabbitmq    4096 Mar 31 19:31 rabbitmq_stream_management-3.11.13
drwxr-xr-x  4 rabbitmq rabbitmq    4096 Mar 31 19:31 rabbitmq_top-3.11.13
drwxr-xr-x  4 rabbitmq rabbitmq    4096 Mar 31 19:31 rabbitmq_tracing-3.11.13
drwxr-xr-x  4 rabbitmq rabbitmq    4096 Mar 31 19:31 rabbitmq_trust_store-3.11.13
drwxr-xr-x  3 rabbitmq rabbitmq    4096 Mar 31 19:31 rabbitmq_web_dispatch-3.11.13
drwxr-xr-x  4 rabbitmq rabbitmq    4096 Mar 31 19:31 rabbitmq_web_mqtt-3.11.13
drwxr-xr-x  4 rabbitmq rabbitmq    4096 Mar 31 19:31 rabbitmq_web_mqtt_examples-3.11.13
drwxr-xr-x  4 rabbitmq rabbitmq    4096 Mar 31 19:31 rabbitmq_web_stomp-3.11.13
drwxr-xr-x  4 rabbitmq rabbitmq    4096 Mar 31 19:31 rabbitmq_web_stomp_examples-3.11.13
drwxr-xr-x  3 rabbitmq rabbitmq    4096 Mar 31 19:31 ranch-2.1.0
drwxr-xr-x  3 rabbitmq rabbitmq    4096 Mar 31 19:31 recon-2.5.3
drwxr-xr-x  3 rabbitmq rabbitmq    4096 Mar 31 19:31 redbug-2.0.7
drwxr-xr-x  3 rabbitmq rabbitmq    4096 Mar 31 19:31 seshat-0.4.0
drwxr-xr-x  4 rabbitmq rabbitmq    4096 Mar 31 19:31 stdout_formatter-0.2.4
drwxr-xr-x  4 rabbitmq rabbitmq    4096 Mar 31 19:31 syslog-4.0.0
drwxr-xr-x  5 rabbitmq rabbitmq    4096 Mar 31 19:31 sysmon_handler-1.3.0
drwxr-xr-x  4 rabbitmq rabbitmq    4096 Mar 31 19:31 systemd-0.6.1
drwxr-xr-x  3 rabbitmq rabbitmq    4096 Mar 31 19:31 thoas-1.0.0
root@81f22c059192:~#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93

其中以 .ez 扩展名称结尾的文件就是 RabbitMQ 的插件,上面文件中的 rabbitmq_management-3.6.10.ez 就是指 RabbitMQ Management 插件。 启动插件的命令不是使用 rabbitmqctl 工具 , 而是使用 rabbitmq-plugins ,其语法格式为 :

rabbitmq-plugins [--node <node>] [--timeout <timeout>] [--longnames] [--quiet] <command> [<command options>]
1

启动插件是使用 rabbitmq-plugins enable [plugin -name] ,关闭插件的命令是 rabbitmq-plugins disable [pluging - name] 。

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

root@81f22c059192:~# rabbitmq-plugins enable rabbitmq_management
Enabling plugins on node rabbit@81f22c059192:
rabbitmq_management
The following plugins have been configured:
  rabbitmq_management
  rabbitmq_management_agent
  rabbitmq_prometheus
  rabbitmq_web_dispatch
Applying plugin configuration to rabbit@81f22c059192...
The following plugins have been enabled:
  rabbitmq_management

started 1 plugins.
root@81f22c059192:~#
1
2
3
4
5
6
7
8
9
10
11
12
13
14

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

root@81f22c059192:~# rabbitmq-plugins list
Listing plugins with pattern ".*" ...
 Configured: E = explicitly enabled; e = implicitly enabled
 | Status: * = running on rabbit@81f22c059192
 |/
[  ] rabbitmq_amqp1_0                  3.11.13
[  ] rabbitmq_auth_backend_cache       3.11.13
[  ] rabbitmq_auth_backend_http        3.11.13
[  ] rabbitmq_auth_backend_ldap        3.11.13
[  ] rabbitmq_auth_backend_oauth2      3.11.13
[  ] rabbitmq_auth_mechanism_ssl       3.11.13
[  ] rabbitmq_consistent_hash_exchange 3.11.13
[  ] rabbitmq_event_exchange           3.11.13
[  ] rabbitmq_federation               3.11.13
[  ] rabbitmq_federation_management    3.11.13
[  ] rabbitmq_jms_topic_exchange       3.11.13
[E*] rabbitmq_management               3.11.13
[e*] rabbitmq_management_agent         3.11.13
[  ] rabbitmq_mqtt                     3.11.13
[  ] rabbitmq_peer_discovery_aws       3.11.13
[  ] rabbitmq_peer_discovery_common    3.11.13
[  ] rabbitmq_peer_discovery_consul    3.11.13
[  ] rabbitmq_peer_discovery_etcd      3.11.13
[  ] rabbitmq_peer_discovery_k8s       3.11.13
[E*] rabbitmq_prometheus               3.11.13
[  ] rabbitmq_random_exchange          3.11.13
[  ] rabbitmq_recent_history_exchange  3.11.13
[  ] rabbitmq_sharding                 3.11.13
[  ] rabbitmq_shovel                   3.11.13
[  ] rabbitmq_shovel_management        3.11.13
[  ] rabbitmq_stomp                    3.11.13
[  ] rabbitmq_stream                   3.11.13
[  ] rabbitmq_stream_management        3.11.13
[  ] rabbitmq_top                      3.11.13
[  ] rabbitmq_tracing                  3.11.13
[  ] rabbitmq_trust_store              3.11.13
[e*] rabbitmq_web_dispatch             3.11.13
[  ] rabbitmq_web_mqtt                 3.11.13
[  ] rabbitmq_web_mqtt_examples        3.11.13
[  ] rabbitmq_web_stomp                3.11.13
[  ] rabbitmq_web_stomp_examples       3.11.13
root@81f22c059192:~#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42

开启 rabbitmq_management 插件之后还需要重启 RabbitMQ 服务才能使其正式生效。 之后就可以通过浏览器访问 http://localhost:15672/. 这样会出现一个认证登录的界面,可以通过默认的 guest/guest 的用户名和密码来登录。如果访问的 IP 地址不是本地地址,比如在 192.168.0.2 的主机上访问 http://192.168.0.3:15672 的 Web 管理页面,使用默认的 guest 账户是访问不了的 。 在之前比较古老的版本中可以访问,但是出于安全性方面的考虑,在最近的一些版本中需要使用一个具有非 none 的用户角色的非 guest 账户来访问 Web 管理页面。

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

#mq#rabbitmq#amq
上次更新: 5/9/2023, 10:58:32 AM
用户管理

← 用户管理

最近更新
01
为什么我的MySQL会抖一下
07-15
02
HTTP 性能优化面面观
07-12
03
WebSocket:沙盒里的 TCP
07-12
更多文章>
Theme by Vdoing | Copyright © 2022-2024 Ezreal Rao | CC BY-NC-SA 4.0
豫ICP备2023001810号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式