You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Pod控制台跟踪Kubernetes环境中RabbitMQ队列的入站消息

RabbitMQ 队列消息投递追踪方案

以下方案均可直接在RabbitMQ Pod内部控制台执行,无需访问Web管理界面:

方案1:临时轮询监控消息数变化

无需修改RabbitMQ配置,适合临时排查场景,可实时检测队列新增消息:

  1. 替换脚本内的目标队列名、vhost(非默认vhost需要配置)后直接执行:
# 配置项
TARGET_QUEUE="你的目标队列名称"
VHOST="/" # 非默认vhost请修改为实际名称
CHECK_INTERVAL=1 # 采样间隔,单位秒

# 初始化初始消息数
LAST_COUNT=$(rabbitmqctl -p ${VHOST} list_queues name messages | grep "^${TARGET_QUEUE}\s" | awk '{print $2}')
echo "$(date '+%Y-%m-%d %H:%M:%S') 开始监控队列 ${TARGET_QUEUE},当前消息数:${LAST_COUNT}"

while true; do
    CURRENT_COUNT=$(rabbitmqctl -p ${VHOST} list_queues name messages | grep "^${TARGET_QUEUE}\s" | awk '{print $2}')
    # 检测到新增消息
    if [ ${CURRENT_COUNT} -gt ${LAST_COUNT} ]; then
        echo "$(date '+%Y-%m-%d %H:%M:%S') 新消息投递成功:新增 $((CURRENT_COUNT - LAST_COUNT)) 条,当前总消息数 ${CURRENT_COUNT}"
    fi
    # 检测到消息被消费
    if [ ${CURRENT_COUNT} -lt ${LAST_COUNT} ]; then
        echo "$(date '+%Y-%m-%d %H:%M:%S') 消息被消费:减少 $((LAST_COUNT - CURRENT_COUNT)) 条,当前总消息数 ${CURRENT_COUNT}"
    fi
    LAST_COUNT=${CURRENT_COUNT}
    sleep ${CHECK_INTERVAL}
done
  1. 如需查看更细分的状态,可将命令中的messages替换为以下指标:
    • messages_ready:待消费的消息数
    • messages_unacknowledged:已投递未确认的消息数

方案2:开启Firehose追踪全量消息详情

如果需要确认每一条消息的路由规则、内容是否正确,可开启RabbitMQ内置的消息追踪功能:

  1. 开启Firehose(vhost级别,非默认vhost请加-p参数):
rabbitmqctl trace_on
  1. 绑定临时队列接收所有消息投递事件:
# 创建临时追踪队列
rabbitmqctl declare queue name=trace_tmp durable=false
# 绑定到内置trace交换机,匹配所有消息发布事件
rabbitmqctl bind queue source=amq.rabbitmq.trace destination=trace_tmp routing_key="publish.#"
  1. 消费trace_tmp队列的消息,即可查看每一条投递消息的完整属性,包括路由键、目标队列、消息内容、投递时间等,确认是否符合预期。

排查完成后务必关闭Firehose避免额外性能损耗:rabbitmqctl trace_off

方案3:通过累计统计值确认投递结果

如果Pod内安装了rabbitmqadmin工具(官方镜像默认自带),可以直接查询队列创建以来的累计消息流入量,只要该数值增长即可确认消息投递成功:

# 替换队列名和vhost
rabbitmqadmin -V 你的vhost名称 list queues name message_stats.publish_details.count | grep "你的目标队列名称"

返回结果中第二个数值就是队列累计收到的消息总数。

内容的提问来源于stack exchange,提问作者Adil Abu Amir Rakhimbekov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 22:36:03