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
相关推荐
星恒讯工业路由器1 天前
分布式光伏站点分散难联网?4G/5G点对多点自组网方案解析
分布式·物联网·5g·分布式光伏·自组网·点对多点通信·4g/5g
qq_452396231 天前
第十一篇:《eBPF 进阶:自定义探针与生产级可观测性部署》
分布式
重庆小透明1 天前
Kafka 完全指南:从基础组件到核心原理(包含面试题)
java·分布式·微服务·架构·kafka
一本正经的不务正业1 天前
kafka与RocketMQ的不同
分布式·kafka·rocketmq
国科安芯1 天前
基于抗辐射MCU的卫星分布式控制系统CANFD总线架构研究
网络·人工智能·分布式·单片机·嵌入式硬件·架构·抗辐射
深蓝电商API2 天前
Redis 在分布式爬虫中的作用
redis·分布式·爬虫
凤山老林2 天前
高可用分布式任务调度架构:Spring Boot 集成 PowerJob 实战指南
spring boot·分布式·架构
Dreams_l2 天前
如何保证RabbitMQ消息可靠传输
java·rabbitmq·java-rabbitmq
海宇数据2 天前
零信任架构实战:基于海宇运营商近3个月平均账单构建自动化分布式租赁网关
人工智能·分布式·架构·自动化
IT大白鼠2 天前
MySQL 分布式集群系列 · 第二篇:架构深度拆解--NDB 三大核心节点
分布式·mysql·架构