RabbitMQ管理(3)——Web端管理
歡迎支持筆者新作:《深入理解Kafka:核心設計與實踐原理》和《RabbitMQ實戰指南》,同時歡迎關注筆者的微信公眾號:朱小廝的博客。
歡迎跳轉到本文的原文鏈接:https://honeypps.com/mq/rabbitmq-management-of-web-end/
前面講述的都是使用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路徑中,如下所示:
[root@node1 plugins]# ls -al total 3760 -rw-r--r-- 1 root root 270985 Oct 25 19:45 amqp_client-3.6.10.ez -rw-r--r-- 1 root root 225671 Oct 25 19:45 cowboy-1.0.4.ez -rw-r--r-- 1 root root 125492 Oct 25 19:45 cowlib-1.0.2.ez -rw-r--r-- 1 root root 841106 Oct 25 19:45 rabbit_common-3.6.10.ez -rw-r--r-- 1 root root 211224 Oct 25 19:45 rabbitmq_amqp1_0-3.6.10.ez -rw-r--r-- 1 root root 34374 Oct 25 19:45 rabbitmq_auth_backend_ldap-3.6.10.ez -rw-r--r-- 1 root root 13065 Oct 25 19:45 rabbitmq_auth_mechanism_ssl-3.6.10.ez -rw-r--r-- 1 root root 14641 Oct 25 19:45 rabbitmq_consistent_hash_exchange-3.6.10.ez -rw-r--r-- 1 root root 11436 Oct 25 19:45 rabbitmq_event_exchange-3.6.10.ez -rw-r--r-- 1 root root 162570 Oct 25 19:45 rabbitmq_federation-3.6.10.ez -rw-r--r-- 1 root root 13796 Oct 25 19:45 rabbitmq_federation_management-3.6.10.ez -rw-r--r-- 1 root root 22414 Oct 25 19:45 rabbitmq_jms_topic_exchange-3.6.10.ez -rw-r--r-- 1 root root 744360 Oct 25 19:45 rabbitmq_management-3.6.10.ez -rw-r--r-- 1 root root 149205 Oct 25 19:45 rabbitmq_management_agent-3.6.10.ez -rw-r--r-- 1 root root 41421 Oct 25 19:45 rabbitmq_management_visualiser-3.6.10.ez -rw-r--r-- 1 root root 105776 Oct 25 19:45 rabbitmq_mqtt-3.6.10.ez -rw-r--r-- 1 root root 14640 Oct 25 19:45 rabbitmq_recent_history_exchange-3.6.10.ez -rw-r--r-- 1 root root 34012 Oct 25 19:45 rabbitmq_sharding-3.6.10.ez -rw-r--r-- 1 root root 80928 Oct 25 19:45 rabbitmq_shovel-3.6.10.ez -rw-r--r-- 1 root root 18951 Oct 25 19:45 rabbitmq_shovel_management-3.6.10.ez -rw-r--r-- 1 root root 109686 Oct 25 19:45 rabbitmq_stomp-3.6.10.ez -rw-r--r-- 1 root root 51694 Oct 25 19:45 rabbitmq_top-3.6.10.ez -rw-r--r-- 1 root root 49713 Oct 25 19:45 rabbitmq_tracing-3.6.10.ez -rw-r--r-- 1 root root 50890 Oct 25 19:45 rabbitmq_trust_store-3.6.10.ez -rw-r--r-- 1 root root 40220 Oct 25 19:45 rabbitmq_web_dispatch-3.6.10.ez -rw-r--r-- 1 root root 24659 Oct 25 19:45 rabbitmq_web_mqtt-3.6.10.ez -rw-r--r-- 1 root root 66233 Oct 25 19:45 rabbitmq_web_mqtt_examples-3.6.10.ez -rw-r--r-- 1 root root 37637 Oct 25 19:45 rabbitmq_web_stomp-3.6.10.ez -rw-r--r-- 1 root root 52177 Oct 25 19:45 rabbitmq_web_stomp_examples-3.6.10.ez -rw-r--r-- 1 root root 57792 Oct 25 19:45 ranch-1.3.0.ez -rw-r--r-- 1 root root 59 Oct 25 19:45 README -rw-r--r-- 1 root root 100807 Oct 25 19:45 sockjs-0.3.4.ez其中以.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插件:
[root@node1 ~]# rabbitmq-plugins enable rabbitmq_management The following plugins have been enabled: amqp_client cowlib cowboy rabbitmq_web_dispatch rabbitmq_management_agent rabbitmq_management Applying plugin configuration to rabbit@node1... started 6 plugins.可以通過rabbitmq-plugins list命令來查看當前的插件使用情況,如下所示。其中標記為[E*]的為顯示啟動,而[e*]為隱式啟動,如顯示啟動rabbitmq_management插件會同時隱式啟動amqp_client、cowboy、cowlib、rabbitmq_management_agent、rabbitmq_web_dispatch等另外5個插件。
[root@node1 ~]# rabbitmq-plugins list Configured: E = explicitly enabled; e = implicitly enabled | Status: * = running on rabbit@node1 |/ [e*] amqp_client 3.6.10 [e*] cowboy 1.0.4 [e*] cowlib 1.0.2 [ ] rabbitmq_amqp1_0 3.6.10 [ ] rabbitmq_auth_backend_ldap 3.6.10 [ ] rabbitmq_auth_mechanism_ssl 3.6.10 [ ] rabbitmq_consistent_hash_exchange 3.6.10 [ ] rabbitmq_event_exchange 3.6.10 [ ] rabbitmq_federation 3.6.10 [ ] rabbitmq_federation_management 3.6.10 [ ] rabbitmq_jms_topic_exchange 3.6.10 [E*] rabbitmq_management 3.6.10 [e*] rabbitmq_management_agent 3.6.10 [ ] rabbitmq_management_visualiser 3.6.10 [ ] rabbitmq_mqtt 3.6.10 [ ] rabbitmq_recent_history_exchange 3.6.10 [ ] rabbitmq_sharding 3.6.10 [ ] rabbitmq_shovel 3.6.10 [ ] rabbitmq_shovel_management 3.6.10 [ ] rabbitmq_stomp 3.6.10 [ ] rabbitmq_top 3.6.10 [ ] rabbitmq_tracing 3.6.10 [ ] rabbitmq_trust_store 3.6.10 [e*] rabbitmq_web_dispatch 3.6.10 [ ] rabbitmq_web_mqtt 3.6.10 [ ] rabbitmq_web_mqtt_examples 3.6.10 [ ] rabbitmq_web_stomp 3.6.10 [ ] rabbitmq_web_stomp_examples 3.6.10 [ ] sockjs 0.3.4開啟management插件之后還需要重啟RabbitMQ服務才能使其正式生效。之后你就可以通過瀏覽器訪問http://localhost:15672/,這樣會出現一個認證登錄的界面,可以通過默認的guest/guest的用戶名和密碼來登錄。如果訪問的ip地址不是本地地址,假如你在192.168.0.2的主機上訪問http://192.168.0.3:15672的Web管理頁面,使用默認的guest賬戶是訪問不了的。在之前比較古老的版本中可以訪問,但是出于安全性方面的考慮,在最近的一些版本中需要你使用一個具有非none的用戶角色的非guest賬戶的來訪問Web管理頁面。
順利登錄之后,可以看到Web管理的主界面如下圖所示。
在上一篇 RabbitMQ管理(2)——用戶管理中介紹了如何新增、刪除、查看用戶等管理功能,那么通過Web管理界面同樣可以做到,具體如下圖所示:
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-YIwESTV5-1587900895156)(https://img-blog.csdn.net/20171011000043669?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMzI1NjgxNg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)]
在上圖中可以看到當前的用戶為guest和root,都被賦予了administator的權限,在頁面的下方可以添加用戶。點擊任意用戶可以進入相關的詳細頁面如下圖所示所示。在此頁面中可以為用戶設置權限和清除權限,也可以刪除或者更新用戶,更新用戶是指更新用戶的密碼和角色。
在RabbitMQ管理(1)——多租戶與權限中提及了關于多租戶的概念以及相應的管理操作,同樣如下圖所示,在此頁面中可以添加相應的虛擬主機。點擊列表中的虛擬主機也可以進入相對應的虛擬主機的詳細頁面,在此詳細頁面中可以查看隊列、消息的詳細統計信息,也可以對用戶和權限進行管理操作,還可以刪除當前的虛擬主機。
對于Web管理頁面的其他功能,比如創建和刪除隊列、交換器、綁定關系等操作會在后面的介紹中提及,當然還少不了對于策略的操作。
最后補充一下與開啟management插件對應的關閉management插件的命令是:rabbitmq-plugins disable rabbitmq_management,示例參考如下:
[root@node1 ~]# rabbitmq-plugins disable rabbitmq_management The following plugins have been disabled: amqp_client cowlib cowboy rabbitmq_web_dispatch rabbitmq_management_agent rabbitmq_management Applying plugin configuration to rabbit@node1... stopped 6 plugins.歡迎跳轉到本文的原文鏈接:https://honeypps.com/mq/rabbitmq-management-of-web-end/
歡迎支持筆者新作:《深入理解Kafka:核心設計與實踐原理》和《RabbitMQ實戰指南》,同時歡迎關注筆者的微信公眾號:朱小廝的博客。
超強干貨來襲 云風專訪:近40年碼齡,通宵達旦的技術人生
總結
以上是生活随笔為你收集整理的RabbitMQ管理(3)——Web端管理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: RabbitMQ管理(2)——用户管理
- 下一篇: RabbitMQ管理(4)——应用管理