使用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创建监视设置并不困难。我们希望我们的仪表板模板能为您提供一个良好的开端,并强烈建议您对仪表板进行微调,以满足每个部署的个性化需求。

以下是一些有用的资源:

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