一、kafka-manager 简介
为了简化开发者和服务工程师维护Kafka集群的工作,yahoo构建了一个基于Web的Kafka集群管理工具,叫做 Kafka Manager。这个管理工具可以很容易地发现分布在集群中的哪些topic分布不均匀,或者是分区在整个集群分布不均匀的的情况。它支持管理多个集群、选择副本、副本重新分配以及创建Topic。同时,这个管理工具也是一个非常好的可以快速浏览这个集群的工具,有如下功能:
1)管理多个集群
2)轻松检查群集状态(主题,消费者,偏移,代理,副本分发,分区分发)
3)运行首选副本选举
4)使用选项生成分区分配以选择要使用的代理
5)运行分区重新分配(基于生成的分配)
6)使用可选主题配置创建主题(0.8.1.1具有与0.8.2+不同的配置)
7)删除主题(仅支持0.8.2,并且在代理配置中设置delete.topic.enable = true)
8)主题列表现在指示标记为删除的主题(仅支持0.8.2+)
9)批量生成多个主题的分区分配,并可选择要使用的代理
10)批量运行重新分配多个主题的分区
11)将分区添加到现有主题
12)更新现有主题的配置
13)可随意开启对broker级别或者对topic级别的JMX轮询
14)可方便的过滤出没有id 、所有者、延迟或目录等的消费者
注:kafka-manager项目地址:https://github.com/yahoo/CMAK/releases,可对应下载相应的版本
二、安装kafka-manager
1、环境要求
- Kafka 0.8.1.1 or 0.8.2.* or 0.9.0.*
- Java 8+
- zookeeper 2+
本次实验所用的环境是kafka_2.12-2.5.0、jdk-1.8.0_181、zookeeper-3.4.10
2、下载安装 kafka-manager
1)下载软件包
[root@localhost ~]# wget https://github.com/yahoo/CMAK/archive/2.0.0.2.tar.gz
2)sbt编译
# yum安装sbt
[root@localhost ~]# curl https://bintray.com/sbt/rpm/rpm > bintray-sbt-rpm.repo
[root@localhost ~]# mv bintray-sbt-rpm.repo /etc/yum.repos.d
[root@localhost ~]# yum -y install sbt
[root@localhost ~]# sbt -version
[info] 1.2.8
sbt script version: 1.3.13
# 修改仓库地址
[root@localhost ~]# mkdir ~/.sbt && vim ~/.sbt/repositories
# 配置内容如下
1. [repositories]
2. local
3. aliyun: http://maven.aliyun.com/nexus/content/groups/public/
4. typesafe: http://repo.typesafe.com/typesafe/ivy-releases/, [organization]/[module]/(scala_[scalaVersion]/)(sbt_[sbtVersion]/)[revision]/[type]s/[artifact](-[classifier]).[ext], bootOnly
5. sonatype-oss-releases
6. maven-central
7. sonatype-oss-snapshots
# 因为要编译。所以下面这步操作要等很久(预计1个多小时,可能更久)
[root@localhost ~]# tar xf CMAK-2.0.0.2.tar.gz
[root@localhost ~]# cd CMAK-2.0.0.2
[root@localhost CMAK-2.0.0.2]# ./sbt clean dist
# 如果有下列提示,就代表编译成功了
[success] All package validations passed
[info] Your package is ready in /root/CMAK-2.0.0.2/target/universal/kafka-manager-2.0.0.2.zip
[success] Total time: 867 s, completed Aug 4, 2020 3:18:51 PM
# 如果编译太慢,请访问此链接下载:
https://mirrors.yangxingzhen.com/kafka-manager/kafka-manager-2.0.0.2.zip
3)解压
[root@localhost CMAK-2.0.0.2]# unzip target/universal/kafka-manager-2.0.0.2.zip -d /usr/local
[root@localhost CMAK-2.0.0.2]# mv /usr/local/kafka-manager-2.0.0.2/ /usr/local/kafka-manager
4)修改配置文件
[root@localhost CMAK-2.0.0.2]# cd /usr/local/kafka-manager/conf
[root@localhost conf]# vim application.conf
# 修改kafka-manager.zkhosts="kafka-manager-zookeeper:2181"为自己集群地址
- kafka-manager.zkhosts="172.168.1.193:2181,172.168.1.194:2181,172.168.1.195:2181"
5)启动kafka-manager
[root@localhost conf]# cd ../bin
# 前台启动,退出终端,服务会关闭(先确认启动没问题,再后台启动)
[root@localhost bin]# ./kafka-manager
# 后台启动,一直运行
[root@localhost bin]# nohup ./kafka-manager >/dev/null 2>&1 &
kafka-manager 默认的端口是9000,可通过-Dhttp.port,指定端口; -Dconfig.file=/usr/local/kafka-manager/conf/application.conf指定配置文件:
[root@localhost bin]# nohup ./kafka-manager -Dconfig.file=/usr/local/kafka-manager/conf/application.conf -Dhttp.port=8000 &
6)访问kafka-manager
# 浏览器访问服务器IP+9000端口,如图所示
至此,kafka-manager安装完毕。
三、kafka-manager使用
1、新建Cluster集群
# 点击保存即可
Enable JMX Polling
是否开启JMX轮训,该部分直接影响部分kafka broker和topic监控指标指标的获取(生效的前提是 kafka 启动时开启了JMX_PORT。
Enable Active OffsetCache
是否开启offset缓存,决定kafka-manager是否缓存住topic的相关偏移量。
2、新建完成后,保存运行界面如下:
3、查看topic
Topic -->> List
4、查看Brokers
四、kafka-manager管理
1、新建主题(Topic)
Topic -->> Create
2、查看主题
Topic -->> List -->> Test
- 输入编号:7416,直达文章
- 输入m|M,直达目录列表