這是 OpenStack 實(shí)施經(jīng)驗(yàn)分享系列的第 8 篇。


先來(lái)看張圖:



這是 Nova 的架構(gòu)圖,我們可以看到有兩個(gè)組件處于架構(gòu)的中心位置:數(shù)據(jù)庫(kù)和Queue。數(shù)據(jù)庫(kù)保存狀態(tài)信息,而幾乎所有的 nova-* 服務(wù)都直接依賴(lài)于 Queue 實(shí)現(xiàn)服務(wù)之間的通信和調(diào)用。

OpenStack 通常用 RabbitMQ 實(shí)現(xiàn)消息隊(duì)列,幾乎所有的 OpenStack 模塊都會(huì)用到 RabbitMQ,如果 RabbitMQ 掛了,OpenStack 也就癱了,可以說(shuō)它是最重要的組件。

本節(jié)我們就來(lái)討論如何監(jiān)控 RabbitMQ 的狀態(tài),介紹一個(gè)非常簡(jiǎn)單高效的方法。

啟用 RabbitMQ 管理 plugin

 

默認(rèn)安裝中,我們只能用命令 rabbitmqctl 監(jiān)控 RabbitMQ,比如:rabbitmqctl list_queues,rabbitmqctl list_exchanges 等子命令。這種方式不太直觀,效率不高。

好在 RabbitMQ