新版kafka可视化界面组件

二、安装kafka可视化客户端工具(kafka tool 2)

1、下载安装

在官网中找到对应自己电脑系统的版本:

kafka Tool2官网下载地址:

Offset Explorer

这个方案是为Kafka依赖zookeeper提供的可视化解决方案。

前言

在早期使用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集群,注意写法。

添加登录页面

默认kafka-ui是免登录的,为了防止所有人都可以登录产生误操作问题,在docker部署的时候可以添加如下四个环境变量配置用户的登录密码。用户名密码根据自己需求修改倒数两行中的admin。

-e SERVER_SERVLET_CONTEXT_PATH="/" \

-e AUTH_TYPE="LOGIN_FORM" \

-e SPRING_SECURITY_USER_NAME=admin \

-e SPRING_SECURITY_USER_PASSWORD="admin" \

配置好账号密码,删除并重建容器,再输入kafka-ui的地址,会出现如下页面,登录即可。

优点

1.页面非常简洁、清爽,支持夜间模式(v0.7)

首页

topic管理:支持查看topic元信息, 增加、删除topic,清除topic信息,往topic中添加数据等。

  1. docker部署,非常方便

3.功能齐全,该有的功能全都有

4.集群连接方便,不管是连接旧版本的kafka还是3.3.1及以后版本的kafka,只需要指定kafka的ip端口即可,不需要指定任何其他内容。

5.官方文档非常详细,需要查看详细说明,可以点击链接跳转。

缺点

1.不支持页面添加集群,官方也解释了,这是一个无状态的服务,所以情有可原。但是因为项目是Springboot写的,docker部署的,如果添加集群可以重建docker容器,或者修改配置文件,重启容器,具体可以查看项目github说明,因为我没有用配置文件,这里没有详细介绍。

连接带认证的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

相关推荐
西京刀客2 小时前
构建 Go 可执行文件镜像 | 探索轻量级 Docker 基础镜像(我应该选择哪个 Docker 镜像?)
开发语言·docker·golang
0XIX02 小时前
omniparser v2 本地部署及制作docker镜像(20250715)
运维·docker·容器·omniparser-v2
AI视觉网奇12 小时前
git 访问 github
运维·开发语言·docker
G_whang12 小时前
jenkins使用Jenkinsfile部署springboot+docker项目
spring boot·docker·jenkins
lifallen13 小时前
Kafka 时间轮深度解析:如何O(1)处理定时任务
java·数据结构·分布式·后端·算法·kafka
hweiyu0014 小时前
docker简介
运维·docker·容器
沈健_算法小生16 小时前
基于SpringBoot3集成Kafka集群
分布式·kafka·linq
Swift社区16 小时前
ELK、Loki、Kafka 三种日志告警联动方案全解析(附实战 Demo)
分布式·elk·kafka
甘露寺17 小时前
云原生核心技术解析:Docker vs Kubernetes vs Docker Compose
docker·云原生·kubernetes
如果'\'真能转义说17 小时前
Docker Desktop 挂载本地Win系统配置指南:Redis/MySQL/RabbitMQ持久化与自启设置
docker·容器·bootstrap·docker desktop