RocketMQ Web控制台监控界面介绍+部署

简介

Apache RocketMQ 的外部项目有很多,都是由Apache RocketMQ 改进提案诞生,由社区贡献和维护的。PMC 将倾向于开发者社区支持,以帮助发现和在外部存储库中孵化的初始步骤。孵化项目满足以下条件即可毕业。

地址:https://github.com/apache/rocketmq-externals/tree/master/

其中有个模块就是RocketMQ web界面监控,以前叫rocketmq-console,现在改为RocketMQ Dashboard

Apache RocketMQ Dashboard 来自apache/rocketmq-externals,这是 RocketMQ Dashboard 的第一个版本。

转移后的仓库为:https://github.com/apache/rocketmq-dashboard

Apache RoccketMQ 最先进的仪表板提供了出色的监控能力。客户端和应用程序的事件、性能和系统信息的各种图表和统计数据显然可供用户使用。

部署

Docker方式

docker pull apacherocketmq/rocketmq-console:2.0.0

目前最新的可用 docker 镜像是 apacherocketmq/rocketmq-console:2.0.0

  • 运行它(自己更改名称vrAddr和端口)
docker run -e "JAVA_OPTS=-Drocketmq.namesrv.addr=127.0.0.1:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false" -p 8080:8080 -t apacherocketmq/rocketmq-console:2.0.0

浏览器访问:http://ip:8080

SpringBootFatJar方式

拉取代码-》编译-》执行

mvn clean package -Dmaven.test.skip=true
java -jar target/rocketmq-dashboard-1.0.1-SNAPSHOT.jar
  • 如果你使用rocketmq < 3.5.8,请在启动rocketmq-dashboard时添加-Dcom.rocketmq.sendMessageWithVIPChannel=false(或者你可以在ops页面更改)
  • 更改 resource/application.properties 中的 Rocketmq.config.namesrvAddr。(或者您可以在 ops 页面中更改它)

界面指南

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

运维页

  • 你可以修改这个服务使用的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和时间区间查询 由于数据量大 最多只会展示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中修改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角色登录。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lakernote

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值