本文在kafka3.3.1版本基础上进行测试
前言
在早期使用kafka的时候一般使用Kafka Tool或者kafka eagle,前者为桌面软件,后者为浏览器软件。总体来说体验一般,但是还比较够用。
但是从kafka3.3.1开始,已经正式抛弃zookeeper使用自己的仲裁器了,但是上述两种kafka可视化工具的更新好像并没有跟上,依然需要输入zookeeper的地址才可以连接,所以就变得不能用了。
为了解决这个问题,我找到了一个比较轻量好用的可视化工具kafka-ui。
kafka-ui
docker快速部署
docker run -p 8080 \
--name kafka-ui \
-e KAFKA_CLUSTERS_0_NAME=kafka9092 \
-e KAFKA_CLUSTERS_0_BOOTSTRAPSERVERS=localhost:9092 \
-e KAFKA_CLUSTERS_1_NAME=kafka9093 \
-e KAFKA_CLUSTERS_1_BOOTSTRAPSERVERS=localhost:9093 \
-e TZ=Asia/Shanghai \
-e LANG=C.UTF-8 \
-d provectuslabs/kafka-ui:latest
上述docker容器启动后可以管理两个kafka集群,注意写法。
优点
1.页面非常简洁、清爽
首页
topic管理:支持查看topic元信息, 增加、删除topic,清除topic信息,往topic中添加数据等。
- docker部署,非常方便
3.功能齐全,该有的功能全都有
4.集群连接方便,不管是连接旧版本的kafka还是3.3.1及以后版本的kafka,只需要指定kafka的ip端口即可,不需要指定任何其他内容。
缺点
1.不支持页面添加集群。但是因为项目是Springboot写的,docker部署的,如果添加集群可以重建docker容器,或者修改配置文件,重启容器,具体可以查看项目github说明。
2.项目默认不支持用户登录,没有访问权限,需要手动修改配置文件。
连接带认证的kafka集群
连接带认证的kafka集群在kafka-ui的github上面也有,但是文章写的不太全面,我测试了如下两种带认证集群的连接方式。需要可以参考。
连接SASL_PLAINTEXT认证的Kafka
如果集群没有配置SASL_PLAINTEXT认证可以参考我写的这篇文章。
连接SASL_PLAINTEXT认证的kafka需要添加如下三个环境变量,KAFKA_CLUSTERS_0_PROPERTIES_SASL_JAAS_CONFIG变量指定的用户名密码需要与实际情况一致。
docker run -p 1992:8080 \
--name kafka-ui \
-e KAFKA_CLUSTERS_0_NAME=kafka9092 \
-e KAFKA_CLUSTERS_0_BOOTSTRAPSERVERS=localhost:9092 \
-e KAFKA_CLUSTERS_0_PROPERTIES_SECURITY_PROTOCOL=SASL_PLAINTEXT \
-e KAFKA_CLUSTERS_0_PROPERTIES_SASL_MECHANISM=PLAIN \
-e KAFKA_CLUSTERS_0_PROPERTIES_SASL_JAAS_CONFIG='org.apache.kafka.common.security.plain.PlainLoginModule required username="admin" password="admin";' \
-e TZ=Asia/Shanghai \
-e LANG=C.UTF-8 \
-d provectuslabs/kafka-ui:latest
连接SSL认证的kafka
连接SSL认证的kafka需要额外添加如下四个环境变量,其中KAFKA_CLUSTERS_0_PROPERTIES_SSL_TRUSTSTORE_LOCATION变量指定的配置文件需要时在配置ssl时候提前生成的,如果需要做SSL认证,和生成证书,可以参考我写的这篇文章。
另外注意KAFKA_CLUSTERS_0_PROPERTIES_SSL_TRUSTSTORE_PASSWORD变量中指定的密码也是实际的密码。
docker run -p 1993:8080 \
--name kafka-ui-pwd \
-e KAFKA_CLUSTERS_0_NAME=kafka8082 \
-e KAFKA_CLUSTERS_0_BOOTSTRAPSERVERS=localhost:8082 \
-e KAFKA_CLUSTERS_0_PROPERTIES_SECURITY_PROTOCOL=SSL \
-e KAFKA_CLUSTERS_0_PROPERTIES_SSL_TRUSTSTORE_LOCATION=/cert/client.truststore.jks \
-e KAFKA_CLUSTERS_0_PROPERTIES_SSL_TRUSTSTORE_PASSWORD=admin \
-e KAFKA_CLUSTERS_0_PROPERTIES_SSL_ENDPOINT_IDENTIFICATION_ALGORITHM='' \
-e TZ=Asia/Shanghai \
-e LANG=C.UTF-8 \
-v /data/users/yulei/ssl_cert:/cert \
-d provectuslabs/kafka-ui:latest
版权归原作者 iFence 所有, 如有侵权,请联系我们删除。