外观
RabbitMQ 运维与观测
本页结论:看懂四个核心指标(队列深度、Unacked、消费速率、内存/磁盘告警)就能覆盖大多数 RabbitMQ 日常问题;本仓库 lab 用
rabbitmqctlJSON 输出做 Broker 侧断言。
管理接口
| 工具 | 用途 |
|---|---|
| Management UI(15672) | 队列/Exchange/绑定/连接可视化,本仓库实验容器默认开启 |
rabbitmqctl / rabbitmq-diagnostics | 节点级命令:状态、队列列表、诊断 |
| Management HTTP API | /api/queues、/api/nodes 等,供监控采集 |
| Prometheus 插件 | rabbitmq_prometheus,指标导出到 9090 端口 |
本仓库 lab 框架在断言阶段调用(示例):
bash
docker compose -p <project> exec rabbitmq \
rabbitmqctl list_queues name messages messages_ready messages_unacknowledged --formatter=json核心指标
| 指标 | 含义 | 异常信号 |
|---|---|---|
messages_ready | 队列中等待投递的消息数 | 持续增长 = 消费跟不上(积压),见 背压与积压 |
messages_unacknowledged | 已投递未 ACK 的在途消息 | 堆积 = 消费者卡死/处理过慢/忘记 ACK |
| publish/deliver/ack 速率 | 生产与消费吞吐曲线 | deliver 归零而 ready 增长 = 消费者断连 |
| 内存/磁盘 watermark | 节点资源告警线 | 触发后 Broker 流控(blocking producers),全局变慢 |
补充观测点:
- redeliver 速率:突增通常意味着消费者崩溃或处理异常(对照 可靠性 中 consumer-crash 的
redelivered=true日志)。 - 连接/Channel 数:连接泄漏与 Channel 暴涨是常见故障。
- DLQ 深度:DLQ 有消息 = 有失败需要人工处理,应直接告警。
追踪传播
本仓库 Demo 把 traceId、eventType、aggregateId 写入消息 headers,消费端日志原样带出,一条消息在 producer/consumer 两端可用同一 traceId 关联。生产环境可接 OpenTelemetry:producer 注入 context,consumer 从 headers 恢复。
常见故障速查
| 现象 | 先查什么 |
|---|---|
| 生产端突然变慢/超时 | 节点是否进入 memory/disk alarm(流控);队列是否积压 |
| 消息「消失」 | 是否发到未绑定的 Exchange(开 mandatory + basicReturn 观察);是否被 TTL/max-length 淘汰 |
| 消费停滞 | Unacked 是否打满 prefetch;消费者进程是否存活 |
| 重启后消息没了 | 队列/消息是否 durable+persistent;是否用了 Classic 单副本队列 |
积压与恢复追赶
backlog-recovery 实验先在没有消费者在线时发布 6 条持久化消息,确认 messages_ready=6;随后启动消费者追赶,最终收到 6 条不同 messageId,队列深度归零。两轮消息使用相同的 3 个业务订单号,因此业务幂等把写入收敛为 3 行,另 3 条记录为 duplicate_skipped。
bash
bash demos/rabbitmq/backlog-recovery/run.shrabbitmq / backlog-recovery
bash demos/rabbitmq/backlog-recovery/run.shassert.out.txt
PASS confirmed: 6 PASS backlogDepth: 6 PASS received: 6 PASS uniqueMessageIds: 6 PASS businessCommitted: 3 PASS businessDuplicatesSkipped: 3 PASS business_rows: 3 PASS queueDepthAfter: 0 PASS consumer.exitCode: 0 RESULT: all assertions passed
consumer.out.txt
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder". SLF4J: Defaulting to no-operation (NOP) logger implementation SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details. [consumer] timestamp=2026-10-07T10:28:22.491773208Z level=INFO service=order-service product=rabbitmq lab=backlog-recovery messageId=01M4AYGAS0RPAKM4005Z85MT9F eventType=order.created schemaVersion=1 aggregateId=order-1001 traceId=00000000000000000000000000000001 correlationId=order-1001 destination=orders.backlog consumer=consumer-1 attempt=1 redelivered=false status=received [replay-gate] timestamp=2026-10-07T10:28:22.504666557Z checkpoint=after-delivery messageId=01M4AYGAS0RPAKM4005Z85MT9F token=4fc1dc23bdac-1-after-delivery-01M4AYGAS0RPAKM4005Z85MT9F-1 status=waiting [replay-gate] timestamp=2026-10-07T10:28:23.811930804Z checkpoint=after-delivery messageId=01M4AYGAS0RPAKM4005Z85MT9F token=4fc1dc23bdac-1-after-delivery-01M4AYGAS0RPAKM4005Z85MT9F-1 status=released [consumer] timestamp=2026-10-07T10:28:23.823118129Z level=INFO service=order-service product=rabbitmq lab=backlog-recovery messageId=01M4AYGAS0RPAKM4005Z85MT9F eventType=order.created schemaVersion=1 aggregateId=order-1001 traceId=00000000000000000000000000000001 correlationId=order-1001 destination=orders.backlog attempt=1 status=business_committed [replay-gate] timestamp=2026-10-07T10:28:23.823575085Z checkpoint=before-ack messageId=01M4AYGAS0RPAKM4005Z85MT9F token=4fc1dc23bdac-1-before-ack-01M4AYGAS0RPAKM4005Z85MT9F-2 status=waiting [replay-gate] timestamp=2026-10-07T10:28:25.225816936Z checkpoint=before-ack messageId=01M4AYGAS0RPAKM4005Z85MT9F token=4fc1dc23bdac-1-before-ack-01M4AYGAS0RPAKM4005Z85MT9F-2 status=released [consumer] timestamp=2026-10-07T10:28:25.228050162Z level=INFO service=order-service product=rabbitmq lab=backlog-recovery messageId=01M4AYGASTFXYJBH007ZRWA48Y eventType=order.created schemaVersion=1 aggregateId=order-1002 traceId=00000000000000000000000000000002 correlationId=order-1002 destination=orders.backlog consumer=consumer-1 attempt=1 redelivered=false status=received [replay-gate] timestamp=2026-10-07T10:28:25.228674653Z checkpoint=after-delivery messageId=01M4AYGASTFXYJBH007ZRWA48Y token=4fc1dc23bdac-1-after-delivery-01M4AYGASTFXYJBH007ZRWA48Y-3 status=waiting [replay-gate] timestamp=2026-10-07T10:28:26.731216004Z checkpoint=after-delivery messageId=01M4AYGASTFXYJBH007ZRWA48Y token=4fc1dc23bdac-1-after-delivery-01M4AYGASTFXYJBH007ZRWA48Y-3 status=released [consumer] timestamp=2026-10-07T10:28:26.734316406Z level=INFO service=order-service product=rabbitmq lab=backlog-recovery messageId=01M4AYGASTFXYJBH007ZRWA48Y eventType=order.created schemaVersion=1 aggregateId=order-1002 traceId=00000000000000000000000000000002 correlationId=order-1002 destination=orders.backlog attempt=1 status=business_committed [replay-gate] timestamp=2026-10-07T10:28:26.734750500Z checkpoint=before-ack messageId=01M4AYGASTFXYJBH007ZRWA48Y token=4fc1dc23bdac-1-before-ack-01M4AYGASTFXYJBH007ZRWA48Y-4 status=waiting [replay-gate] timestamp=2026-10-07T10:28:28.136939500Z checkpoint=before-ack messageId=01M4AYGASTFXYJBH007ZRWA48Y token=4fc1dc23bdac-1-before-ack-01M4AYGASTFXYJBH007ZRWA48Y-4 status=released [consumer] timestamp=2026-10-07T10:28:28.138606068Z level=INFO service=order-service product=rabbitmq lab=backlog-recovery messageId=01M4AYGASV6CRYJF00633JGN6Z eventType=order.created schemaVersion=1 aggregateId=order-1003 traceId=00000000000000000000000000000003 correlationId=order-1003 destination=orders.backlog consumer=consumer-1 attempt=1 redelivered=false status=received [replay-gate] timestamp=2026-10-07T10:28:28.139041805Z checkpoint=after-delivery messageId=01M4AYGASV6CRYJF00633JGN6Z token=4fc1dc23bdac-1-after-delivery-01M4AYGASV6CRYJF00633JGN6Z-5 status=waiting [replay-gate] timestamp=2026-10-07T10:28:29.441187025Z checkpoint=after-delivery messageId=01M4AYGASV6CRYJF00633JGN6Z token=4fc1dc23bdac-1-after-delivery-01M4AYGASV6CRYJF00633JGN6Z-5 status=released [consumer] timestamp=2026-10-07T10:28:29.442915729Z level=INFO service=order-service product=rabbitmq lab=backlog-recovery messageId=01M4AYGASV6CRYJF00633JGN6Z eventType=order.created schemaVersion=1 aggregateId=order-1003 traceId=00000000000000000000000000000003 correlationId=order-1003 destination=orders.backlog attempt=1 status=business_committed [replay-gate] timestamp=2026-10-07T10:28:29.443321059Z checkpoint=before-ack messageId=01M4AYGASV6CRYJF00633JGN6Z token=4fc1dc23bdac-1-before-ack-01M4AYGASV6CRYJF00633JGN6Z-6 status=waiting [replay-gate] timestamp=2026-10-07T10:28:30.845449019Z checkpoint=before-ack messageId=01M4AYGASV6CRYJF00633JGN6Z token=4fc1dc23bdac-1-before-ack-01M4AYGASV6CRYJF00633JGN6Z-6 status=released [consumer] timestamp=2026-10-07T10:28:30.846970378Z level=INFO service=order-service product=rabbitmq lab=backlog-recovery messageId=01M4AYGASXZ20VMR00E6M21X70 eventType=order.created schemaVersion=1 aggregateId=order-1001 traceId=00000000000000000000000000000001 correlationId=order-1001 destination=orders.backlog consumer=consumer-1 attempt=1 redelivered=false status=received [replay-gate] timestamp=2026-10-07T10:28:30.847445859Z checkpoint=after-delivery messageId=01M4AYGASXZ20VMR00E6M21X70 token=4fc1dc23bdac-1-after-delivery-01M4AYGASXZ20VMR00E6M21X70-7 status=waiting [replay-gate] timestamp=2026-10-07T10:28:32.349797826Z checkpoint=after-delivery messageId=01M4AYGASXZ20VMR00E6M21X70 token=4fc1dc23bdac-1-after-delivery-01M4AYGASXZ20VMR00E6M21X70-7 status=released [consumer] timestamp=2026-10-07T10:28:32.355518140Z level=INFO service=order-service product=rabbitmq lab=backlog-recovery messageId=01M4AYGASXZ20VMR00E6M21X70 eventType=order.created schemaVersion=1 aggregateId=order-1001 traceId=00000000000000000000000000000001 correlationId=order-1001 destination=orders.backlog attempt=1 status=duplicate_skipped [replay-gate] timestamp=2026-10-07T10:28:32.355979064Z checkpoint=before-ack messageId=01M4AYGASXZ20VMR00E6M21X70 token=4fc1dc23bdac-1-before-ack-01M4AYGASXZ20VMR00E6M21X70-8 status=waiting [replay-gate] timestamp=2026-10-07T10:28:33.758332011Z checkpoint=before-ack messageId=01M4AYGASXZ20VMR00E6M21X70 token=4fc1dc23bdac-1-before-ack-01M4AYGASXZ20VMR00E6M21X70-8 status=released [consumer] timestamp=2026-10-07T10:28:33.759810166Z level=INFO service=order-service product=rabbitmq lab=backlog-recovery messageId=01M4AYGASY8XKPW500G0AB6E5N eventType=order.created schemaVersion=1 aggregateId=order-1002 traceId=00000000000000000000000000000002 correlationId=order-1002 destination=orders.backlog consumer=consumer-1 attempt=1 redelivered=false status=received [replay-gate] timestamp=2026-10-07T10:28:33.760266020Z checkpoint=after-delivery messageId=01M4AYGASY8XKPW500G0AB6E5N token=4fc1dc23bdac-1-after-delivery-01M4AYGASY8XKPW500G0AB6E5N-9 status=waiting [replay-gate] timestamp=2026-10-07T10:28:35.062919265Z checkpoint=after-delivery messageId=01M4AYGASY8XKPW500G0AB6E5N token=4fc1dc23bdac-1-after-delivery-01M4AYGASY8XKPW500G0AB6E5N-9 status=released [consumer] timestamp=2026-10-07T10:28:35.063948335Z level=INFO service=order-service product=rabbitmq lab=backlog-recovery messageId=01M4AYGASY8XKPW500G0AB6E5N eventType=order.created schemaVersion=1 aggregateId=order-1002 traceId=00000000000000000000000000000002 correlationId=order-1002 destination=orders.backlog attempt=1 status=duplicate_skipped [replay-gate] timestamp=2026-10-07T10:28:35.064440197Z checkpoint=before-ack messageId=01M4AYGASY8XKPW500G0AB6E5N token=4fc1dc23bdac-1-before-ack-01M4AYGASY8XKPW500G0AB6E5N-10 status=waiting [replay-gate] timestamp=2026-10-07T10:28:36.466752731Z checkpoint=before-ack messageId=01M4AYGASY8XKPW500G0AB6E5N token=4fc1dc23bdac-1-before-ack-01M4AYGASY8XKPW500G0AB6E5N-10 status=released [consumer] timestamp=2026-10-07T10:28:36.468062581Z level=INFO service=order-service product=rabbitmq lab=backlog-recovery messageId=01M4AYGAT0WVVWSR00TWEAN60V eventType=order.created schemaVersion=1 aggregateId=order-1003 traceId=00000000000000000000000000000003 correlationId=order-1003 destination=orders.backlog consumer=consumer-1 attempt=1 redelivered=false status=received [replay-gate] timestamp=2026-10-07T10:28:36.468550285Z checkpoint=after-delivery messageId=01M4AYGAT0WVVWSR00TWEAN60V token=4fc1dc23bdac-1-after-delivery-01M4AYGAT0WVVWSR00TWEAN60V-11 status=waiting [replay-gate] timestamp=2026-10-07T10:28:38.072453070Z checkpoint=after-delivery messageId=01M4AYGAT0WVVWSR00TWEAN60V token=4fc1dc23bdac-1-after-delivery-01M4AYGAT0WVVWSR00TWEAN60V-11 status=released [consumer] timestamp=2026-10-07T10:28:38.073656746Z level=INFO service=order-service product=rabbitmq lab=backlog-recovery messageId=01M4AYGAT0WVVWSR00TWEAN60V eventType=order.created schemaVersion=1 aggregateId=order-1003 traceId=00000000000000000000000000000003 correlationId=order-1003 destination=orders.backlog attempt=1 status=duplicate_skipped [replay-gate] timestamp=2026-10-07T10:28:38.074150101Z checkpoint=before-ack messageId=01M4AYGAT0WVVWSR00TWEAN60V token=4fc1dc23bdac-1-before-ack-01M4AYGAT0WVVWSR00TWEAN60V-12 status=waiting [replay-gate] timestamp=2026-10-07T10:28:39.376308390Z checkpoint=before-ack messageId=01M4AYGAT0WVVWSR00TWEAN60V token=4fc1dc23bdac-1-before-ack-01M4AYGAT0WVVWSR00TWEAN60V-12 status=released [consumer] timestamp=2026-10-07T10:28:39.376793732Z level=INFO service=order-service product=rabbitmq lab=backlog-recovery queue=orders.backlog received=6 status=done
inspect-db.out.txt
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder". SLF4J: Defaulting to no-operation (NOP) logger implementation SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details. [inspect] timestamp=2026-10-07T10:28:39.939590744Z level=INFO service=order-service product=rabbitmq lab=backlog-recovery business_rows=3 processed_rows=3 status=snapshot
producer.out.txt
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder". SLF4J: Defaulting to no-operation (NOP) logger implementation SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details. [producer] timestamp=2026-10-07T10:28:19.385588489Z level=INFO service=order-service product=rabbitmq lab=backlog-recovery messageId=01M4AYGAS0RPAKM4005Z85MT9F eventType=order.created schemaVersion=1 aggregateId=order-1001 traceId=00000000000000000000000000000001 correlationId=order-1001 destination=orders.backlog routingKey=orders.backlog durationMs=3 status=confirmed [producer] timestamp=2026-10-07T10:28:19.387263447Z level=INFO service=order-service product=rabbitmq lab=backlog-recovery messageId=01M4AYGASTFXYJBH007ZRWA48Y eventType=order.created schemaVersion=1 aggregateId=order-1002 traceId=00000000000000000000000000000002 correlationId=order-1002 destination=orders.backlog routingKey=orders.backlog durationMs=0 status=confirmed [producer] timestamp=2026-10-07T10:28:19.388590804Z level=INFO service=order-service product=rabbitmq lab=backlog-recovery messageId=01M4AYGASV6CRYJF00633JGN6Z eventType=order.created schemaVersion=1 aggregateId=order-1003 traceId=00000000000000000000000000000003 correlationId=order-1003 destination=orders.backlog routingKey=orders.backlog durationMs=0 status=confirmed [producer] timestamp=2026-10-07T10:28:19.390072490Z level=INFO service=order-service product=rabbitmq lab=backlog-recovery messageId=01M4AYGASXZ20VMR00E6M21X70 eventType=order.created schemaVersion=1 aggregateId=order-1001 traceId=00000000000000000000000000000001 correlationId=order-1001 destination=orders.backlog routingKey=orders.backlog durationMs=0 status=confirmed [producer] timestamp=2026-10-07T10:28:19.391496908Z level=INFO service=order-service product=rabbitmq lab=backlog-recovery messageId=01M4AYGASY8XKPW500G0AB6E5N eventType=order.created schemaVersion=1 aggregateId=order-1002 traceId=00000000000000000000000000000002 correlationId=order-1002 destination=orders.backlog routingKey=orders.backlog durationMs=0 status=confirmed [producer] timestamp=2026-10-07T10:28:19.393159513Z level=INFO service=order-service product=rabbitmq lab=backlog-recovery messageId=01M4AYGAT0WVVWSR00TWEAN60V eventType=order.created schemaVersion=1 aggregateId=order-1003 traceId=00000000000000000000000000000003 correlationId=order-1003 destination=orders.backlog routingKey=orders.backlog durationMs=0 status=confirmed [producer] timestamp=2026-10-07T10:28:19.393267436Z level=INFO service=order-service product=rabbitmq lab=backlog-recovery destination=orders.backlog confirmed=6 status=done
setup.out.txt
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder". SLF4J: Defaulting to no-operation (NOP) logger implementation SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
在 RabbitMQ 实验台查看离线积压与恢复轨道。积压不等于丢失;生产环境还必须监控积压增长斜率、磁盘水位与追赶吞吐,不能只等待队列最终清零。
安全基线(单节点实验版)
- 本仓库实验账号
guest/guest仅允许 localhost 访问(RabbitMQ 默认行为),管理端口只绑127.0.0.1。 - 生产基线:独立用户 + 最小权限(configure/write/read 正则按实体收敛)、TLS 加密 AMQP、禁用默认 guest、审计开启 management 审计日志。
- Kubernetes/Helm 部署只讲原则:单容器实验拓扑不等价生产集群;Quorum Queue 需要节点反亲和与稳定的存储。
cli-tools:纯自带 CLI 实验
sbin 共 10 项;4.x 已移除 rabbitmqctl add_queue(实测 Command not found),队列声明改用 management 镜像自带的 rabbitmqadmin declare queue。镜像内没有 curl/python3,收发由宿主机 curl 调 management HTTP API(15672)完成:publish ×3 全部 "routed":true,get 以 ack_requeue_false 消费即删除 3 条。最后 rabbitmqctl list_queues 复查队列深度归零。
rabbitmq / docker
bash demos/rabbitmq/docker/run.shassert.out.txt
--- status: verified capturedAt: "2026-08-23T15:19:49.324Z" dockerImage: "rabbitmq:4.1.4-management@sha256:294b01e1796a8acede4619f32a1c394fae1f8021e57986ea01aad38dc2a4f502" exitCode: 0 --- PASS binCount: 10 PASS nodeRunning: 1 PASS queueCreated: 1 PASS routedCount: 3 PASS consumedCount: 3 PASS consumedUnique: 3 PASS queueDepth: 0 RESULT: all assertions passed
bin-list.out.txt
[cli-tools] $ ls /opt/rabbitmq/sbin rabbitmq-defaults rabbitmq-diagnostics rabbitmq-env rabbitmq-plugins rabbitmq-queues rabbitmq-server rabbitmq-streams rabbitmq-upgrade rabbitmqctl vmware-rabbitmq
consume.out.txt
[cli-tools] $ curl -s -u guest:guest -X POST http://127.0.0.1:15672/api/queues/%2F/orders-cli/get -d '{"count":3,"ackmode":"ack_requeue_false","encoding":"auto"}'
[{"payload_bytes":11,"redelivered":false,"exchange":"","routing_key":"orders-cli","message_count":2,"properties":[],"payload":"order-cli-1","payload_encoding":"string"},{"payload_bytes":11,"redelivered":false,"exchange":"","routing_key":"orders-cli","message_count":1,"properties":[],"payload":"order-cli-2","payload_encoding":"string"},{"payload_bytes":11,"redelivered":false,"exchange":"","routing_key":"orders-cli","message_count":0,"properties":[],"payload":"order-cli-3","payload_encoding":"string"}]
create.out.txt
[cli-tools] $ rabbitmqadmin declare queue name=orders-cli durable=true queue declared
inventory.out.txt
--- status: verified capturedAt: "2026-08-23T15:19:49.324Z" dockerImage: "rabbitmq:4.1.4-management@sha256:294b01e1796a8acede4619f32a1c394fae1f8021e57986ea01aad38dc2a4f502" exitCode: 0 --- [cli-tools] $ ls /opt/rabbitmq/sbin rabbitmq-defaults rabbitmq-diagnostics rabbitmq-env rabbitmq-plugins rabbitmq-queues rabbitmq-server rabbitmq-streams rabbitmq-upgrade rabbitmqctl vmware-rabbitmq
produce.out.txt
[cli-tools] $ curl -s -u guest:guest -X POST http://127.0.0.1:15672/api/exchanges/%2F/amq.default/publish -d '{"properties":{},"routing_key":"orders-cli","payload":"order-cli-1","payload_encoding":"string"}'
{"routed":true}
[cli-tools] $ curl -s -u guest:guest -X POST http://127.0.0.1:15672/api/exchanges/%2F/amq.default/publish -d '{"properties":{},"routing_key":"orders-cli","payload":"order-cli-2","payload_encoding":"string"}'
{"routed":true}
[cli-tools] $ curl -s -u guest:guest -X POST http://127.0.0.1:15672/api/exchanges/%2F/amq.default/publish -d '{"properties":{},"routing_key":"orders-cli","payload":"order-cli-3","payload_encoding":"string"}'
{"routed":true}
session.out.txt
---
status: verified
capturedAt: "2026-08-23T15:19:49.324Z"
dockerImage: "rabbitmq:4.1.4-management@sha256:294b01e1796a8acede4619f32a1c394fae1f8021e57986ea01aad38dc2a4f502"
exitCode: 0
---
## status
[cli-tools] $ sh -c rabbitmqctl status && echo && rabbitmq-diagnostics check_running
Status of node rabbit@hello-mq-rabbitmq ...
Runtime
OS PID: 20
OS: Linux
Uptime (seconds): 6
Is under maintenance?: false
RabbitMQ version: 4.1.4
RabbitMQ release series support status: see https://www.rabbitmq.com/release-information
Node name: rabbit@hello-mq-rabbitmq
Erlang configuration: Erlang/OTP 27 [erts-15.2.7.2] [source] [64-bit] [smp:4:4] [ds:4:4:10] [async-threads:1] [jit:ns]
Crypto library: OpenSSL 3.3.5 30 Sep 2025
Erlang processes: 418 used, 1048576 limit
Scheduler run queue: 1
Cluster heartbeat timeout (net_ticktime): 60
Plugins
Enabled plugin file: /etc/rabbitmq/enabled_plugins
Enabled plugins:
* rabbitmq_prometheus
* accept
* prometheus
* rabbitmq_management
* rabbitmq_management_agent
* rabbitmq_web_dispatch
* amqp_client
* cowboy
* oauth2_client
* jose
Data directory
Node data directory: /var/lib/rabbitmq/mnesia/rabbit@hello-mq-rabbitmq
Raft data directory: /var/lib/rabbitmq/mnesia/rabbit@hello-mq-rabbitmq/quorum/rabbit@hello-mq-rabbitmq
Config files
* /etc/rabbitmq/conf.d/10-defaults.conf
Log file(s)
* <stdout>
Alarms
(none)
Tags
(none)
Memory
Total memory used: 0.1537 gb
Calculation strategy: rss
Memory high watermark setting: 0.6 of available memory, computed to: 10.0598 gb
reserved_unallocated: 0.0939 gb (61.06 %)
code: 0.0237 gb (15.44 %)
other_system: 0.0186 gb (12.12 %)
other_proc: 0.0153 gb (9.96 %)
other_ets: 0.0024 gb (1.54 %)
atom: 0.0012 gb (0.76 %)
metrics: 0.0008 gb (0.55 %)
plugins: 0.0003 gb (0.19 %)
msg_index: 0.0002 gb (0.1 %)
mgmt_db: 0.0002 gb (0.1 %)
mnesia: 0.0001 gb (0.05 %)
binary: 0.0001 gb (0.05 %)
metadata_store: 0.0 gb (0.02 %)
quorum_ets: 0.0 gb (0.0 %)
metadata_store_ets: 0.0 gb (0.0 %)
connection_other: 0.0 gb (0.0 %)
quorum_queue_procs: 0.0 gb (0.0 %)
quorum_queue_dlx_procs: 0.0 gb (0.0 %)
stream_queue_procs: 0.0 gb (0.0 %)
stream_queue_replica_reader_procs: 0.0 gb (0.0 %)
connection_readers: 0.0 gb (0.0 %)
connection_writers: 0.0 gb (0.0 %)
connection_channels: 0.0 gb (0.0 %)
queue_procs: 0.0 gb (0.0 %)
stream_queue_coordinator_procs: 0.0 gb (0.0 %)
allocated_unused: 0.0 gb (0.0 %)
File Descriptors
Total: 0, limit: 65439
Free Disk Space
Low free disk space watermark: 0.05 gb
Free disk space: 90.0695 gb
Totals
Connection count: 0
Queue count: 0
Virtual host count: 1
Listeners
Interface: [::], port: 15672, protocol: http, purpose: HTTP API
Interface: [::], port: 15692, protocol: http/prometheus, purpose: Prometheus exporter API over HTTP
Interface: [::], port: 25672, protocol: clustering, purpose: inter-node and CLI tool communication
Interface: [::], port: 5672, protocol: amqp, purpose: AMQP 0-9-1 and AMQP 1.0
Checking if RabbitMQ is running on node rabbit@hello-mq-rabbitmq ...
RabbitMQ on node rabbit@hello-mq-rabbitmq is fully booted and running
## create
[cli-tools] $ rabbitmqadmin declare queue name=orders-cli durable=true
queue declared
## produce
[cli-tools] $ curl -s -u guest:guest -X POST http://127.0.0.1:15672/api/exchanges/%2F/amq.default/publish -d '{"properties":{},"routing_key":"orders-cli","payload":"order-cli-1","payload_encoding":"string"}'
{"routed":true}
[cli-tools] $ curl -s -u guest:guest -X POST http://127.0.0.1:15672/api/exchanges/%2F/amq.default/publish -d '{"properties":{},"routing_key":"orders-cli","payload":"order-cli-2","payload_encoding":"string"}'
{"routed":true}
[cli-tools] $ curl -s -u guest:guest -X POST http://127.0.0.1:15672/api/exchanges/%2F/amq.default/publish -d '{"properties":{},"routing_key":"orders-cli","payload":"order-cli-3","payload_encoding":"string"}'
{"routed":true}
## consume
[cli-tools] $ curl -s -u guest:guest -X POST http://127.0.0.1:15672/api/queues/%2F/orders-cli/get -d '{"count":3,"ackmode":"ack_requeue_false","encoding":"auto"}'
[{"payload_bytes":11,"redelivered":false,"exchange":"","routing_key":"orders-cli","message_count":2,"properties":[],"payload":"order-cli-1","payload_encoding":"string"},{"payload_bytes":11,"redelivered":false,"exchange":"","routing_key":"orders-cli","message_count":1,"properties":[],"payload":"order-cli-2","payload_encoding":"string"},{"payload_bytes":11,"redelivered":false,"exchange":"","routing_key":"orders-cli","message_count":0,"properties":[],"payload":"order-cli-3","payload_encoding":"string"}]
## verify
[cli-tools] $ rabbitmqctl list_queues name messages
Timeout: 60.0 seconds ...
Listing queues for vhost / ...
name messages
orders-cli 0
status.out.txt
[cli-tools] $ sh -c rabbitmqctl status && echo && rabbitmq-diagnostics check_running Status of node rabbit@hello-mq-rabbitmq ... Runtime OS PID: 20 OS: Linux Uptime (seconds): 6 Is under maintenance?: false RabbitMQ version: 4.1.4 RabbitMQ release series support status: see https://www.rabbitmq.com/release-information Node name: rabbit@hello-mq-rabbitmq Erlang configuration: Erlang/OTP 27 [erts-15.2.7.2] [source] [64-bit] [smp:4:4] [ds:4:4:10] [async-threads:1] [jit:ns] Crypto library: OpenSSL 3.3.5 30 Sep 2025 Erlang processes: 418 used, 1048576 limit Scheduler run queue: 1 Cluster heartbeat timeout (net_ticktime): 60 Plugins Enabled plugin file: /etc/rabbitmq/enabled_plugins Enabled plugins: * rabbitmq_prometheus * accept * prometheus * rabbitmq_management * rabbitmq_management_agent * rabbitmq_web_dispatch * amqp_client * cowboy * oauth2_client * jose Data directory Node data directory: /var/lib/rabbitmq/mnesia/rabbit@hello-mq-rabbitmq Raft data directory: /var/lib/rabbitmq/mnesia/rabbit@hello-mq-rabbitmq/quorum/rabbit@hello-mq-rabbitmq Config files * /etc/rabbitmq/conf.d/10-defaults.conf Log file(s) * <stdout> Alarms (none) Tags (none) Memory Total memory used: 0.1537 gb Calculation strategy: rss Memory high watermark setting: 0.6 of available memory, computed to: 10.0598 gb reserved_unallocated: 0.0939 gb (61.06 %) code: 0.0237 gb (15.44 %) other_system: 0.0186 gb (12.12 %) other_proc: 0.0153 gb (9.96 %) other_ets: 0.0024 gb (1.54 %) atom: 0.0012 gb (0.76 %) metrics: 0.0008 gb (0.55 %) plugins: 0.0003 gb (0.19 %) msg_index: 0.0002 gb (0.1 %) mgmt_db: 0.0002 gb (0.1 %) mnesia: 0.0001 gb (0.05 %) binary: 0.0001 gb (0.05 %) metadata_store: 0.0 gb (0.02 %) quorum_ets: 0.0 gb (0.0 %) metadata_store_ets: 0.0 gb (0.0 %) connection_other: 0.0 gb (0.0 %) quorum_queue_procs: 0.0 gb (0.0 %) quorum_queue_dlx_procs: 0.0 gb (0.0 %) stream_queue_procs: 0.0 gb (0.0 %) stream_queue_replica_reader_procs: 0.0 gb (0.0 %) connection_readers: 0.0 gb (0.0 %) connection_writers: 0.0 gb (0.0 %) connection_channels: 0.0 gb (0.0 %) queue_procs: 0.0 gb (0.0 %) stream_queue_coordinator_procs: 0.0 gb (0.0 %) allocated_unused: 0.0 gb (0.0 %) File Descriptors Total: 0, limit: 65439 Free Disk Space Low free disk space watermark: 0.05 gb Free disk space: 90.0695 gb Totals Connection count: 0 Queue count: 0 Virtual host count: 1 Listeners Interface: [::], port: 15672, protocol: http, purpose: HTTP API Interface: [::], port: 15692, protocol: http/prometheus, purpose: Prometheus exporter API over HTTP Interface: [::], port: 25672, protocol: clustering, purpose: inter-node and CLI tool communication Interface: [::], port: 5672, protocol: amqp, purpose: AMQP 0-9-1 and AMQP 1.0 Checking if RabbitMQ is running on node rabbit@hello-mq-rabbitmq ... RabbitMQ on node rabbit@hello-mq-rabbitmq is fully booted and running
verify.out.txt
[cli-tools] $ rabbitmqctl list_queues name messages Timeout: 60.0 seconds ... Listing queues for vhost / ... name messages orders-cli 0
官方资料
- Monitoring:https://www.rabbitmq.com/docs/monitoring(checkedAt: 2026-08-19)
- Production Checklist:https://www.rabbitmq.com/docs/production-checklist(checkedAt: 2026-08-19)
- Prometheus plugin:https://www.rabbitmq.com/docs/prometheus(checkedAt: 2026-08-19)