【Kafka 实用工具】kafka-manager 的安装配置
社区版的 Kafka 没有图形化的管理工具,很多实际生产中的需求满足不了,比如创建删除 topic、查看消息生产速率,查看消费 lag 等等,因此开源社区有很多图形化的工具,kafka-manager 是我在工作中用的比较多的,这篇文章分享安装配置 kafka-manager 的方法,其中还特别展示了如何连接启用了 SASL/PLAIN 认证机制的 Kafka。
内容提要:
- 源码下载编译
- 连接无认证 Kafka 的配置
- 添加待管理的 Kafka 集群
- 连接有认证 Kafka的配置
在使用 kafka-manager 之前,要求 Kafka 已经安装部署,并且kafka-manager 能够访问到 Kafka 所使用的 ZooKeeper。
1. 源码下载编译
到 kafka-manager的github releases页面 选择最新版本,下载 tar.gz
压缩包并解压:
# 在当前用户的 home 目录下下载
$ wget https://github.com/yahoo/kafka-manager/archive/2.0.0.2.tar.gz
$ tar xvf 2.0.0.2.tar.gz
复制代码
进入目录并用 sbt
编译:
$ cd kafka-manager-2.0.0.2
$ ./sbt clean dist
# 如果没有依赖的jar包,可能需要较长时间
复制代码
sbt 编译这一步,可能会花费较长时间,我用了大概半个多小时。
编译完成后会输出安装包的位置:
[success] All package validations passed
[info] Your package is ready in ~/kafka-manager-2.0.0.2/target/universal/kafka-manager-2.0.0.2.zip
[success] Total time: 326 s, completed Nov 6, 2019 12:15:45 PM
复制代码
将上面输出信息中的 ~/kafka-manager-2.0.0.2/target/universal/kafka-manager-2.0.0.2.zip
拷贝到其它地方并解压(注意:如果拷贝到和源码路径相同的位置,需要先修改源码目录名称):
$ unzip kafka-manager-2.0.0.2.zip
$ cd kafka-manager-2.0.0.2
复制代码
2. 连接无认证 Kafka 的配置
编辑 conf/application.conf
:
# 配置Kafka所使用的的Zookeeper,多个IP和端口用逗号分隔
kafka-manager.zkhosts="localhost:2181"
复制代码
也可以修改 logback.xml
和 logger.xml
配置日志输出,默认输出在当前目录的 logs
目录下。
启动命令为:
$ bin/kafka-manager
# 或者后台运行
$ nohup bin/kafka-manager -Dhttp.port=10000 >/dev/null 2>&1 &
复制代码
在浏览器中访问这台机器的 9000
端口就可以使用kafka-manager了。
3. 添加待管理的 Kafka 集群
一个 kafka-manger 可以管理多个 Kafka 集群,下面用截图展示怎么添加 Kafka 集群到 kafka-manager 中来。
首先,点击页面上方的 Cluster
菜单,然后选择 Add Cluster
子菜单:
[图片上传失败...(image-1aacd2-1595927668212)]
<figcaption style="display: block; text-align: center; font-size: 1rem; line-height: 1.6; color: rgb(144, 144, 144); margin-top: 2px;"></figcaption>
点击之后会出现如下的页面,需要给集群一个起一个名字,输入 ZooKeeper 的 IP和端口,选择 Kafka 的版本:
[图片上传失败...(image-9727b9-1595927668212)]
<figcaption style="display: block; text-align: center; font-size: 1rem; line-height: 1.6; color: rgb(144, 144, 144); margin-top: 2px;"></figcaption>
注意,上面的七个勾选框除了 JMX with SSL
我都勾选了,如果漏了,可能有些功能无法正常使用。
还有一些其它配置,默认情况下可能不需要修改(我还没有修改过),不过如果使用中出了问题,可以考虑是不是需要调整这里的参数。
最后在页面最下方点击 Save
,然后等待同步数据:
[图片上传失败...(image-81a35d-1595927668211)]
<figcaption style="display: block; text-align: center; font-size: 1rem; line-height: 1.6; color: rgb(144, 144, 144); margin-top: 2px;"></figcaption>
点击 test
查看这个集群的信息:
[图片上传失败...(image-9d2422-1595927668211)]
<figcaption style="display: block; text-align: center; font-size: 1rem; line-height: 1.6; color: rgb(144, 144, 144); margin-top: 2px;"></figcaption>
然后点击 Topics 的数量 8
就可以查看这个集群的所有 topic:
[图片上传失败...(image-a6a3e1-1595927668211)]
<figcaption style="display: block; text-align: center; font-size: 1rem; line-height: 1.6; color: rgb(144, 144, 144); margin-top: 2px;"></figcaption>
接下来可以自己去到处点点看,还是很容易上手的。
更多的功能特性在 github 主页了解:github.com/yahoo/kafka…
4. 连接有认证 Kafka 的配置
有两种方式配置:第一种,完全在页面上进行配置;第二种,一部分在后台一部分在浏览器,两者的区别是,第一种方法更方便,但会暴露所使用的用户凭据,不够安全,第二种更安全,也稍微复杂一点。
方法一
和连接无认证Kafka的相同,编辑 conf/application.conf
,配置 kafka-manager.zkhosts
,然后启动kafka-manager,仍然通过浏览器打开”Add Cluster"页面,其它配置不变,按照如下方式修改最后三个配置:
填写其它的必要信息后,最后有三项配置和认证有关,如图所示:
[图片上传失败...(image-2cfa68-1595927668211)]
<figcaption style="display: block; text-align: center; font-size: 1rem; line-height: 1.6; color: rgb(144, 144, 144); margin-top: 2px;"></figcaption>
具体的配置为:
Security Protocol = SASL_PLAINTEXT
SASL Mechanism = PLAIN
SASL JAAS Config = security.protocol=SASL_PLAINTEXT sasl.mechanism=PLAIN sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="iamabug" password="idontknow";
# 如果Kafka除了启用了SASL/PLAIN认证,还启用了ACL的话,那么这里所使用的的用户需要有足够高的权限。
复制代码
点击OK即可。
方法二
第二种方法在后台配置 kafka-manager 所使用的用户凭据,首先在 kafka-manager 的 conf
目录创建配置文件 jaas.conf
,内容如下:
KafkaClient{
org.apache.kafka.common.security.plain.PlainLoginModule required
username="iamabug"
password="idontknow";
};
复制代码
然后启动命令修改为:
bin/kafka-manager -Dhttp.port=10000 -Djava.security.auth.login.config=~/kafka-manager-2.0.0.2/conf/jaas.conf
复制代码
打开页面按照方法一的方式配置,但不要配置最后一个选项:SASL JAAS Config,直接点击 Save
即可
网友评论