Kafka集群监控管理工具
现在我们操作Kafka都是在命令行界面中通过脚本操作的,后面需要传很多参数,用起来还是比较麻烦的,那kafka没有提供web界面的支持吗?很遗憾Apache官方并没有提供,不过有一个由雅虎开源的一个工具叫CMAK,它是目前最受欢迎的Kafka集群管理工具,最早由雅虎开源,用户可以在Web界面上操作Kafka集群,可以轻松检查集群状态(Topic、Consumer、Offset、Brokers、Replica、Partition)
CMAK的百度网盘下载地址如下:
链接:https://pan.baidu.com/s/101Sug7mD3_aj5imB0Zyz0w 提取码:1234
注意:
由于cmak-3.0.0.4.zip版本是在java11这个版本下编译的,所以在运行的时候也需要使用java11这个版本,我们CentOS7上使用的是java8这个版本,因此我需要额外下载一个jdk11的安装包,解压上传到master的/usr/local/jdk目录下,不需要配置环境变量,因为只有cmak这个工具才需要使用jdk11。
jdk11的安装包百度网盘下载地址: 链接:https://pan.baidu.com/s/101AKgz58ji2b6e3wMcUekA 提取码:1234
接下来把cmak-3.0.0.4.zip上传到master的/root/tools目录下。
1).解压缩cmak-3.0.0.4.zip
[root@master tools]# unzip cmak-3.0.0.4.zip
-bash: unzip: command not found
注意:如果提示-bash: unzip: command not found,则说明目前不支持unzip命令,可以使用yum在线安装。
[root@master tools]# yum install -y unzip
Loaded plugins: fastestmirror
.....
Running transaction
Installing : unzip-6.0-21.el7.x86_64 1/1
Verifying : unzip-6.0-21.el7.x86_64 1/1
Installed:
unzip.x86_64 0:6.0-21.el7
Complete!
解压至/usr/local
unzip -o cmak-3.0.0.4.zip -d /usr/local/
2).修改CMAK配置
首先修改bin目录下的cmak脚本,在里面配置JAVA_HOME指向jdk11的安装目录,否则默认会使用jdk8。
#!/usr/bin/env bash
### ------------------------------- ###
### Helper methods for BASH scripts ###
### ------------------------------- ###
JAVA_HOME=/usr/local/jdk/jdk-11.0.7
...
然后修改conf目录下的application.conf文件,只需要在里面增加一行cmak.zkhosts参数的配置即可,指定zookeeper的地址。
# Settings prefixed with 'kafka-manager.' will be deprecated, use 'cmak.' instead.
# https://github.com/yahoo/CMAK/issues/713
kafka-manager.zkhosts="kafka-manager-zookeeper:2181"
kafka-manager.zkhosts=${?ZK_HOSTS}
cmak.zkhosts="kafka-manager-zookeeper:2181"
cmak.zkhosts=${?ZK_HOSTS}
cmak.zkhosts="master:2181,slave1:2181,slave2:2181"
...
3).修改kafka启动配置
想要在CMAK中查看kafka的一些指标信息,在启动kafka的时候需要指定JMX_PORT。
指定JXM_PORT方式启动kafka脚本如下:
cd $KAFKA_HOME
JMX_PORT=9988 bin/kafka-server-start.sh -daemon config/server.properties
4).后台启动cmak
cd /usr/local/cmak-3.0.0.4
nohup bin/cmak -Dconfig.file=conf/application.conf -Dhttp.port=9001 &
5).访问cmak
http://master:9001/

6).操作CMAK
添加集群


这几个参数配置好了以后还需要配置以下几个线程池相关的参数,这几个参数默认值是1,在保存的时候会提示需要大于1,所以可以都改为10
最后进来是这样的。

如果报以下错误:
Yikes! KeeperErrorCode = Unimplemented for /kafka-manager/mutex Try again.
主要原因是 ZooKeeper版本太低导致,必须需要升级到 3.5+ 版本。
7).创建一个topic

8).给topic增加分区

这是CMAK中常见的功能,当然了这里面还要一些我们没有说到的功能就留给大家以后来发掘了。