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.

Lin is Dream
Lin is Dream
Lin is Dream
Master RocketMQ Console: From Zero to Full Monitoring in Minutes

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:19095

Using the Dashboard

Dashboard Overview

Switch the interface to Simplified Chinese for easier navigation.

Dashboard Home
Dashboard Home

Cluster

Shows all broker nodes, production TPS, consumption TPS, and overall message throughput (approximately 15 M TPS).

Cluster View
Cluster View

Topic

Lists all topics with filters; you can send test messages, reset consumption offsets, or skip backlog to quickly consume messages.

Topic Management
Topic Management

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.

Consumer Overview
Consumer Overview
Consumer Details
Consumer Details

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 Details
Message Details
Message Tracking
Message Tracking

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.

Dead Letter Handling
Dead Letter Handling

The RocketMQ Dashboard is not only a visualization tool but also a powerful operational aid that can reduce troubleshooting time by up to 80%.

Original Source

Signed-in readers can open the original source through BestHub's protected redirect.

Sign in to view source
Republication Notice

This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactadmin@besthub.devand we will review it promptly.

JavaMonitoringMessage QueueRocketMQDashboard
Lin is Dream
Written by

Lin is Dream

Sharing Java developer knowledge, practical articles, and continuous insights into computer engineering.

0 followers
Reader feedback

How this landed with the community

Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.