温馨提示×

Ubuntu RabbitMQ如何监控与日志

小樊
31
2025-12-14 22:19:40
栏目: 智能运维

Ubuntu 上建议以“管理控制台 + Prometheus 指标 + 日志文件/追踪”的组合来落地监控与日志,既满足日常巡检,又便于长期趋势与告警


监控方案总览

  • 管理控制台(Web UI):启用后访问 http://:15672,查看节点概览、队列、连接、消息速率、内存/磁盘/FD 等,适合日常巡检与故障定位。
  • Prometheus + Grafana:启用 rabbitmq_prometheus 插件,暴露 http://:15692/metrics,用 Prometheus 抓取并配置告警,Grafana 导入官方看板(如 ID 10991)做可视化。
  • 命令行巡检:用 rabbitmqctl status / list_queues / list_connections 等快速核查节点与队列状态。
  • 第三方监控:如 Zabbix/Nagios 等可通过脚本/插件采集指标与状态。

启用与配置监控组件

  • 启用管理插件(Web UI)

    • 执行:sudo rabbitmq-plugins enable rabbitmq_management
    • 访问:http://:15672(默认账号 guest/guest,生产环境请创建专用账号与权限)
  • 启用 Prometheus 插件(指标)

    • 执行:sudo rabbitmq-plugins enable rabbitmq_prometheus
    • 指标端点:http://:15692/metrics
    • Prometheus 抓取示例:
      • job_name: ‘rabbitmq’
      • static_configs: targets: [‘:15692’]
      • metrics_path: ‘/metrics’
      • scheme: http
    • Grafana 导入看板:官方 Dashboard ID 10991(RabbitMQ Management)
  • 常用 CLI 巡检命令

    • 节点状态:sudo rabbitmqctl status
    • 队列概览:sudo rabbitmqctl list_queues name messages_ready messages_unacknowledged consumers memory
    • 连接与信道:sudo rabbitmqctl list_connections name state peer_host peer_port channels
    • 其他:list_exchanges / list_users / list_consumers

日志体系与配置

  • 默认日志路径与内容

    • 路径:/var/log/rabbitmq/
    • 文件:rabbit@.log(运行日志)、rabbit@-sasl.log(SASL 认证日志)、rabbitmq-startup.log(启动日志)等,包含版本、节点名、内存/磁盘限制、连接认证等关键信息。
  • 查看与变更日志路径

    • 查看当前生效路径:rabbitmq-diagnostics -q log_location
    • 自定义路径(环境变量或配置文件):
      • /etc/rabbitmq/rabbitmq-env.conf 中设置:LOG_BASE=/data/logs/rabbitmq
      • 或设置:RABBITMQ_LOGS=/data/logs/rabbitmq.logRABBITMQ_SASL_LOGS=/data/logs/rabbitmq-sasl.log
    • 修改后重启节点生效。
  • 日志级别与动态调优

    • /etc/rabbitmq/rabbitmq.conf 中设置(示例为仅记录连接 warning 级别):
      • [{rabbit, [{log_levels, [{connection, warning}]}]}].
    • 动态查看/调整(示例):rabbitmqctl set_vm_memory_high_watermark 0.5(将内存高水位调整到 50%,默认 0.4
  • 消息内容追踪(Tracing,仅用于排障)

    • 启用插件:sudo rabbitmq-plugins enable rabbitmq_tracing
    • 开启追踪:sudo rabbitmqctl trace_on(可按 -p 指定 vhost)
    • 管理界面 Admin → Tracing 可创建/管理 trace;会自动创建 amq.rabbitmq.trace / amq.rabbitmq.log 两个 topic 交换机用于订阅收发事件
    • 注意:开启 trace 会带来额外开销,排查完成后及时 trace_off 关闭

关键告警与巡检要点

  • 概览页核心指标

    • Total Queued Messages(堆积)、Message Rates(发布/消费速率)、Connections/ChannelsErlang ProcessesMemory Usage / Disk SpaceFile Descriptors / Sockets
    • 经验阈值:内存 > 80%磁盘可用 < 2GBFD 使用率 > 90% 应立即告警
  • 队列维度重点

    • Ready 持续增长:消费者处理慢或异常
    • Unacked 高:消费者卡住未确认
    • Consumers=0:消费者服务宕机或未注册
  • 节点与系统资源

    • 关注 内存/磁盘/文件描述符 的硬限制与告警,避免因资源耗尽导致阻塞或不可用

0