使用prometheus-operator监控RabbitMQ集群
1、插件式
使用 RabbitMQ 内置 Prometheus 插件(适用于 3.8.0+ 版本)
1.1 启用插件
rabbitmq-plugins enable rabbitmq_prometheus
1.2 验证指标接口
访问 http://<RabbitMQ-Service>:15692/metrics 确认指标暴露正常
2 部署 Exporter
独立部署 RabbitMQ Exporter(通用版本)
使用 Helm 或 YAML 文件部署 rabbitmq_exporter,示例 Deployment 配置:
apiVersion: apps/v1
kind: Deployment
metadata:
name: rabbitmq-exporter
spec:
template:
spec:
containers:
- name: exporter
image: kbudde/rabbitmq-exporter
env:
- name: RABBIT_URL
value: "http://<RabbitMQ-Service>:15672"
- name: RABBIT_USER
value: "premonitor"
- name: RABBIT_PASSWORD
value: "<密码>"
需替换实际 RabbitMQ 服务地址和凭证28。
3、配置 Prometheus 服务发现
3.1 创建 Service 和 ServiceMonitor
# Service 定义(针对 Exporter 或原生接口)
apiVersion: v1
kind: Service
metadata:
name: rabbitmq-monitor
labels:
app: rabbitmq-monitor
spec:
ports:
- name: metrics
port: 15692 # Exporter 默认端口 或 15692(内置插件)
selector:
app: rabbitmq # 或 RabbitMQ Pod 标签
---
# ServiceMonitor 定义(Prometheus Operator)
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: rabbitmq-monitor
namespace: monitoring
spec:
endpoints:
- port: metrics
interval: 30s
scheme: http
selector:
matchLabels:
app: rabbitmq-monitor
namespaceSelector:
matchNames:
- default # - <rabbitmq 监控 service所在命名空间>
通过 ServiceMonitor 实现自动指标抓取。
4、验证与可视化
4.1 检查 Prometheus Targets
在 Prometheus UI 的 Targets 页面确认 rabbitmq-monitor 状态为 UP。
4.2 导入 Grafana 仪表板
使用模板 ID 15210 导入预置的 RabbitMQ 监控大盘,关联 Prometheus 数据源27。