使用普罗米修斯监控 rabbitmq (v 3.6.8)

Monitoring rabbitmq (v 3.6.8) with prometheus

我有一个挑战 - 构建和发布由 RabbitMQ 集群(具有 3 个节点)和用于可视化指标的独立 Grafana 服务器组成的监控系统。

我在 RabbitMQ (documentation) 的 prometheus 插件的官方文档中找到下一节:

This plugin is new as of RabbitMQ 3.8.0.

但是我有 3.6.8 版本的集群,当我 运行 下一个命令时

rabbitmq-plugins enable rabbitmq_prometheus

输出为:

Error: The following plugins could not be found: rabbitmq_prometheus

现在无法升级集群,我的问题是:

如何在不升级集群的情况下使用 prometheus(首选选项)和 grafana 配置集群监控?

提前致谢!

Prometheus 插件不是监控 RabbitMQ 集群的唯一方法。

您也可以使用 rabbitmq exporter in sidecar. If you are not on a docker platform, you can download the exporter from the release assets 并将其作为服务安装在某处。

最好在每台托管 RabbitMQ 节点的服务器上安装导出器,因为:

  • 有多少节点就需要安装多少(Prometheus 是面向服务的监控)
  • 来自 RabbitMQ 的 the settings, the exporter is accessing the management plugin interface;它应该与本地主机保持绑定以减少攻击面

如果你真的手忙脚乱,你可以将它们部署到任何地方(比如在同一台服务器上)并将每个导出器指向不同的 RabbitMQ 节点。然后 Prometheus 配置可以识别底层服务。

  - job_name: rabbitmq
    honor_labels: true
    static_configs:
      - targets: ['monitoring-server:97001']
        labels:
          instance: 'rabbitmq_node_A'
      - targets: ['monitoring-server:97002']
        labels:
          instance: 'rabbitmq_node_B'
      # or play with relabeling to acchieve the same.

一个重要的缺点是,在更多情况下导出器可能无法访问 RabbitMQ,而您最终会收到不影响 RabbitMQ 集群的事件警报。