Prpmetheus监控rabbitmq

启用一个rabbitmq docker 服务

bash 复制代码
cat >docker-compose.yaml<<'EOF'
 version: '3'
 services:
 rabbitmq:
   image: rabbitmq:3.7.15-management
   container_name: rabbitmq
   restart: always
   volumes:
     - /data/rabbitmq/data:/var/lib/rabbitmq
     - /data/rabbitmq/log:/var/log/rabbitmq
   ports:
     - 5672:5672
     - 15672:15672 
EOF

rabbitmq-exporter 启动

  • 直接docker
bash 复制代码
docker run -d -p 9419:9419 --name rabbitmq_exporter \
 -e RABBIT_URL=http://10.19.1.220:15672 \
 -e RABBIT_USER=guest \
 -e RABBIT_PASSWORD=guest \
 kbudde/rabbitmq-exporter
  • docker-compose 方式
bash 复制代码
cd /data/rabbitmq/

cat >docker-compose.yml << 'EOF'
version: '3.3'
services:
  rabbitmq_exporter:
    image: kbudde/rabbitmq-exporter
    container_name: rabbitmq_exporter
    restart: always
    environment:
      RABBIT_URL: "http://10.19.1.220:15672"
      RABBIT_USER: "guest"
      RABBIT_PASSWORD: "guest"
      PUBLISH_PORT: "9419"
      OUTPUT_FORMAT: "JSON"
    ports:
      - "9419:9419"
EOF

check

bash 复制代码
docker-compose up -d
docker ps 
docker logs -f rabbitmq_exporter
http://10.19.1.220:9419/metrics

Prometheus.yml 增加配置

bash 复制代码
cat >>prometheus/prometheus.yml << 'EOF'
  - job_name: 'rabbitmq_exporter'
    scrape_interval: 30s
    static_configs:
    - targets: ['10.19.1.220:9419']
      labels:
        instance: rabbitmq服务器
EOF
bash 复制代码
docker exec -it prometheus promtool check config /etc/prometheus/prometheus.yml
curl -X POST http://localhost:9090/-/reload

监控指标

bash 复制代码
rabbitmq_queues
rabbitmq_node_disk_free_limit
rabbitmq_node_disk_free
rabbitmq_node_mem_used
rabbitmq_node_mem_limit
rabbitmq_sockets_used
rabbitmq_sockets_available
rabbitmq_fd_used
rabbitmq_fd_available

Rabbitmq触发器

bash 复制代码
cat >> prometheus/rules/rabbitmq.yml << 'EOF'
groups:
- name: Rabbitmq
  rules:
  - alert: RabbitmqDown
    expr: rabbitmq_up != 1
    labels:
      severity: High
    annotations:
      summary: "Rabbitmq Down,实例:{{ $labels.instance }}"
      description: "Rabbitmq_exporter 连不上 Rabbitmq!!!!"
  - alert: Rabbitmq有未确认消息
    expr: rabbitmq_queue_messages_unacknowledged_global > 0
    for: 1m
    labels:
      severity: critital
    annotations:
      summary: "Rabbitmq有未确认消息,实例:{{ $labels.instance }}"
      description: "Rabbitmq有未确认消息>0,当前值: {{ $value }}"
EOF

热加载

bash 复制代码
docker exec -it prometheus promtool check config /etc/prometheus/prometheus.yml
curl -X POST http://localhost:9090/-/reload

添加dashboard

bash 复制代码
https://grafana.com/grafana/dashboards/10991-rabbitmq-overview
相关推荐
JLWcai2025100914 小时前
铸造领域树脂砂轮|金利威多场景解决方案,20 + 配方覆盖全需求
mongodb·zookeeper·eureka·spark·rabbitmq·memcached·storm
风吹夏回18 小时前
RabbitMQ 核心术语 + Python pika 方法完整讲解
分布式·python·rabbitmq
风吹夏回19 小时前
RabbitMQ 三种模式入门:HelloWorld、WorkQueue、PubSub
分布式·rabbitmq·ruby
霸道流氓气质20 小时前
分布式追踪与 RequestId 传播完全指南
分布式
cheems952720 小时前
[RabbitMQ高级特性] 消息确认机制:从 Ready / Unacked 到 basicAck、basicReject、basicNack 的底层拆解
分布式·rabbitmq·ruby
枫华落尽20 小时前
【Hadoop01-完全分布式运行模式】
分布式
隔壁阿布都20 小时前
ShedLock 分布式定时任务锁框架介绍
spring boot·分布式
文艺倾年20 小时前
【强化学习】数学推导专题,20W字总结(十五)
人工智能·分布式·大模型·强化学习·vibecoding
ACP广源盛1392462567320 小时前
GSV9001S@ACP#1080P 级视频处理芯片,物理 AI 普及终端的高性价比选择
大数据·人工智能·分布式·嵌入式硬件·spark
guslegend21 小时前
第1章:初始Kafka
分布式·kafka