使用Prometheus和Grafana爲HiveMQ做一套監控體系

系統監視是任何生產軟件部署中必不可少的部分。監視MQTT brokers至關重要,尤其是在集羣環境中。

 

一個有效的監控難點在於挑選合適的工具,以及正確的思維方式。

 

正如我們現在使用的監控工具一樣,HiveMQ也可以使用Prometheus來監控其各項指標。

Prometheus是當今市場上用於監視分佈式系統的最受歡迎的解決方案之一。我們認爲,它是HiveMQ監控的完美工具。

 

爲了支持集成監控工具的集成,HiveMQ通過JMX公開了大量指標,從而可以使用JConsole之類的工具進行JMX監控。

 

使用JConsole之類的工具進行實時監視肯定總比沒有好,但是存在一些缺點。HiveMQ通常與Docker一起部署,因此可能無法直接訪問HiveMQ流程,

另外當您需要在生產環境中查找問題的根本原因時,Prometheus等時間序列監視解決方案也可以用作出色的調試工具。

 

HiveMQ提供InfluxDB Extension and Prometheus Extension擴展程序,用於保存HiveMQ時序數據。

 

我們經常被要求推薦監視工具。到目前爲止,我們在Prometheus方面擁有良好的經驗。但是,您選擇使用的工具最終是您的決定,需要反映您的個人喜好。

Prometheus很靈活。您可以將Prometheus用作時間序列數據庫,以收集和存儲現有或首選的度量可視化程序可用作數據源的度量。

或者,您可以將Prometheus用作用於收集指標和生成指標可視化的多合一解決方案。

下面向您展示瞭如何使用Prometheus來收集和可視化HiveMQ指標。我們還將向您展示如何使用Prometheus作爲Grafana中的數據源來創建監視儀表板。

 

 

 

在此安裝中,我們希望我們的HiveMQ羣集向Prometheus報告其指標。然後,我們可以設置一個Grafana儀表板來實時監控我們的HiveMq指標。

爲了實現我們的計劃,除了HiveMQ集羣外,我們還需要三個軟件:

  • The HiveMQ Prometheus Monitoring Extension
  • Prometheus
  • Grafana

 

 

安裝Prometheus HiveMQ擴展

HiveMQ提供了廣泛的預構建和即用擴展。這些擴展之一是HiveMQ Prometheus Monitoring擴展。與所有HiveMQ擴展一樣,此擴展的安裝非常簡單:

  • 下載發行版
  • 解壓縮zip文件
  • hivemq-prometheus-extension文件夾移到extensions文件夾

注:請務必調整prometheusConfiguration.properties文件裏面hivemq-普羅米修斯擴展文件夾,以滿足您的個性化需求,並確保網絡接口的IP地址可以是你普羅米修斯服務器訪問。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
# Prometheus Monitoring Extension Configuration
#
# -------------------------------------------------------------------------


# The ip where the servlet will be hosted
ip=<your-ip>

# The port where the servlet will work on
port=9399

# The path for the servlet which gets called by prometheus
# For example 127.0.0.1:9399/metrics
metric_path=/metrics

 

 

安裝Prometheus

下一步是在您選擇的計算機上安裝Prometheus應用程序。根據我們的經驗,您不應在運行HiveMQ的同一臺計算機上運行Prometheus。

要安裝Prometheus,請遵循Prometheus指南

基於本文中HiveMQ Prometheus Extension配置的有效prometheus.yml文件如下所示:

1
2
3
4
5
6
7
8
9
global:
  scrape_interval: 15s
scrape_configs:
  - job_name: 'hivemq'
    scrape_interval: 5s
    metrics_path: '/metrics'
    static_configs:
      #using port 9399 because we configured it the HiveMQ Prometheus Extension
      - targets: ['<node1-ip>:9399', '<node2-ip>:9399']

注意:此示例是爲2節點羣集量身定製的。如果需要更多節點,則需要將其他節點添加到target

 

使用Prometheus顯示指標

Prometheus不僅僅是監視Grafana等儀表板的數據源。此外,Prometheus具有內置功能,可以實時顯示指標。當您想深入瞭解不經常監視的特定指標時,此功能特別有用。要查看,請瀏覽至http://:9090 /。正確配置Prometheus和HiveMQ Prometheus擴展名後,您可以在“表達式”字段中訪問HiveMQ指標。

Prometheus應用指標

在Prometheus中顯示HiveMQ指標

 

 

安裝Grafana

構建監控儀表盤的​​下一步是安裝並啓動Grafana。Grafana開箱即用,可通過localhost:3000進行訪問

一旦Grafana啓動並運行,我們就可以將Prometheus配置爲Grafana的數據源。

步驟1:添加數據源

步驟2:配置Prometheus

現在,我們可以專注於儀表板。爲了迴應我們收到的有關儀表板的大量問題,HiveMQ團隊整理了一個很棒的儀表板模板,其中顯示了大多數MQTT部署的關鍵指標。使用模板作爲構建儀表板的便捷起點,該儀表板完全適合您的個人用例。

在此處下載模板。 zip內的JSON文件可以導入到Grafana。

步驟3:匯入資訊主頁

而已。現在,我們有一個工作儀表板,可以顯示我們的指標並提供在許多MQTT部署中已證明至關重要的監視類型。

這只是監視MQTT用例的一種可能性。您的個人要求可能會有所不同。我們建議您閱讀Grafana的入門指南,以決定最適合您和您的部署的方案。

 

 

監視是任何應用程序操作的重要組成部分,HiveMQ也不例外。從這篇博客中可以看到,使用Prometheus和Grafana爲HiveMQ創建監視設置並不困難。我們希望我們的儀表板模板能爲您提供一個良好的開端,並強烈建議您對儀表板進行微調,以滿足每個部署的個性化需求。

以下是一些有用的資源:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章