温馨提示×

Linux里RabbitMQ怎么监控

小樊
39
2025-11-19 02:00:22
栏目: 智能运维

Linux下RabbitMQ监控实践

一 快速巡检与命令行监控

  • 节点健康与诊断
    • 检查节点存活:rabbitmq-diagnostics -q ping(返回“Ping succeeded”为正常)
    • 查看节点状态:rabbitmq-diagnostics -q status
    • 查看告警:rabbitmq-diagnostics -q alarms
    • 网络与磁盘检查:rabbitmq-diagnostics check_networkrabbitmq-diagnostics check_disk_free
  • 运行时指标与资源
    • 节点概览:rabbitmqctl status
    • 队列与消息:rabbitmqctl list_queues name messages_ready messages_unacknowledged consumers memory
    • 连接与通道:rabbitmqctl list_connectionsrabbitmqctl list_channels
    • 交换机与绑定:rabbitmqctl list_exchangesrabbitmqctl list_bindings
  • 日志定位
    • 默认日志路径:/var/log/rabbitmq/rabbit@<主机名>.log,关注节点启动、内存/磁盘告警、连接异常等日志。

二 Web管理控制台监控

  • 启用管理插件并访问
    • 启用:rabbitmq-plugins enable rabbitmq_management
    • 访问:http://<IP>:15672(默认账号 guest/guest,生产环境请创建专用账号并分配权限)
  • 重点观测页面
    • Overview:总消息数、消息速率(发布/消费)、Connections/ChannelsMemory UsageDisk SpaceFile Descriptors
    • Connections:客户端 IP/端口、状态、vhost、速率,支持强制关闭异常连接
    • Queues:每个队列的 Ready/UnackedConsumers、内存占用、策略标记(如 D/T/S、SAC)
  • 使用建议
    • 适合日常巡检与故障排查;不提供历史趋势与自动告警,需配合时序监控与告警系统。

三 Prometheus + Grafana 专业监控与告警

  • 启用内置指标端点
    • 启用插件:rabbitmq-plugins enable rabbitmq_prometheus
    • 默认指标端口:15692(部分版本或配置可能为 5552,以实际环境为准)
    • 验证端点:curl http://localhost:15692/metrics
  • Prometheus 抓取配置
    • 示例:
      scrape_configs:
        - job_name: 'rabbitmq'
          static_configs:
            - targets: ['<RabbitMQ服务器IP>:15692']
          metrics_path: '/metrics'
          scheme: http
      
  • Grafana 可视化
    • 导入官方看板模板:ID 10991(RabbitMQ Management),覆盖节点资源、队列趋势、发布/消费速率、连接/信道、死信队列等
  • 关键告警示例
    • 队列积压:expr: rabbitmq_queue_messages > 1000 for: 5m
    • 节点内存高:expr: rabbitmq_node_mem_used / rabbitmq_node_mem_limit > 0.8
    • 磁盘空间低:expr: rabbitmq_node_disk_free < 2147483648(小于 2GB

四 日志与消息追踪

  • 日志分析
    • 路径:/var/log/rabbitmq/rabbit@<主机名>.log,用于定位启动、告警、连接与策略加载等事件
  • 消息追踪
    • Firehose:将消息的 publishdeliver 事件以记录形式发送到 amq.rabbitmq.trace(topic 类型),routing key 形如 publish.<exchange>deliver.<queue>,便于端到端排查
    • rabbitmq_tracing 插件:提供可视化追踪界面,按需开启与清理,避免性能开销
  • 使用建议:追踪仅用于问题定位,生产环境谨慎长期开启

五 生产环境监控清单与阈值建议

  • 资源与告警
    • 内存使用率 > 80%
    • 可用磁盘空间 < 2GB
    • 文件描述符使用率 > 90%
  • 业务与队列
    • Ready 持续增长:消费者处理慢或宕机
    • Unacked 高:消费者卡住未确认或异常
    • Consumers=0:消费者服务不可用
  • 连接与通道
    • 异常断开频繁:检查网络质量、心跳与客户端配置
  • 集群与告警
    • 关注 rabbitmq-diagnostics alarms 的本地与集群告警
    • 结合 Prometheus 做多节点聚合与历史趋势分析

0