简介
kafka-manager是目前最受欢迎的kafka集群管理工具,最早由雅虎开源,用户可以在Web界面执行一些简单的集群管理操作。具体支持以下内容:
- 管理多个集群
- 轻松检查群集状态(主题,消费者,偏移,代理,副本分发,分区分发)
- 运行首选副本选举
- 使用选项生成分区分配以选择要使用的代理
- 运行分区重新分配(基于生成的分配)
- 使用可选主题配置创建主题(0.8.1.1具有与0.8.2+不同的配置)
- 删除主题(仅支持0.8.2+并记住在代理配置中设置delete.topic.enable = true)
- 主题列表现在指示标记为删除的主题(仅支持0.8.2+)
- 批量生成多个主题的分区分配,并可选择要使用的代理
- 批量运行重新分配多个主题的分区
- 将分区添加到现有主题
- 更新现有主题的配置
- 支持ldap用户认证
kafka-manager 项目地址:https://github.com/yahoo/kafka-manager
安装
当前版本已更新至3.0.0.1,本次安装最新版本。
下载安装包
下载方式:
- 下载源码包:https://github.com/yahoo/kafka-manager/releases (不同版本)
- 克隆源代码:
git clone https://github.com/yahoo/CMAK.git
(最新版本)
编译
根据README提示,新版本编译依赖java-11,所以首先要准备java-11环境(直接到官网下载解压即可)。
使用sbt编译
进入源码目录进行编译。
/path/to/cmak/sbt -java-home /path/to/java-11 clean dist
-java-home
:在系统环境java版本和当前需要java版本不一致时,使用该参数指定java家目录。
这是一个漫长的过程,耐心等待...
编译完成后会提示,编译好的文件保存到了:/path/to/cmak/target/universal/cmak-3.0.0.1.zip
在此提供编译好的cmak-3.0.0.1.zip 密码: pjxp 。
配置
将上述cmak-3.0.0.1.zip文件拷贝到/path/to/kafka-manager
目录下,解压。修改配置文件 conf/application.conf
:
kafka-manager.zkhosts="my.zookeeper.host.com:2181,other.zookeeper.host.com:2181"
cmak.zkhosts="my.zookeeper.host.com:2181,other.zookeeper.host.com:2181"
kafka-manager支持ldap认证,这里不做详述。
启动
默认使用9000端口,如果端口占用,可以指定端口。
bin/cmak -Dconfig.file=conf/application.conf -java-home /path/to/jdk-11 -Dhttp.port=9001
到浏览器访问 http://ip:9001
即可。
创建kafka集群
使用systemctl管理kafka-manager服务
创建文件 /usr/lib/systemd/system/kafka-manager.service
:
[Unit]
Description=kafka-manager server service
After=network.target
[Service]
WorkingDirectory=/path/to/kafka-manager/cmak-3.0.0.1
ExecStart=/path/to/kafka-manager/cmak-3.0.0.1/bin/cmak -Dconfig.file=/path/to/kafka-manager/cmak-3.0.0.1/conf/application.conf -java-home /path/to/jdk-11.0.6 -Dhttp.port=9001
Restart=on-failure
RestartSec=60
User=work
Group=work
[Install]
WantedBy=multi-user.target
完成上述配置后,执行 systemctl daemon-reload
。
启动、停止、重启
$ systemctl start kafka-manager
$ systemctl stop kafka-manager
$ systemctl restart kafka-manager
# 加入开机启动
$ systemctl enable kafka-manager
配置日志切割
/path/to/kafka-manager/cmak-3.0.0.1/logs/application.log {
daily
rotate 10
dateext
missingok
notifempty
}
参考
Tips: 千万不要让开发搞运维工作... F*CK(蜜汁自信要不得)
来源:oschina
链接:https://my.oschina.net/adailinux/blog/3175286