1. 概述
Apache Kafka 是一个强大的分布式事件流平台,广泛用于构建实时数据管道和流式应用。Kafka 自带了 CLI 命令行工具(如 kafka-topics.sh)用于管理主题等操作。但如果你希望使用图形化界面来更直观地与 Kafka 集群交互,可以考虑使用 GUI 工具,比如 Kafdrop。
✅ 本文重点介绍如何使用 Kafdrop 作为 Kafka 集群的前端管理界面,涵盖部署、配置和基本使用。
2. Kafdrop 部署方式
Kafdrop 是一个基于 Java 的 Spring Boot 项目,提供了一个 Web UI 界面,用于与 Kafka 集群交互。它支持连接基础 Kafka 集群、TLS 加密连接、SASL 认证,以及连接 Schema Registry(如 Confluent 的 Avro 格式支持)。
你可以通过以下几种方式运行 Kafdrop:
- 作为独立的 JAR 文件运行
- 使用 Docker 容器运行
- 在 Kubernetes 中使用 Helm 部署
本文以 Docker 容器方式为例进行说明。
2.1. 使用 Docker 运行 Kafdrop
Kafdrop 的 Docker 镜像托管在 DockerHub 上,路径为 obsidiandynamics/kafdrop
。你可以使用以下命令启动容器:
$ docker run -d --rm -p 9000:9000 \
-e KAFKA_BROKERCONNECT=localhost:9092 \
obsidiandynamics/kafdrop
⚠️ 注意:必须通过 KAFKA_BROKERCONNECT
环境变量指定 Kafka Broker 的地址和端口。
2.2. 环境变量配置
Kafdrop 支持多种环境变量进行配置,例如:
$ docker run -d --rm -p 9000:9000 \
-e KAFKA_BROKERCONNECT=host:port,host:port \
-e JVM_OPTS="-Xms32M -Xmx64M" \
-e SERVER_PORT=9000 \
-e SERVER_SERVLET_CONTEXTPATH="/kafka-ui" \
obsidiandynamics/kafdrop
常见配置说明如下:
配置项 | 说明 |
---|---|
KAFKA_BROKERCONNECT |
Kafka Broker 地址 |
JVM_OPTS |
JVM 启动参数 |
SERVER_PORT |
Web 服务监听端口 |
SERVER_SERVLET_CONTEXTPATH |
Web UI 的访问路径 |
访问地址为:http://localhost:9000/kafka-ui
2.3. 传递额外配置参数
部分高级配置(如连接 Schema Registry)不能通过环境变量设置,但可以通过 CMD_ARGS
传递:
$ docker run -d --rm -p 9000:9000 \
-e KAFKA_BROKERCONNECT=localhost:9092 \
-e SERVER_SERVLET_CONTEXTPATH="/" \
-e CMD_ARGS="--schemaregistry.connect=localhost:8001 --schemaregistry.auth=adminuser:adminpassword" \
obsidiandynamics/kafdrop
该配置会连接本地的 Schema Registry 并设置认证信息。
3. 基本使用
启动后访问 http://localhost:9000
即可打开 Kafdrop 的首页:
首页显示了 Kafka 集群的概览信息:
- 总主题数、分区数
- 参与的 Broker 列表
- 当前 Topic 列表
点击 Broker ID 可进入 Broker 详情页,点击 Topic 名称可进入 Topic 详情页。
3.1. Broker 详情页
Broker 详情页展示了该节点的详细信息,包括:
- 主机名和端口
- 托管的 Topic 数量
- 分区数量
- 底部表格展示了该 Broker 上托管的 Topic 分区信息
在多 Broker 集群中,该页面有助于了解分区在各节点上的分布情况。
4. Topic 详情页
Topic 详情页展示了该 Topic 的详细信息:
内容包括:
- 消息总数
- 分区数量
- 消费者组(Consumer Groups)列表
- 删除 Topic 按钮
右侧的 Consumers 表格显示了当前使用该 Topic 的消费者组。例如:
group1
没有 lag,说明已经消费完所有消息group4
lag 为 11,说明还有 11 条消息未消费
你可以点击 View Messages 或 Search Messages 查看或搜索 Topic 中的消息。
4.1. 查看消息
点击 View Messages 可以浏览 Topic 中的消息,默认按 offset 排序:
你还可以点击 Add Message 向 Topic 发送新消息。
4.2. 搜索消息
点击 Search Messages 可以根据关键字搜索消息内容:
例如搜索 A1
,页面会显示包含该字符串的消息列表。
5. 总结
✅ Kafdrop 是一个轻量级但功能强大的 Kafka Web UI 工具,适合用于快速查看和管理 Kafka 集群状态。
✅ 支持多种部署方式,Docker 是最便捷的方式之一。
✅ 提供了丰富的功能,包括:
- 查看 Broker、Topic 详情
- 查看消费者组状态
- 浏览和发送消息
- 消息搜索
如果你正在寻找一个轻量级的 Kafka 管理工具,Kafdrop 是一个非常不错的选择。