阿里雲 RabbitMQ
阿里雲 RabbitMQ 是一款高性能、高可靠的消息中間件,支持多種消息協議和豐富的功能特性。它提供消息隊列功能,能夠實現應用間的消息解耦和異步通信,提升系統擴展性和穩定性。其支持多種消息持久化策略,確保消息不丟失;具備靈活的路由和負載均衡能力,可高效分發消息;還提供豐富的管理功能,如隊列監控、消息追蹤和權限管理等,幫助用户輕鬆管理和優化消息隊列,廣泛應用於分佈式系統、微服務架構和事件驅動應用中。
RabbitMQ 監控的必要性在於,它能夠實時掌握消息隊列的運行狀態,及時發現並解決潛在問題。通過監控消息堆積、消費延遲、連接數等關鍵指標,可以確保消息的高效傳輸和處理,避免因消息積壓或消費者故障導致的業務中斷。此外,監控還能幫助優化資源分配,提升系統性能,確保 RabbitMQ 在高併發和複雜業務場景下穩定運行,從而保障整個分佈式系統的可靠性和可用性。
觀測雲
觀測雲是一款專為 IT 工程師打造的全鏈路可觀測產品,它集成了基礎設施監控、應用程序性能監控和日誌管理,為整個技術棧提供實時可觀察性。這款產品能夠幫助工程師全面瞭解端到端的用户體驗追蹤,瞭解應用內函數的每一次調用,以及全面監控雲時代的基礎設施。此外,觀測雲還具備快速發現系統安全風險的能力,為數字化時代提供安全保障。
部署 DataKit
DataKit 是一個開源的、跨平台的數據收集和監控工具,由觀測雲開發並維護。它旨在幫助用户收集、處理和分析各種數據源,如日誌、指標和事件,以便進行有效的監控和故障排查。DataKit 支持多種數據輸入和輸出格式,可以輕鬆集成到現有的監控系統中。
登錄觀測雲控制枱,在「集成」 - 「DataKit」選擇對應安裝方式,當前採用 Linux 主機部署 DataKit。
採集器配置
指標採集
- 登錄觀測雲控制枱
- 點擊【集成】菜單,選擇【雲賬號管理】
- 點擊【添加雲賬號】,選擇【阿里雲】,填寫界面所需的信息,如之前已配置過雲賬號信息,則忽略此步驟
- 點擊【測試】,測試成功後點擊【保存】,如果測試失敗,請檢查相關配置信息是否正確,並重新測試
- 點擊【雲賬號管理】列表上可以看到已添加的雲賬號,點擊相應的雲賬號,進入詳情頁
- 點擊雲賬號詳情頁的【集成】按鈕,在未安裝列表下,找到阿里雲 RabbitMQ,點擊【安裝】按鈕,彈出安裝界面安裝即可。
關鍵指標
| 指標名稱 | 描述 | 單位 |
|---|---|---|
| ExchangeTPSIn | Exchange 每秒消息流入數 | count/s |
| ExchangeTPSOut | Exchange 每秒消息流出數 | count/s |
| InstanceChannels | Instance 的 Channel 數量(廢棄) | count |
| InstanceChannelsNew | 通道數量 | count |
| InstanceConnections | 實例連接數 | count |
| InstanceConsumers | 消費者數量 | count |
| InstanceMaxTpsInMinute | 實例API請求速率峯值(每分鐘Max值) | count/s |
| InstanceMessageInput | 實例消息生產數量 | count |
| InstanceMessageOutput | 實例消息消費數量 | count |
| InstanceQueueMessageAccumulation | 實例Queue消息堆積量(推薦) | count |
| InstanceQueueMessageInput | 實例Queue消息生產數量(推薦) | count |
| InstanceQueueMessageOutput | 實例Queue消息消費數量(推薦) | count |
| InstanceTPSIn | Instance 每秒消息流入數 | count/s |
| InstanceTPSOut | Instance 每秒消息流出數 | count/s |
| InstanceVhostChannels | VHost 的 Channel 數 | count |
| InstanceVhostConsumers | VHost 消費者數量 | count |
| InstanceVhostMessageInput | 實例Vhost消息生產數量 | count |
| InstanceVhostMessageOutput | 實例Vhost消息消費數量 | count |
| InstanceVhostQueueConsumers | Queue 消費者數量 | count |
| InstanceVhostQueueMessageAccum | Queue 消息堆積量 | count |
| InstanceVhostQueueMessageInput | Queue 消息生產數量 | count |
| InstanceVhostQueueMessageOutput | Queue 消息消費數量 | count |
| QueueTPSIn | Queue 消息每秒流入數 | count/s |
| QueueTPSOut | Queue 每秒消息流出數 | count/s |
| VHostTPSIn | VHost 每秒消息流入數 | count/s |
| VHostTPSOut | VHost 每秒消息流出數 | count/s |
| VhostChannels | VHost 通道數量 | count |
| VhostConnections | VHost 連接數量 | count |
場景視圖
登錄觀測雲控制枱,點擊「場景」 -「新建儀表板」,輸入 “阿里雲 RabbitMQ”, 選擇 “阿里雲 RabbitMQ”,點擊 “確定” 即可添加視圖。
在 Queue 模塊下,可以看到隊列消息的生產、消費、堆積情況。
監控器(告警)
觀測雲內置了監控器模板,可以選擇從模版創建監控器,並開啓適合業務的監控器以及時通知相關成員關注問題,觸發條件、頻率等信息可以依據實際業務進行調整。
登錄觀測雲控制枱,點擊「監控」 -「新建監控器」,輸入 “阿里雲 RabbitMQ”, 選擇對應的監控器,點擊 “確定” 即可添加。
RabbitMQ 消息堆積異常
消息堆積可能會使得業務發生延遲
RabbitMQ 消息消費者數量為0
當消費者數量為0的時候,就很有可能導致消息堆積
阿里雲 RabbitMQ 實例連接數異常
需要注意阿里雲最大鏈接數為10000
總結
通過採集阿里雲 RabbitMQ 指標信息上報至觀測雲,能夠實時展示實例、Vhost、Queue 和 Exchange 的關鍵指標,如消息量、連接數和堆積量等,幫助企業快速發現潛在問題。這些監控功能不僅增強了系統的透明度,還顯著提升了運維效率,尤其適合分佈式和雲原生架構下的複雜業務場景。