Master RocketMQ Console: From Zero to Full Monitoring in Minutes
This article walks you through installing and using the RocketMQ Dashboard to monitor topics, brokers, producers, consumers, and message details, explains common pitfalls such as client‑ID conflicts in Docker, and demonstrates how to troubleshoot consumption issues, TPS metrics, and dead‑letter handling.
RocketMQ provides a dedicated console (RocketMQ Dashboard) that enables real‑time monitoring of topics, brokers, producers, consumers, and message details, helping developers and operators quickly diagnose problems like unknown consumption status, TPS anomalies, and dead‑letter handling.
Installation
Prerequisites: Java and Maven installed, and a running NameServer and Broker.
# 1 Download binary package
wget https://github.com/apache/rocketmq-dashboard/archive/refs/tags/rocketmq-dashboard-2.0.0.tar.gz
# 2 Extract package
tar -zxvf rocketmq-dashboard-2.0.0.tar.gz
cd rocketmq-dashboard-rocketmq-dashboard-2.0.0
# 3 Build JAR (skip tests)
mvn clean package -Dmaven.test.skip=true
# 4 Start the dashboard
nohup java -jar rocketmq-dashboard-2.0.0.jar \
--server.port=19095 \
--rocketmq.config.namesrvAddr=127.0.0.1:9876 > dashboard.log 2>&1 &
# 5 View logs and process
tail -fn 10 dashboard.log
ps -aux|grep rocketmq-dashboard
# 6 Stop the process
kill -15 <pid>
# 7 Access the UI
http://localhost:19095Using the Dashboard
Dashboard Overview
Switch the interface to Simplified Chinese for easier navigation.
Cluster
Shows all broker nodes, production TPS, consumption TPS, and overall message throughput (approximately 15 M TPS).
Topic
Lists all topics with filters; you can send test messages, reset consumption offsets, or skip backlog to quickly consume messages.
Consumer
Displays all consumer groups, their throughput, delayed messages, and client IPs. Client IDs follow the format clientIP@BrokerIP:PORT@unitName and must be unique; otherwise NameServer cannot route messages correctly.
When deploying in Docker, the container’s PID is always 1, causing identical client IPs. If unitName is not set, RocketMQ may generate a unique value based on the JVM start timestamp to avoid ID collisions.
Message
You can view each message’s content, consumption time, status, and even resend it. Filtering options include messageId, messageKey, and topic.
Message tracking types include NOT_ONLINE (consumer not running), CONSUMED (already consumed), NOT_CONSUME_YET (not yet consumed), UNKNOW_EXCEPTION (error), and CONSUMED_BUT_FILTERED (filtered by tag).
Dead‑Letter Messages
After exceeding retry limits, failed messages go to a dead‑letter queue; once the consumer is fixed, you can batch‑re‑deliver these messages.
The RocketMQ Dashboard is not only a visualization tool but also a powerful operational aid that can reduce troubleshooting time by up to 80%.
Signed-in readers can open the original source through BestHub's protected redirect.
This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactand we will review it promptly.
Lin is Dream
Sharing Java developer knowledge, practical articles, and continuous insights into computer engineering.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.
