RocketMQ Dashboard 是 RocketMQ 的管控利器,为用户提供客户端和应用程序的各种事件、性能的统计信息,支持以可视化工具代替 Topic 配置、Broker 管理等命令行操作。

介绍

功能概览

面板 功能
运维 修改nameserver 地址; 选用 VIPChannel
驾驶舱 查看 broker, topic 消息量
集群 集群分布,broker 配置、运行信息
主题 搜索、筛选、删除、更新/新增主题,消息路由,发送消息,重置消费位点
消费者 搜索、删除、新增/更新消费者组,终端,消费详情,配置
消费者 消息记录,私信消息,消息轨迹等消息详情

操作面板:

快速开始

系统要求:

  • Linux/Unix/Mac
  • 64bit JDK 1.8+
  • Maven 3.2.x
  • 启动 RocketMQ

网络配置:

  • 云服务器可远程访问或本地虚拟机可 PING 通外网
  • rocketmq 配置文件 broker.conf / broker-x.properties 设置 nameserver 地址和端口号
  • 用配置文件启动 broker

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中修改rocketmq.config.loginRequired=true开启登录功能
# 开启登录功能
rocketmq.config.loginRequired=true

# Dashboard文件目录,登录用户配置文件所在目录
rocketmq.config.dataPath=/tmp/rocketmq-console/data
2. 确保${rocketmq.config.dataPath}定义的目录存在,并且该目录下创建登录配置文件”users.properties”, 如果该目录下不存在此文件,则默认使用resources/users.properties文件。 users.properties文件格式为:
# 该文件支持热修改,即添加和修改用户时,不需要重新启动console
# 格式, 每行定义一个用户, username=password[,N]  #N是可选项,可以为0 (普通用户); 1 (管理员)  

#定义管理员 
admin=admin,1

#定义普通用户
user1=user1
user2=user2
3. 启动控制台则开启了登录功能

权限检验

如果用户访问console时开启了登录功能,会按照登录的角色对访问的接口进行权限控制。

1. 在Spring配置文件resources/application.properties中修改rocketmq.config.loginRequired=true开启登录功能
# 开启登录功能
rocketmq.config.loginRequired=true

# Dashboard文件目录,登录用户配置文件所在目录
rocketmq.config.dataPath=/tmp/rocketmq-console/data
2. 确保${rocketmq.config.dataPath}定义的目录存在,并且该目录下创建访问权限配置文件”role-permission.yml”, 如果该目录下不存在此文件,则默认使用resources/role-permission.yml文件。该文件保存了普通用户角色所有能访问的接口地址。 role-permission.yml文件格式为:
# 该文件支持热修改,即添加和修改用户时,不需要重新启动console
# 格式,如果增加和删除接口权限,直接在列表中增加和删除接口地址即可。
# 接口路径配置支持通配符
# * 表示匹配0或多个不是/的字符
# ** 表示匹配0或多个任意字符
# ? 表示匹配1个任意字符

rolePerms:
  # 普通用户
  ordinary:
    - /rocketmq/nsaddr
    - /ops/*
    - /dashboard/**
    - /topic/*.query
    - /topic/sendTopicMessage.do
    - /producer/*.query
    - /message/*
    - /messageTrace/*
    - /monitor/*
    ....
3.前端页面显示上,为了更好区分普通用户和admin用户权限,关于资源的删除、更新等操作按钮不对普通用户角色显示,如果要执行资源相关操作,需要退出使用admin角色登录。

https://github.com/apache/rocketmq-dashboard/blob/master/docs/1_0_0/UserGuide_CN.md

作者:Jeebiz  创建时间:2023-01-14 22:09
最后编辑:Jeebiz  更新时间:2024-09-23 10:03