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 天前
Java-207 RabbitMQ Direct 交换器路由:RoutingKey 精确匹配、队列多绑定与日志分流实战
java·消息队列·rabbitmq·erlang·ruby·java-rabbitmq
共享家95271 天前
从 Redis 到分布式架构
redis·分布式·架构
2501_940198691 天前
【前瞻创想】Kurator云原生实战:打造企业级分布式云原生基础设施的完整指南与深度实践
分布式·云原生
Light601 天前
数据要素与数据知识产权交易中心建设专项方案——以领码 SPARK 融合平台为技术底座,构建可评估、可验证、可交易、可监管的数据要素工程体系
大数据·分布式·spark
2 天前
TIDB——TIKV——raft
数据库·分布式·tidb
永亮同学2 天前
【探索实战】从零开始搭建Kurator分布式云原生平台:详细入门体验与功能实战分享!
分布式·云原生·交互
2 天前
TIDB——TIKV——读写与coprocessor
数据库·分布式·tidb·
2 天前
TIDB——PD(placement Driver)
java·数据库·分布式·tidb·
Alluxio2 天前
Alluxio正式登陆Oracle云市场,为AI工作负载提供TB级吞吐量与亚毫秒级延迟
人工智能·分布式·机器学习·缓存·ai·oracle
sinat_363954232 天前
canal-deployer1.1.8 + mysql + rabbitmq消息队列
mysql·rabbitmq