mirror of
https://github.com/apache/rocketmq-dashboard.git
synced 2025-09-10 11:40:01 +08:00
Rename
This commit is contained in:
102
docs/1_0_0/Milestone.md
Normal file
102
docs/1_0_0/Milestone.md
Normal file
@@ -0,0 +1,102 @@
|
||||
#Deploy Plan
|
||||
|
||||
we will deploy the first rocketmq-console-ng use rocketmq-tools 3.5.8(or 4.0.0),base on [rocket-console](https://github.com/didapinchegit/rocket-console),thanks didapinche.com
|
||||
|
||||
## Framework
|
||||
* 0. we use spring-boot + bootstrap + angularjs
|
||||
|
||||
## something to improve
|
||||
* 0. clean code (checkStyle codeStyle to be done)
|
||||
* 1. international
|
||||
* 2. compress fe'resource
|
||||
* 3. navigation bar can improve
|
||||
* 4. write operation need confirm,action show the detail result
|
||||
* 5. layout/UI should improve
|
||||
* 6. change to spring-boot
|
||||
|
||||
|
||||
## something to fix
|
||||
* query Message by topic and time is not accurate, will lost some message
|
||||
* consumer can consume the message when topic has been deleted
|
||||
* can't show producerList,we can only query a online producer use topic and groupName,not easy to use.
|
||||
* resetOffset should be improve,online consumer can return the reset result but offline's can't
|
||||
* we can't set clusterName when create topic or consumer
|
||||
* when create a new consumer,if not be consumed,can't be found in consumerList
|
||||
|
||||
|
||||
## something to add
|
||||
* 1. dashboard
|
||||
|
||||
# Roadmap
|
||||
|
||||
## Improve
|
||||
- [x] clean code (checkStyle codeStyle to be done) -- StyleTang
|
||||
- [x] international -- Deploy by [tcrow](https://github.com/tcrow)
|
||||
- [x] layout/UI -- Deploy by [tcrow](https://github.com/tcrow)
|
||||
- [x] compress fe'resource
|
||||
- [x] navigation bar can improve
|
||||
- [x] write operation need confirm,action show the detail result || already have
|
||||
- [x] layout/UI should improve
|
||||
- [x] change to spring-boot -- Deploy by syzjava
|
||||
- [x] change to bootstrap angularjs -- Deploy by [tcrow](https://github.com/tcrow)
|
||||
- [x] improve search message --StyleTang
|
||||
|
||||
## Fix
|
||||
- [x] query Message by topic and time is not accurate, will lost some message -- StyleTang (need test)
|
||||
- [x] consumer can consume the message when topic has been deleted // offset be clear.if have problem,reopen it.
|
||||
- [ ] can't show producerList,we can only query a online producer use topic and groupName,not easy to use. [need this issues](https://issues.apache.org/jira/browse/ROCKETMQ-49)(next milestone)
|
||||
- [ ] resetOffset should be improve,online consumer can return the reset result but offline's can't //this version(3.5.8) may be can't fix (next milestone)
|
||||
- [x] we can't set clusterName when create topic or consumer -- StyleTang
|
||||
- [x] when create a new consumer,if not be consumed,can't be found in consumerList //it Fixed,But this page is too slow,need improve --StyleTang
|
||||
- [x] message view page,resend message (version >=3.5.8) have bug -- StyleTang
|
||||
|
||||
## Add
|
||||
- [ ] DashboardController -- Deploy by [tcrow](https://github.com/tcrow)
|
||||
- [x] rocketmq topic tps 5m line chart
|
||||
- [x] rocketmq topic top10 table
|
||||
- [x] broker load 5m line chart
|
||||
- [x] broker load top10 table
|
||||
- [ ] topic exception table(next milestone)
|
||||
|
||||
## Already Have (Deploy by StyleTang) But Can Improve
|
||||
### Cluster
|
||||
- [x] ClusterController
|
||||
- [x] Cluster OverView
|
||||
- [x] Broker Status
|
||||
- [x] Broker Config
|
||||
|
||||
### Topic
|
||||
- [x] TopicController
|
||||
- [x] TopicList
|
||||
- [x] Topic Status
|
||||
- [x] Topic Router
|
||||
- [x] View Topic Config
|
||||
- [x] Topci Add / Update
|
||||
- [X] Send A Test Topic
|
||||
- [x] Reset ConsumerGroup's Offset Under This Topic
|
||||
- [x] Delete This Topic
|
||||
|
||||
### Producer
|
||||
- [x] ProducerController
|
||||
- [x] Producer Client Info
|
||||
|
||||
|
||||
### Consumer
|
||||
- [x] ConsumerController
|
||||
- [x] ConsumerList
|
||||
- [x] Consumer Client Info
|
||||
- [x] Topic Consume Status Under This Consumer Group
|
||||
- [x] View Consumer Config
|
||||
- [x] Consumer Add / Update
|
||||
- [x] Delete This Consumer
|
||||
|
||||
### Message
|
||||
- [x] MessageController
|
||||
- [x] Query By Topic And Time
|
||||
- [x] Query By Topic And Key
|
||||
- [x] Query By MessageId(OffsetMessageId)
|
||||
- [x] A Nice Message Detail View
|
||||
- [x] Message Consume Status
|
||||
- [x] Resend Message To A Consume Group
|
||||
|
||||
|
115
docs/1_0_0/UserGuide_CN.md
Executable file
115
docs/1_0_0/UserGuide_CN.md
Executable file
@@ -0,0 +1,115 @@
|
||||
# RocketMQ使用文档
|
||||
|
||||
## 运维页面
|
||||
* 你可以修改这个服务使用的namesrv的地址
|
||||
* 你可以修改这个服务是否使用VIPChannel(如果你的mq server版本小于3.5.8,请设置不使用)
|
||||
|
||||
## 驾驶舱
|
||||
* 查看broker的消息量(总量/5分钟图)
|
||||
* 查看单一主题的消息量(总量/趋势图)
|
||||
|
||||
## 集群页面
|
||||
* 查看集群的分布情况
|
||||
* cluster与broker关系
|
||||
* broker
|
||||
* 查看broker具体信息/运行信息
|
||||
* 查看broker配置信息
|
||||
|
||||
## 主题页面
|
||||
* 展示所有的主题,可以通过搜索框进行过滤
|
||||
* 筛选 普通/重试/死信 主题
|
||||
* 添加/更新主题
|
||||
* clusterName 创建在哪几个cluster上
|
||||
* brokerName 创建在哪几个broker上
|
||||
* topicName 主题名
|
||||
* writeQueueNums 写队列数量
|
||||
* readQueueNums 读队列数量
|
||||
* perm //2是写 4是读 6是读写
|
||||
* 状态 查询消息投递状态(投递到哪些broker/哪些queue/多少量等)
|
||||
* 路由 查看消息的路由(现在你发这个主题的消息会发往哪些broker,对应broker的queue信息)
|
||||
* CONSUMER管理(这个topic都被哪些group消费了,消费情况何如)
|
||||
* topic配置(查看变更当前的配置)
|
||||
* 发送消息(向这个主题发送一个测试消息)
|
||||
* 重置消费位点(分为在线和不在线两种情况,不过都需要检查重置是否成功)
|
||||
* 删除主题 (会删除掉所有broker以及namesrv上的主题配置和路由信息)
|
||||
|
||||
## 消费者页面
|
||||
* 展示所有的消费组,可以通过搜索框进行过滤
|
||||
* 刷新页面/每隔五秒定时刷新页面
|
||||
* 按照订阅组/数量/TPS/延迟 进行排序
|
||||
* 添加/更新消费组
|
||||
* clusterName 创建在哪几个集群上
|
||||
* brokerName 创建在哪几个broker上
|
||||
* groupName 消费组名字
|
||||
* consumeEnable //是否可以消费 FALSE的话将无法进行消费
|
||||
* consumeBroadcastEnable //是否可以广播消费
|
||||
* retryQueueNums //重试队列的大小
|
||||
* brokerId //正常情况从哪消费
|
||||
* whichBrokerWhenConsumeSlowly//出问题了从哪消费
|
||||
* 终端 在线的消费客户端查看,包括版本订阅信息和消费模式
|
||||
* 消费详情 对应消费组的消费明细查看,这个消费组订阅的所有Topic的消费情况,每个queue对应的消费client查看(包括Retry消息)
|
||||
* 配置 查看变更消费组的配置
|
||||
* 删除 在指定的broker上删除消费组
|
||||
|
||||
## 发布管理页面
|
||||
* 通过Topic和Group查询在线的消息生产者客户端
|
||||
* 信息包含客户端主机 版本
|
||||
|
||||
## 消息查询页面
|
||||
* 根据Topic和时间区间查询
|
||||
*由于数据量大 最多只会展示2000条,多的会被忽略
|
||||
* 根据Topic和Key进行查询
|
||||
* 最多只会展示64条
|
||||
* 根据消息主题和消息Id进行消息的查询
|
||||
* 消息详情可以展示这条消息的详细信息,查看消息对应到具体消费组的消费情况(如果异常,可以查看具体的异常信息)。可以向指定的消费组重发消息。
|
||||
|
||||
|
||||
## HTTPS 方式访问Dashboard
|
||||
* HTTPS功能实际上是使用SpringBoot提供的配置功能即可完成,首先,需要有一个SSL KeyStore来存放服务端证书,可以使用本工程所提供的测试密钥库:
|
||||
resources/rmqcngkeystore.jks, 它可以通过如下keytool命令生成
|
||||
```
|
||||
#生成库并以rmqcngKey别名添加秘钥
|
||||
keytool -genkeypair -alias rmqcngKey -keyalg RSA -validity 3650 -keystore rmqcngkeystore.jks
|
||||
#查看keystore内容
|
||||
keytool -list -v -keystore rmqcngkeystore.jks
|
||||
#转换库格式
|
||||
keytool -importkeystore -srckeystore rmqcngkeystore.jks -destkeystore rmqcngkeystore.jks -deststoretype pkcs12
|
||||
```
|
||||
|
||||
* 配置resources/application.properties, 打开SSL的相关选项, 启动dashboard后即开启了HTTPS.
|
||||
```
|
||||
#设置https端口
|
||||
server.port=8443
|
||||
|
||||
### SSL setting
|
||||
#server.ssl.key-store=classpath:rmqcngkeystore.jks
|
||||
#server.ssl.key-store-password=rocketmq
|
||||
#server.ssl.keyStoreType=PKCS12
|
||||
#server.ssl.keyAlias=rmqcngkey
|
||||
```
|
||||
|
||||
## 登录访问Dashboard
|
||||
在访问Dashboard时支持按用户名和密码登录控制台,在操作完成后登出。需要做如下的设置:
|
||||
|
||||
* 1.在Spring配置文件resources/application.properties中修改 开启登录功能
|
||||
```$xslt
|
||||
# 开启登录功能
|
||||
rocketmq.config.loginRequired=true
|
||||
|
||||
# Dashboard文件目录,登录用户配置文件所在目录
|
||||
rocketmq.config.dataPath=/tmp/rocketmq-console/data
|
||||
```
|
||||
* 2.确保${rocketmq.config.dataPath}定义的目录存在,并且该目录下创建登录配置文件"users.properties", 如果该目录下不存在此文件,则默认使用resources/users.properties文件。
|
||||
users.properties文件格式为:
|
||||
```$xslt
|
||||
# 该文件支持热修改,即添加和修改用户时,不需要重新启动console
|
||||
# 格式, 每行定义一个用户, username=password[,N] #N是可选项,可以为0 (普通用户); 1 (管理员)
|
||||
|
||||
#定义管理员
|
||||
admin=admin,1
|
||||
|
||||
#定义普通用户
|
||||
user1=user1
|
||||
user2=user2
|
||||
```
|
||||
* 3. 启动控制台则开启了登录功能
|
118
docs/1_0_0/UserGuide_EN.md
Normal file
118
docs/1_0_0/UserGuide_EN.md
Normal file
@@ -0,0 +1,118 @@
|
||||
# RocketMQ User Guide
|
||||
|
||||
## OPS Page
|
||||
* You can change dashboard's namesrvAddr here
|
||||
* You can change the value of useVIPChannel here (if you rocketMQ version < 3.5.8,the value of useVIPChannel should be false)
|
||||
|
||||
## DashBoard Page
|
||||
* broker's message count (broker total message count/5 min trend)
|
||||
* topic's message count(topic total message count/5 min trend)
|
||||
|
||||
## Cluster Page
|
||||
* Cluster Detail
|
||||
* relation between cluster and broker
|
||||
* broker's master / salve node
|
||||
* broker'a detail info(runtime info)
|
||||
* broker's config
|
||||
|
||||
## Topic Page
|
||||
* show all the topics,you can filter topic by search bar
|
||||
* filter (Normal/retry/dead) topic
|
||||
* Add/Update Topic
|
||||
* clusterName (create on which cluster)
|
||||
* brokerName (create on which broker)
|
||||
* topicName
|
||||
* writeQueueNums
|
||||
* readQueueNums
|
||||
* perm //2 for write 4 for read 6 for write and read
|
||||
* STATUS look over message send status(send to which broker/which queue/how many messages)
|
||||
* ROUTER look update topic's router(this topic send to which broker,the broker's queue info)
|
||||
* CONSUMER MANAGE(this topic consume by which group,how about the consume state)
|
||||
* TOPIC CONFIG(check or change the topic's config)
|
||||
* SEND MESSAGE(send a test message)
|
||||
* Reset CONSUMER OFFSET (the consumer online or not online is different,you need check the reset result)
|
||||
* DELETE (will delete the topic on all broker and namesrv)
|
||||
|
||||
## Consumer Page
|
||||
* show all the consumers,you can filter consumer by search bar
|
||||
* refresh page/refresh page per 5 seconds
|
||||
* order by SubscriptionGroup/Quantity/TPS/Delay
|
||||
* Add/Update Consumer
|
||||
* clusterName (create on which cluster)
|
||||
* brokerName (create on which broker)
|
||||
* groupName (consumer group name)
|
||||
* consumeEnable (this group can't consume message if this is false)
|
||||
* consumeBroadcastEnable (can't use broadcast is this is false)
|
||||
* retryQueueNums
|
||||
* brokerId (consume form where when broker is normal)
|
||||
* whichBrokerWhenConsumeSlowly(consume form where when broker has problem)
|
||||
* CLIENT (look over online consumer's client,include subscribe info and consume mode)
|
||||
* CONSUME DETAIL (look over this consumer's consume detail,broker offset and the consumer offset,queue consumed by which client)
|
||||
* CONFIG (check or change the consumer's config)
|
||||
* DELETE (delete the consumer group on selected group)
|
||||
|
||||
## Producer Page
|
||||
* Query online producer client by topic and group
|
||||
* show client's server / version
|
||||
|
||||
## Message Page
|
||||
* Query By Topic And Time
|
||||
*Only Return 2000 Messages,the message more than 2000 will be hide
|
||||
* Query By Topic And Key
|
||||
* Only Return 64 Messages
|
||||
* Query By Topic And MessageId
|
||||
* look over this message's detail info.you can see the message's consume state(each group has one line),show the exception message if has exception.
|
||||
you can send this message to the group you selected
|
||||
|
||||
|
||||
## Access Dashboard with HTTPS
|
||||
* SpringBoot itself has provided the SSL configuration. You can use the project test Keystore:resources/rmqcngkeystore.jks. The store is generated with the following unix keytool commands:
|
||||
```
|
||||
#Generate Keystore and add alias rmqcngKey
|
||||
keytool -genkeypair -alias rmqcngKey -keyalg RSA -validity 3650 -keystore rmqcngkeystore.jks
|
||||
#View keystore content
|
||||
keytool -list -v -keystore rmqcngkeystore.jks
|
||||
#Transfer type as official
|
||||
keytool -importkeystore -srckeystore rmqcngkeystore.jks -destkeystore rmqcngkeystore.jks -deststoretype pkcs12
|
||||
```
|
||||
|
||||
* Uncomment the following SSL properties in resources/application.properties. restart Dashboard then access with HTTPS.
|
||||
|
||||
```
|
||||
#Set https port
|
||||
server.port=8443
|
||||
|
||||
### SSL setting
|
||||
server.ssl.key-store=classpath:rmqcngkeystore.jks
|
||||
server.ssl.key-store-password=rocketmq
|
||||
server.ssl.keyStoreType=PKCS12
|
||||
server.ssl.keyAlias=rmqcngkey
|
||||
```
|
||||
|
||||
## Login/Logout on Dashboard
|
||||
Access Dashboard with username and password and logout to leave the dashboard。To stage the function on, we need the steps below:
|
||||
|
||||
* 1.Turn on the property in resources/application.properties.
|
||||
```$xslt
|
||||
# open the login func
|
||||
rocketmq.config.loginRequired=true
|
||||
|
||||
# Directory of ashboard & login user configure file
|
||||
rocketmq.config.dataPath=/tmp/rocketmq-console/data
|
||||
```
|
||||
* 2.Make sure the directory defined in property ${rocketmq.config.dataPath} exists and the file "users.properties" is created under it.
|
||||
The dashboard system will use the resources/users.properties by default if a customized file is not found。
|
||||
|
||||
The format in the content of users.properties:
|
||||
```$xslt
|
||||
# This file supports hot change, any change will be auto-reloaded without Console restarting.
|
||||
# Format: a user per line, username=password[,N] #N is optional, 0 (Normal User); 1 (Admin)
|
||||
|
||||
# Define Admin
|
||||
admin=admin,1
|
||||
|
||||
# Define Normal users
|
||||
user1=user1
|
||||
user2=user2
|
||||
```
|
||||
* 3. Restart Dashboard Application after above configuration setting well.
|
Reference in New Issue
Block a user