一、kafka_manager介绍
kafka_manager是雅虎公司的一款开源的监控工具。这个管理工具可以很容易地发现分布在集群中的哪些topic分布不均匀,或者是分区在整个集群分布不均匀的的情况。它支持管理多个集群、选择副本、副本重新分配以及创建Topic。同时,这个管理工具也是一个非常好的可以快速浏览这个集群的工具。
kafka_manager主要有如下几个功能:
管理多个kafka集群
便捷的检查kafka集群状态(topics,brokers,备份分布情况,分区分布情况)
选择你要运行的副本
基于当前分区状况进行
可以选择topic配置并创建topic(0.8.1.1和0.8.2的配置不同)
删除topic(只支持0.8.2以上的版本并且要在broker配置中设置delete.topic.enable=true)
Topic list会指明哪些topic被删除(在0.8.2以上版本适用)
为已存在的topic增加分区
为已存在的topic更新配置
在多个topic上批量重分区
在多个topic上批量重分区(可选partition broker位置)
最新版本的项目源码在 https://github.com/yahoo/kafka-manager
二、环境要求
Kafka 0.8.1.1 or 更高
sbt 0.13.x
Java 8+
三、安装部署
因为github上只能下载到项目的源码,并不是打包之后的包,所以需要我们自己去将这个项目下载到服务器上并打包。
该软件是用Scala语言编写的,所以要用到sbt进行打包,下面介绍如何在自己服务器上安装sbt并进行打包。
curl https://bintray.com/sbt/rpm/rpm | sudo tee /etc/yum.repos.d/bintray-sbt-rpm.repo
sudo yum install sbt
git clone https://github.com/yahoo/kafka-manager
cd kafka-manager
sbt clean dist
得到文件kafka-manager-1.3.3.17.zip
unzip kafka-manager-1.3.3.17.zip -d /usr/local
cd /usr/local/kafka-manager-1.3.3.17
修改配置 conf/application.properties
# 如果zk是集群,这里填写多个zk地址
kafka-manager.zkhosts="zk1:2181,zk2:zk3:2181"
启动
kafka-manager 默认的端口是9000,可通过 -Dhttp.port,指定端口; -Dconfig.file=conf/application.conf指定配置文件:
vi start.sh
#!bin/sh
nohup bin/kafka-manager -Dconfig.file=conf/application.conf -Dhttp.port=8080 > console.txt &
sh start.sh
查看日记
tail console.txt -f
访问地址:
ip:8080
开启JMX端口
修改bin/kafka-server-start.sh,添加JMX_PORT参数,添加后样子如下
vi kafka-server-start.sh
if [ "x$KAFKA_HEAP_OPTS" = "x" ]; then
export KAFKA_HEAP_OPTS="-Xmx1G -Xms1G"
export JMX_PORT="9999"
fi
注意:这里是指kafka服务里边的
参考:
https://www.jianshu.com/p/c24ed08dfa63
https://blog.csdn.net/eric_sunah/article/details/44980385?spm=a2c4e.11153940.blogcont65032.13.6d20568fDyHxYq