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 的首页:

Kafdrop 首页截图

首页显示了 Kafka 集群的概览信息:

  • 总主题数、分区数
  • 参与的 Broker 列表
  • 当前 Topic 列表

点击 Broker ID 可进入 Broker 详情页,点击 Topic 名称可进入 Topic 详情页。

3.1. Broker 详情页

Broker 详情页面

Broker 详情页展示了该节点的详细信息,包括:

  • 主机名和端口
  • 托管的 Topic 数量
  • 分区数量
  • 底部表格展示了该 Broker 上托管的 Topic 分区信息

在多 Broker 集群中,该页面有助于了解分区在各节点上的分布情况。


4. Topic 详情页

Topic 详情页展示了该 Topic 的详细信息:

Account Topic 详情页

内容包括:

  • 消息总数
  • 分区数量
  • 消费者组(Consumer Groups)列表
  • 删除 Topic 按钮

右侧的 Consumers 表格显示了当前使用该 Topic 的消费者组。例如:

  • group1 没有 lag,说明已经消费完所有消息
  • group4 lag 为 11,说明还有 11 条消息未消费

你可以点击 View MessagesSearch Messages 查看或搜索 Topic 中的消息。

4.1. 查看消息

点击 View Messages 可以浏览 Topic 中的消息,默认按 offset 排序:

查看 Topic 消息页面

你还可以点击 Add Message 向 Topic 发送新消息。

4.2. 搜索消息

点击 Search Messages 可以根据关键字搜索消息内容:

搜索 Topic 消息页面

例如搜索 A1,页面会显示包含该字符串的消息列表。


5. 总结

✅ Kafdrop 是一个轻量级但功能强大的 Kafka Web UI 工具,适合用于快速查看和管理 Kafka 集群状态。

✅ 支持多种部署方式,Docker 是最便捷的方式之一。

✅ 提供了丰富的功能,包括:

  • 查看 Broker、Topic 详情
  • 查看消费者组状态
  • 浏览和发送消息
  • 消息搜索

如果你正在寻找一个轻量级的 Kafka 管理工具,Kafdrop 是一个非常不错的选择。


原始标题:Introduction to Kafdrop as the Kafka Web UI