天天看點

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,示例參考如下: