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
相关推荐
过期动态7 小时前
【LeetCode 热题 100】移动零
java·数据结构·算法·leetcode·职场和发展·rabbitmq
水木流年追梦9 小时前
大模型入门-大模型分布式训练2
开发语言·分布式·python·算法·正则表达式·prompt
松☆9 小时前
torchtitan-npu:7B大模型在8卡NPU上的分布式训练实录
分布式
青云计划11 小时前
看门狗机制:从锁过期到自动续期的工程实践——Redisson分布式锁的生命线
分布式
ZPC821011 小时前
DGX Spark 200G 跟 100G 设备的通讯协议
大数据·分布式·spark
水木流年追梦12 小时前
大模型入门-大模型分布式训练1
开发语言·分布式·python·算法·正则表达式·prompt
ULIi096kr14 小时前
Redis 分布式锁进阶第七十二篇
数据库·redis·分布式
云祺vinchin14 小时前
云祺&南大通用:打造分布式数据库建设与灾备方案
数据库·分布式·数据安全
bn9jBl64814 小时前
Redis 分布式锁进阶第七十七篇
数据库·redis·分布式
ULIi096kr14 小时前
Redis 分布式锁进阶第七十一篇
数据库·redis·分布式