文章目录
一、kafka-manager介绍
CMAK (Cluster Manager for Apache Kafka, previously known as Kafka Manager)
CMAK (previously known as Kafka Manager) is a tool for managing Apache Kafka clusters. See below for details about the name change.
CMAK supports the following:
- Manage multiple clusters
- Easy inspection of cluster state (topics, consumers, offsets, brokers, replica distribution, partition distribution)
- Run preferred replica election
- Generate partition assignments with option to select brokers to use
- Run reassignment of partition (based on generated assignments)
- Create a topic with optional topic configs (0.8.1.1 has different configs than 0.8.2+)
- Delete topic (only supported on 0.8.2+ and remember set delete.topic.enable=true in broker config)
- Topic list now indicates topics marked for deletion (only supported on 0.8.2+)
- Batch generate partition assignments for multiple topics with option to select brokers to use
- Batch run reassignment of partition for multiple topics
- Add partitions to existing topic
- Update config for existing topic
- Optionally enable JMX polling for broker level and topic level metrics.
- Optionally filter out consumers that do not have ids/ owners/ & offsets/ directories in zookeeper.
二、kafka-manager安装
kafka-manager 3.0.0.2 以下版本官方只提供源码,需要自己对源码进行编译或者下载网络中已经编译好的zip安装包。
kafka-manager 3.0.0.2 及以上版本官方提供相应编译好的zip安装包,但要求环境为JDK11及以上。
本文将以kafka-manager-2.0.0.2讲解安装和使用,相关编译因为比较费时费力,还几乎很难编译成功,所以本文省略编译过程。
kafka-manager-2.0.0.2.zip下载地址为:https://pan.baidu.com/s/1cOhT1onM3B1rwQHeg5qPEQ?pwd=0yso
- 安装计划
选择任意一台服务器安装即可,目前暂无集群安装模式。
-
安装准备
- JDK 1.8+
- Kafka 2.4+
- Zookeeper 3.6+
- unzip解压缩工具,没有执行:[root@node01 home]# yum -y install unzip
-
解压kafka-manager-2.0.0.2.zip
[root@node01 ~]# unzip /home/kafka-manager-2.0.0.2.zip -d /usr/local/
[root@node01 ~]# cd /usr/local/kafka-manager-2.0.0.2/
- 配置cmak
[root@node01 kafka-manager-2.0.0.2]# vim ./conf/application.conf
#注释kafka-manager.zkhosts==${?ZK_HOSTS},修改kafka-manager.zkhosts属性值如下
kafka-manager.zkhosts="node01:2181,node02:2181,node03:2181"
- 使用root用户启动kafka-manager服务
#前台启动,默认的http.port端口为9000
[root@node01 kafka-manager-2.0.0.2]# bin/kafka-manager -Dhttp.port=9002
#后台启动
[root@node01 kafka-manager-2.0.0.2]# nohup bin/kafka-manager -Dconfig.file=conf/application.conf -Dhttp.port=9002 > /dev/null 2>&1 &
- 查看kafka-manager服务
[root@node01 kafka-manager-2.0.0.2]# jps
67221 Kafka
66452 QuorumPeerMain
77916 Jps
77487 ProdServerStart # 该服务为kafka-manager服务
- 前端访问kafka-manager
输入地址:http://192.168.10.101:9002
到此为止,kafka-manager服务已经安装完成。
三、Kafka-Manager操作
-
准备工作
-
修改所有节点Kafka安装目录下的bin目录下的kafka-server-start.sh文件,修改如下:
[root@node01 kafka_2.12-2.4.1]# vim ./bin/kafka-server-start.sh
#在该文件的最后1行前面(确保kafka启动前导入如下变量即可)添加如下配置:
export JMX_PORT=9999
-
重新启动kakfa集群
启动命令忽略。
-
-
添加cluster
选择Add Cluster:
添加集群相关信息:
中间其它参数可以根据自己的需要修改,我这里全是默认,省略该部分截图。最后截图如下:
保存即可:
查看集群视图:
到此为止,Add Cluster添加成功,也可以添加更多的Kafka集群。
-
列出集群
查看kafka-manager所管理的kafka集群列表,如下图所示:
可以通过点击1,2组合或3直接查看已有配置好的kafka集群,如下图所示:
通过上图可知,可以对已有集群配置进行进入、修改和下线操作。
- 查看Brokers列表
同时也可以通过集群的概览页面点击进入。
- 主题查看
-
Brokers Spead%(broker 覆盖率)
该topic的所有分区和副本所占有broker的比重。
-
Brokers Skew% (broker 倾斜率)
该 topic 占有的 broker 中,拥有超过该 topic 平均分区数的 broker 所占的比重。
-
Brokers Leader Skew% (broker leader 分区倾斜率)
该 topic 占有的 broker 中,拥有超过该 topic 平均 Leader 分区数的 broker 所占的比重。
-
Under Replicated%(副本失效率)
该 topic 下的 partition,其中副本处于失效或者失败的比率。失败或者失效是指副本不处于 ISR 队列中。
- 主题详情查看
-
Preferred Replicas(优先副本)
该topic分区的副本中,采用副本列表中的第一个副本作为 Leader 所占的比重。
-
Operations(操作)
操作 | 说明 |
---|---|
Delete Topic | 删除 topic |
Reassign Partitions | 平衡集群负载,即重分配分区 |
Add Partitions | 增加分区 |
Update Config | 更新topic的配置 |
Manual Partition Assignments | 手动为每个分区下的副本分配 broker |
Generate Partition Assignments | 自动为每个分区下的副本分配 broker |
- 消费者查看
到此为止,kafka-manager的操作基本完毕。