监控、指标与告警

使用平台监控图表和告警策略来观察 RabbitMQ 的资源使用情况、broker 健康状态、队列增长和流量模式。监控应回答两个不同的问题:

  • 实例是否足够健康,能够接受流量?
  • 负载是否能够跟上消息量和保留目标?

指标采集

平台默认会收集 RabbitMQ 指标。内置监控图表展示了最常见的 broker 和资源信号,便于进行运维检查和性能调优。

默认情况下,RabbitMQ 指标由 broker 通过端口 15692 暴露。如果启用了独立 exporter 集成(spec.exporter.enabled=true),指标也可以从 exporter 服务的端口 9419 获取。

验证 broker listener 是否存在:

kubectl -n <namespace> exec <instance-name>-server-0 -- \
  rabbitmq-diagnostics listeners

验证 Service 是否暴露了预期端口:

kubectl -n <namespace> get svc <instance-name>

关键指标类别

类别关注内容重要原因
实例可用性RabbitmqCluster phase、就绪状态和服务可达性表示从平台和网络视角看集群是否可用。
连接和 channel连接数、channel 数、consumer 数突然下降或激增通常表示客户端故障或连接风暴。
发布和投递速率消息入站、投递、确认和重投递速率表示 producer 和 consumer 是否保持平衡。
队列堆积量messages_readymessages_unacknowledged、队列数量指示 consumer 堆积量、卡住的 consumer 或重试循环。
内存内存使用率、high watermark、内存告警内存告警会阻止 publisher 并降低吞吐量。
磁盘可用磁盘空间和磁盘告警磁盘告警会阻止 publisher,并表明存在堆积量或存储容量规划问题。
文件描述符和 socket已使用的文件描述符和 socket 数量保护 broker 避免耗尽与连接相关的资源。
插件和 listenerManagement、Prometheus、TLS、Shovel 或 Federation listener确认运维功能在更新后仍然保持启用。

RabbitMQ 默认主要导出 broker 级别的指标。当你需要更细粒度的按队列或按 exchange 分析时,请将 broker 指标与应用指标、队列检查命令以及工作负载特定的图表结合使用。

推荐的告警信号

为以下条件创建或调整告警策略:

信号推荐起点运维含义
实例可用性30 秒内 != 1集群对客户端并非完全可用。
节点内存利用率30 秒内 > 80%内存压力正在上升,可能触发 broker 告警。
节点存储利用率30 秒内 > 80%broker 正在接近磁盘压力和发布阻塞风险。
channel 数基于应用设计的阈值突然增长可能表示连接抖动或 channel 泄漏。
连接数基于应用设计的阈值大幅下降或激增通常表示客户端或网络问题。
消息写入频率基于预期工作负载的阈值下降可能表示 producer 问题;激增可能需要扩容或限制堆积量。
队列堆积量ready 或 unacknowledged 消息持续增长consumer 未能跟上,或重试模式不健康。

如何解读常见信号

信号解释建议后续操作
磁盘告警处于激活状态broker 正在进行自我保护,因为可用空间低于配置的 watermark。检查堆积量、存储使用情况和消息保留策略。
内存告警处于激活状态broker 正在承受内存压力,并且可能阻止 publisher。检查连接抖动、队列增长和内存消耗较大的工作负载。
messages_ready 增长consumer 未能足够快地从队列中取走消息。检查 consumer 健康状况、扩缩容、堆积量控制和重试拓扑。
messages_unacknowledged 增长consumer 持有消息投递的时间超过预期。检查 consumer 延迟、prefetch、下游依赖以及卡住的 consumer。
连接数急剧下降producer 或 consumer 失去了连通性。检查服务暴露、TLS、凭据和 broker 告警。
连接数急剧上升客户端可能在反复重连。检查滚动重启、DNS、TLS 失败和应用重连循环。

告警策略指导

前往 Application Service 的 Alerts > Alert Policies 页面,为 RabbitMQ 创建告警策略。内置指标是启用基础覆盖范围最快的方式。当内置指标不足以满足需求时,请创建基于自定义 PromQL 的告警,并在生产环境依赖它们之前先进行测试。

有关配置和使用告警的更多信息,请参阅平台的 Alert Management 文档。

相关信息