背景
本文所说的RocketMQ Dashboard指的是如下文章所说的RocketMQ Dashboard
官方文档安装的RocketMQ Dashboard没有开启登录功能,生产环境比较危险,任何人只要知道地址就可以查看。
最终的效果
如下图:需要使用账号、密码登录
登录后可看到正常的集群状态
具体配置
部署RocketMQ Dashboard,个人推荐使用Docker or Docker Compose部署最方便。
Docker Compose部署RocketMQ Dashboard
开启登录开关
在启动命令中增加如下参数
-Drocketmq.config.loginRequired=true
增加用户配置文件
创建如下用户配置,文件名必须是users.properties
/data/rocketmq-dashboard/data/users.properties
写入如下配置
# 提前创建目录
mkdir -p /data/rocketmq-dashboard/data
# 写入文件内容
cat >/data/rocketmq-dashboard/data/users.properties <EOF
# 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
# =============用户名和密码规则「用户名=密码,权限」,这里的权限为1表示管理员,为0表示普通用户=============
# 管理员用户
admin=xsxxxx@,1
# 普通用户
user1=Dashboar@xxxxx,0
EOF
Docker compose 配置文件
笔者使用的Docker Compose版本为
Docker Compose version v2.21.0
完整的Docker Compose配置如下
docker-compose.yml
version: '3.8'
services:
dashboard:
image: apacherocketmq/rocketmq-dashboard:latest
container_name: dashboard
restart: always
volumes:
- /data/rocketmq/logs/dashboard:/root/rocketmq/logs
- /data/rocketmq-dashboard/data:/tmp/rocketmq-console/data
ports:
- 8082:8080
environment:
JAVA_OPTS: "-Drocketmq.namesrv.addr=172.18.49.41:9876 -Drocketmq.config.loginRequired=true"
说明
挂载了两个Volumes
将RocketMQ Dashboad中的日志挂载出来,方便查看日志。
- /data/rocketmq/logs/dashboard:/root/rocketmq/logs
将RocketMQ Dashboad用户配置文件映射到容器中
- /data/rocketmq-dashboard/data:/tmp/rocketmq-console/data
在environment配置项中开启了登录认证开关。