Prometheus + Grafana(九)系统监控之RabbitMQ
前言
第一种:RabbitMQ内部集成Prometheus来获取指标
- 3.8.0之前版本,RabbitMQ可以使用单独的插件prometheus_rabbitmq_exporter来向Prometheus公开指标,要单独下载到RabbitMQ安装目录中进行安装;
prometheus_rabbitmq_exporter:https://github.com/deadtrickster/prometheus_rabbitmq_exporter
- 3.8.0版开始,RabbitMQ附带了内置的Prometheus&Grafana支持。虽然内置了该插件,但也要进行安装
rabbitmq-prometheus:https://github.com/rabbitmq/rabbitmq-prometheus
第二种:使用独立程序来获取指标(RabbitMQ_exporter)
不管什么版本都能使用,要单独启动exporter进程
rabbitmq_exporter:https://github.com/kbudde/rabbitmq_exporter
- https://www.rabbitmq.com/monitoring.html
- https://www.rabbitmq.com/prometheus.html#overview-prometheus
本文是采用第二种方式实现。
安装rabbitmq_exporter
注:在RabbitMQ集群下的任意一个节点部署它。
-
上传解压
从 https://github.com/kbudde/rabbitmq_exporter/releases 下载并上传rabbitmq_exporter-0.29.0.linux-amd64.tar安装包并解压到/usr/local目录
wget https://github.com/kbudde/rabbitmq_exporter/releases/download/v0.29.0/rabbitmq_exporter-0.20.0.linux-amd64.tar.gz
tar -xvf rabbitmq_exporter-0.29.0.linux-amd64.tar
cd rabbitmq_exporter-0.29.0.linux-amd64/
-
配置
使用默认配置
-
启动
进入根目录下,输入以下命令:
cd /usr/local/rabbitmq_exporter-0.29.0.linux-amd64 RABBIT_USER=zat RABBIT_PASSWORD=zat123 OUTPUT_FORMAT=json PUBLIC_PORT=9090 RABBIT_URL=http://localhost:15672 nohup ./rabbitmq_exporter & tail -1000f nohup.out
参数说明:
RABBIT_USER:rabbit用户名
RABBIT_PASSWORD:rabbit密码
RABBIT_URL:rabbit服务地址和端口
OUTPUT_FORMAT:输出格式
PUBLIC_PORT:暴露端口
启动成功后,可以访问 http://10.0.101.100:9090/metrics/ ,(IP和端口要改成相应环境的)
看抓取的信息如下:
Prometheus配置
-
配置
修改prometheus组件的prometheus.yml加入rabbitMQ节点:
vi /usr/local/prometheus-2.15.1/prometheus.yml
-
启动验证
先kill掉Prometheus进程,用以下命令重启它,然后查看targets:
cd /usr/local/prometheus-2.15.1 nohup ./prometheus --config.file=prometheus.yml &
注:State=UP,说明成功
Grafana配置
-
导入仪表盘模板
通过浏览器访问:http://grafana服务器IP:3000
导入监控图表
以上仪表盘导入后再结合自身业务修改过的最终仪表盘:
-
预警指标
序号 |
预警名称 |
预警规则 |
描述 |
1 |
集群状态预警 |
当集群状态不符合预期【!=1】时进行预警 |
|
2 |
节点状态预警 |
当节点状态不符合预期【!=1】时进行预警 |
|
3 |
等待消费预警 |
当等待消费的消息数量达到阈值【>1000】时进行预警 |
延迟消费 |
4 |
消费预警 |
当消费中的消息数量达到阈值【>1000】时进行预警 |
消费速度慢 |