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
相关推荐
铁锹少年2 小时前
当多进程遇上异步:一次 Celery 与 Async SQLAlchemy 的边界冲突
分布式·后端·python·架构·fastapi
大千AI助手4 小时前
分布式奇异值分解(SVD)详解
人工智能·分布式·spark·奇异值分解·svd·矩阵分解·分布式svd
明达智控技术4 小时前
MR30分布式IO在自动上料机的应用
分布式·物联网·自动化
亿牛云爬虫专家4 小时前
用 Playwright + 容器化做分布式浏览器栈:调度、会话管理与资源回收
分布式·docker·容器·浏览器·爬虫代理·新闻网站·playwright
yours_Gabriel4 小时前
【分布式事务】Seata分布式解决方案
java·分布式·微服务
wearegogog1235 小时前
用docker搭建selenium grid分布式环境
分布式·selenium·docker
敲上瘾7 小时前
Linux系统C++开发环境搭建工具(三)—— brpc使用指南
linux·c++·分布式·rpc
qq_12498707539 小时前
基于hadoop的电商用户行为分析系统(源码+论文+部署+安装)
大数据·hadoop·分布式·毕业设计
后端小张9 小时前
【案例实战】初探鸿蒙开放能力:从好奇到实战的技术发现之旅
分布式·华为·云计算·harmonyos·鸿蒙·鸿蒙系统·万物互联
Xander W10 小时前
基于K8s集群的PyTorch DDP 框架分布式训练测试(开发机版)
人工智能·pytorch·分布式·python·深度学习·kubernetes