之前本来想装kafka-manager,现在叫做CMAK,后来发现滴滴开源的kafka-manager,功能更丰富。看了下它的架构图和源码,还是很值得参考和借鉴的。
让我们来看看didi kafka-manager官网介绍的功能:
一站式 ApacheKafka
集群指标监控与运维管控平台
主要功能特性
集群监控维度
- 多版本集群管控,支持从
0.10.2
到2.4
版本; - 集群Topic、Broker等多维度历史与实时关键指标查看;
集群管控维度
- 集群运维,包括逻辑Region方式管理集群;
- Broker运维,包括优先副本选举;
- Topic运维,包括创建、查询、扩容、修改属性、数据采样及迁移等;
- 消费组运维,包括指定时间或指定偏移两种方式进行重置消费偏移;
用户使用维度
- 管理员用户与普通用户视角区分;
- 管理员用户与普通用户权限区分;
kafka-manager架构图
安装手册
环境依赖
Maven3.5.0+
(后端打包依赖)node v8.12.0+
(前端打包依赖)Java8+
(运行环境需要)MySQL
或PostgreSQL
(数据存储)
环境初始化
mysql建库kafka-manager,执行初始化脚本 createmysqltable.sql,从而创建所需的MySQL库及表,默认创建的库名是 kafka_manager
。
打包
执行 mvn install
命令即可。
备注:每一次执行 mvn install
命令,都将在 web/src/main/resources/templates
下面生成最新的前端资源文件,如果 console
模块下的代码没有变更,可以修改 ./pom.xml
文件,忽略对 console
模块的打包。
在对console执行npm的过程中遇到下面的错误:
“Unexpected end of JSON input while parsing near···”
解决方法:先清除缓存,再重新安装
清除缓存
npm cache clean --force
在重新执行命令
启动
############# application.yml 是配置文件 cp web/src/main/resources/application.yml web/target/ cd web/target/ nohup java -jar kafka-manager-web-1.0.0-SNAPSHOT.jar --spring.config.location=./application.yml > /dev/null 2>&
由于集群8080端口被占用,我们改成了9005
Web界面
用管理员帐号admin/admin登录
我们需要添加kafka集群
这里注意,我们CDH中zookeeper的连接地址为 cdh1.macro.com:2181,cdh2.macro.com:2181,cdh3.macro.com:2181/kafka
后续我们深度使用,看会遇到哪些问题。