RabbitMQ的Monitoring文档中介绍了各种监控RabbitMQ的方式。 其中推荐了第三方的Prometheus Plugin, 这是一个第三方实现RabbitMQ的管理插件,可以作为Prometheus的RabbitMQ Exporter。

安装RabbitMQ Prometheus Plugin

这里RabbitMQ的版本为3.6.14,Erlang版本为Erlang R16B03-1,从Release for latest RabbitMQ 3.6.x versions这个链接中下载以下插件:

1accept-0.3.3.ez
2prometheus-3.4.0.ez
3prometheus_httpd-2.1.4.ez
4prometheus_process_collector-1.1.0.ez
5prometheus_rabbitmq_exporter-v3.6.12.1.ez

将下载的插件拷贝到RabbitMQ的插件目录,rpm形式安装的RabbitMQ的插件目录位于/usr/lib/rabbitmq/plugins下。

启用插件:

1rabbitmq-plugins enable accept
2rabbitmq-plugins enable prometheus
3rabbitmq-plugins enable prometheus_httpd
4rabbitmq-plugins enable prometheus_rabbitmq_exporter
5rabbitmq-plugins enable prometheus_process_collector

重启RabbitMQ,访问http://<ip>:15672/api/metrics可以得到RabbitMQ Exporter暴露的metrics。

配置Prometheus

Prometheus的配置文件中增加如下内容:

 1- job_name: 'rabbitmq'
 2    metrics_path: /api/metrics
 3    static_configs:
 4     - targets:
 5        - 192.168.1.3:15672
 6       labels:
 7         instance: s3
 8     - targets:
 9        - 192.168.1.4:15672
10       labels:
11         instance: s4
12     - targets:
13        - 192.168.1.5:15672
14       labels:
15         instance: s5
  • 注意metrics path为/api/metrics

Grafana配置

下载Grafana Dashboard https://raw.githubusercontent.com/deadtrickster/prometheus_rabbitmq_exporter/master/priv/dashboards/RabbitMQErlangVM.json

将上面的dashboar导入后需要做一些修改,加入host变量,并修改各个图表的PromQL加入host变量作为查询条件,通过下拉列表选择查看不同rabbitmq节点的Dashboard。

rabbitmq-grafana.jpg

参考