在 Grafana / Prometheus 中如何監控 RabbitMQ

當應用程式或是系統中使用 RabbitMQ 做為訊息中心時, 對維運中心的 OP 人員而言同時也需要即時監控訊息伺服器的資源狀態和使用狀況。當然,使用管理界面(Management UI)是最直接的方法,但是如果也要同時監管其它的系統資訊時,如: CPU/MEMROY/NIC…或其它軟體服務時, 或是只能讓維運人員”看”資訊但不可操作命令時,使用 Grafana 就是很好的選項。以下是使用 Grafana vs. Management UI 所顯示內容的範例

Dashboard

•Good User interface

•可以長期記錄和分析資料

•記錄分享

•適用: 監管或維運人員

Management UI

•可以管理 user, queue, exchange

•適用服務管理員

安裝及設定步驟

  1. 安裝 Prometheus , Grafana & RabbitMQ
  2. 啟用 RabbitMQ 的 RabbitMQ_Prometheus plug-ins for V3.8
  3. 修改並設定 Promtheus.yml 檔案,
  4. 匯入或是製作在Grafana 中的RabbitMQ 儀表板,
  5. 若需要時, 可以安裝 RabbitMQ test program

安裝 RabbitMQ (Prometheus & Grafana 安裝請另外參考文章)

  • Windows, 以下選擇一種方式安裝, 建議使用 Binary 方式
    • 下載Erlang, 詳閱: https://www.rabbitmq.com/install-windows-manual.html
      • 安裝 OTP 23.0.2 win64 版本(https://erlang.org/download/otp_versions_tree.html)
      • 設定環境變數 ERLANG_HOME = C:\Program Files\erl-23.0.2\ , “控制台”>”系統及安全性”>“系統”>“進階”>“環境變數”
    • 下載安裝檔Binary Build, https://www.rabbitmq.com/install-windows-manual.html, 安裝成執行檔 .zip
  • Linux – CentOS
    • 檢查Erlang 的版本 $ yum list installed | grep erlang
    • 若需要的話移除不配的所有版本, 並安裝需要的版本
    • 在 /etc/yum.repos.d 中新增檔案: rabbitmq_erlang.repo
    • 使用yum 安裝, 以這個方法會直接安裝成系統的服務, 安裝於 /usr/share/grafana
      • $ yum install rabbitmq_server
      • $ systemctl start rabbitmq_server
      • $ systemctl enable rabbitmq_server
      • $ systemctl status rabbitmq_server

啟用 Plugins

$rabbitmq_plugins enable rabbitmq_management #啟用 rabbitmq 的 management UI

$rabbitmq_plugins enable rabbitmq_Prometheus # 啟用 rabbitmq 的 rabbitmq_Prometheus plug-ins

$ systemctl restart rabbitmq

browser http://localhost:15692/metrics 來查看 rabbitmq_Prometheus 的 metrics 值, 或是 http://localhost:15672 登入 management UI

匯入 Dashboard : rabbitmq dashboard for Prometheus on Grafana >> dashboard ID (10991, 6566)

Optional , Rabbitmq performance test – Windows version

  • JAVA SDK (https://www.oracle.com/java/technologies/javase-jdk14-downloads.html)
  • SET JAVA_HOME (C:\Program Files\java\jdk1.8.0_xxx)
  • PATH=%PATH;%JAVA_HOME%\bin
  • RabbitMQ Performance Testing Tool 下載:https://github.com/rabbitmq/rabbitmq-perf-test/releases
  • 解壓文件(放到 RabbitMQ 安裝目錄下) rabbitmq-perf-test-1.1.0.zip , 執行 CMD 命令:
    • cd D:\Program Files\RabbitMQ Server\rabbitmq-perf-test-1.1.0\bin
    • runjava.bat com.rabbitmq.perf.PerfTest -a, 或是
    • ./runjava.bat   com.rabbitmq.perf.PerfTest  –metrics-prometheus –metrics-Prometheus-port 15698