一、mqadmin管理工具
进入RocketMQ安装位置,在bin目录下执行
./mqadmin {command} {args}
详细命令可参考
https://www.iteye.com/blog/jameswxx-2091971
https://yq.aliyun.com/articles/664981
注意事项
- 几乎所有命令都需要配置-n表示NameServer地址,格式为ip:port
- 几乎所有命令都可以通过-h获取帮助
- 如果既有Broker地址(-b)配置项又有clusterName(-c)配置项,则优先以Broker 地址执行命令;如果不配置Broker地址,则对集群中所有主机执行命令
二、集群监控平台搭建
1.概述
RocketMQ
有一个对其扩展的开源项目incubator-rocketmq-externals,这个项目中有一个子模块叫rocketmq-console
,这个便是管理控制台项目了,先将incubator-rocketmq-externals拉到本地,因为我们需要自己对rocketmq-console
进行编译打包运行。
文档:https://rocketmq-1.gitbook.io/rocketmq-connector/rocketmq-connect-1/rocketmq-console
2.下载并编译打包
git clone https://github.com/apache/rocketmq-externals
cd rocketmq-console
mvn clean package -Dmaven.test.skip=true
注意:打包前在rocketmq-console
中配置namesrv
集群地址:
rocketmq.config.namesrvAddr=192.168.25.135:9876;192.168.25.138:9876
启动rocketmq-console:
java -jar rocketmq-console-ng-1.0.0.jar
启动成功后,我们就可以通过浏览器访问http://localhost:8080
进入控制台界面了,如下图:
集群状态:
官网源码找不到,自传源码:https://github.com/fatsnakeok/rocketmq-externals-master.git
******** 最新版已经改为docker了 ********
- 1、下载镜像
docker pull styletang/rocketmq-console-ng
#下载过程会比较慢请耐心等待
- 2、创建容器
docker run --link rmqnamesrv:rmqnamesrv -e "JAVA_OPTS=-Drocketmq.namesrv.addr=rmqnamesrv1:19876 -Dcom.rocketmq.sendMessageWithVIPChannel=false" -p 8001:8080 -t styletang/rocketmq-console-ng
docker run -e "JAVA_OPTS=-Drocketmq.namesrv.addr=docker.for.mac.host.internal:19876 -Dcom.rocketmq.sendMessageWithVIPChannel=false" -p 8082:8080 -t styletang/rocketmq-console-ng
在宿主机(MacOS系统)上运行了原生的RocketMQ服务,为了方便管理,需要以Docker方式运行RocketMQ的管理工具——rocketmq-console (项目地址:https://github.com/apache/rocketmq-externals/tree/master/rocketmq-console)。
在容器的启动命令中需要指定RocketMQ的NameServer的位置,由于RocketMQ运行在宿主机,因此使用如下命令:
docker run -e "JAVA_OPTS=-Drocketmq.namesrv.addr=docker.for.mac.host.internal:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false" -p 8082:8080 -t styletang/rocketmq-console-ng:1.0.0
红色部分即表示Docker引擎运行所在的宿主机。
- 3、打开控制台
地址:http://rmq-console.cn:18000
本地请访问:localhost:8001
4、问题总结:
1】在实际使用中,会出现获取不到broker的信息,如果broker(docker地址:A,物理机地址:B。配置brokerIP1 =B),那么从console端直接访问B地址,可能不识别,创建容器时需要“--link rmqbroker:B”让console容器解析B地址。5、结束语
以后有更新版本也可按照上述方法修改,创建镜像。6、参考文档:
https://github.com/apache/rocketmq-externals/tree/master/rocketmq-console