kafka-manager 的安装和使用
kafka-manager 地址
GitHub 地址:
https://github.com/yahoo/CMAK
下载地址:
https://github.com/yahoo/CMAK/releases
kafka-manager 简介
kafka-manager 是目前最受欢迎的 kafka 集群管理工具,最早由雅虎开源,用户可以在 Web 界面执行一些简单的集群管理操作。具体支持以下内容:
- 管理多个集群
- 轻松检查群集状态(主题,消费者,偏移,代理,副本分发,分区分发)
- 运行首选副本选举
- 使用选项生成分区分配以选择要使用的代理
- 运行分区重新分配(基于生成的分配)
- 使用可选主题配置创建主题(0.8.1.1 具有与 0.8.2 + 不同的配置)
- 删除主题(仅支持 0.8.2 + 并记住在代理配置中设置 delete.topic.enable = true)
- 主题列表现在指示标记为删除的主题(仅支持 0.8.2+)
- 批量生成多个主题的分区分配,并可选择要使用的代理
- 批量运行重新分配多个主题的分区
- 将分区添加到现有主题
- 更新现有主题的配置
安装 kafka-manager
普通安装
下载
wget 'https://github.com/yahoo/CMAK/releases/download/3.0.0.5/cmak-3.0.0.5.zip'
unzip cmak-3.0.0.5.zip
cd cmak-3.0.0.5
配置
修改 conf/application.conf
文件:
kafka-manager.zkhosts="127.0.0.1:2181"
kafka-manager.zkhosts=${?ZK_HOSTS}
cmak.zkhosts="127.0.0.1:2181"
cmak.zkhosts=${?ZK_HOSTS}
启动
$ bin/cmak &
docker 安装
DockerHub:https://hub.docker.com/r/sheepkiller/kafka-manager
安装命令:
docker run -it \
--name kafka-manager \
-p 9000:9000 \
-e ZK_HOSTS=127.0.0.1:2181 \
-e KAFKA_MANAGER_AUTH_ENABLED=true \
-e KAFKA_MANAGER_USERNAME=admin \
-e KAFKA_MANAGER_PASSWORD=admin \
-d sheepkiller/kafka-manager:latest
配置 kafka-manager
kafka-manager 默认的端口是 9000。
添加集群
配置集群
开启消费者查看
问题解决
开启 JMX
如果使用 kafka-manager 监控,需要开启 JMX,则需要勾选:
否则会有以下报错:
2020-08-14 17:30:58,236 - [ERROR] k.m.j.KafkaJMX$ - Failed to connect to service:jmx:rmi:///jndi/rmi://dm161.bjth.163.org:-1/jmxrmi
java.lang.IllegalArgumentException: requirement failed: No jmx port but jmx polling enabled!
启动 kafka 服务时指定 JMX_PORT
值:
JMX_PORT=9999 nohup bin/kafka-server-start.sh config/server.properties &
/kafka-manager/mutex
CMAK 添加集群的时候报错:
org.apache.zookeeper.KeeperException$UnimplementedException: KeeperErrorCode = Unimplemented for /kafka-manager/mutex
at org.apache.zookeeper.KeeperException.create(KeeperException.java:106)
at org.apache.zookeeper.KeeperException.create(KeeperException.java:54)
at org.apache.zookeeper.ZooKeeper.create(ZooKeeper.java:1538)
at org.apache.curator.utils.ZKPaths.mkdirs(ZKPaths.java:291)
at org.apache.curator.framework.imps.CreateBuilderImpl$11.call(CreateBuilderImpl.java:746)
at org.apache.curator.framework.imps.CreateBuilderImpl$11.call(CreateBuilderImpl.java:723)
at org.apache.curator.RetryLoop.callWithRetry(RetryLoop.java:109)
at org.apache.curator.framework.imps.CreateBuilderImpl.pathInForeground(CreateBuilderImpl.java:720)
at org.apache.curator.framework.imps.CreateBuilderImpl.protectedPathInForeground(CreateBuilderImpl.java:484)
at org.apache.curator.framework.imps.CreateBuilderImpl.forPath(CreateBuilderImpl.java:474)
解决:
root@zk-0:/opt/zookeeper/bin# ./zkCli.sh
[zk: localhost:2181(CONNECTED) 1] ls /kafka-manager
[configs, deleteClusters, clusters]
[zk: localhost:2181(CONNECTED) 2] create /kafka-manager/mutex ""
Created /kafka-manager/mutex
[zk: localhost:2181(CONNECTED) 3] create /kafka-manager/mutex/locks ""
Created /kafka-manager/mutex/locks
[zk: localhost:2181(CONNECTED) 4] create /kafka-manager/mutex/leases ""
Created /kafka-manager/mutex/leases
参考:https://github.com/yahoo/CMAK/issues/731
相关文章