1、Kafka UI简介

Apache Kafka 本身是一个非常强大的分布式流处理平台,但其原生工具主要是命令行形式,对于日常管理和问题排查来说,存在一些痛点:
操作复杂:记住所有命令行参数和脚本对用户来说是一种负担。
缺乏可视化:无法直观地查看主题(Topic)的消息内容、消费者组(Consumer Group)的滞后情况(Lag)、集群的负载分布等。
监控困难:需要集成其他监控系统(如 Prometheus, Grafana)才能全面了解集群健康状态,门槛较高。
效率低下:排查一个简单问题(例如“某个主题最近是否有消息?”)可能需要执行多条命令并手动解析输出。
Kafka UI 的出现,完美地解决了这些问题,它让 Kafka 的管理和调试工作变得简单、高效和直观。

2、Kafka UI的核心功能

尽管不同的 UI 工具在细节上有所差异,但它们通常都提供以下核心功能:
集群概览
查看 Broker 列表、状态、版本和配置。
监控集群整体健康状况(在线/离线节点)。
主题管理
创建、编辑、删除主题(Topic)。
查看主题的详细信息(分区数、副本因子、配置)。
查看每个分区的 Leader 分布、ISR(同步副本)列表和消息偏移量。
消息浏览
实时或按偏移量/时间戳浏览特定主题分区中的消息。
以 JSON、纯文本、Avro(集成 Schema Registry)等多种格式查看消息内容、Key 和 Header。
直接通过 UI 向主题发送测试消息。
消费者组监控
列出所有消费者组及其成员。
可视化监控消费者滞后(Consumer Lag),这是最重要的监控指标之一。
查看每个消费者组的消费进度和分区分配情况。
Schema Registry 集成
浏览、创建和管理 Avro、Protobuf 等 schema。
验证消息与 schema 的兼容性。
Kafka Connect 管理
查看和管理 Connector 及其 Task。
创建、编辑、暂停和重启 Connector。
访问控制
管理 ACLs,控制用户/客户端对主题等资源的访问权限。

3、安装docker

1、安装依赖包
yum install -y yum-utils device-mapper-persistent-data lvm2

2、配置docker yum源

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

3、安装docker

yum install -y docker-ce

修改数据目录

sudo systemctl stop docker
sudo mkdir -p /data/docker
sudo vi /etc/docker/daemon.json

修改为以下内容

{
 "data-root": "/data/docker",
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "10m",
    "max-file": "3"
  }
}

重启docker

systemctl enable docker --now
sudo systemctl restart docker

4、拉取kafka镜像

docker pull bitnami/kafka:latest
x86架构
docker pull registry.cn-hangzhou.aliyuncs.com/qiluo-images/kafka:latest
arm架构
docker pull registry.cn-hangzhou.aliyuncs.com/qiluo-images/linux_arm64_kafka:latest

docker pull provectuslabs/kafka-ui:latest
docker pull registry.cn-hangzhou.aliyuncs.com/qiluo-images/kafka-ui:latest
arm架构
docker pull registry.cn-hangzhou.aliyuncs.com/qiluo-images/linux_arm64_kafka-ui:latest

5、创建kafka数据目录

mkdir -p /data/kafka

Kafka容器

docker run -d \
  --name kafka \
  -p 9092:9092 \
  -e KAFKA_CFG_NODE_ID=0 \
  -e KAFKA_CFG_PROCESS_ROLES=controller,broker \
  -e KAFKA_CFG_LISTENERS=PLAINTEXT://:9092,CONTROLLER://:9093 \
  -e KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT \
  -e KAFKA_CFG_CONTROLLER_QUORUM_VOTERS=0@kafka:9093 \
  -e KAFKA_CFG_CONTROLLER_LISTENER_NAMES=CONTROLLER \
  -e KAFKA_CFG_AUTO_CREATE_TOPICS_ENABLE=true \
  -e KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://192.168.152.115:9092 \
  registry.cn-hangzhou.aliyuncs.com/qiluo-images/kafka:latest

Kafka UI容器

docker run -d \
  --name kafka-ui \
  -p 8080:8080 \
  -e KAFKA_CLUSTERS_0_NAME=dev_cluster \
  -e KAFKA_CLUSTERS_0_BOOTSTRAPSERVERS=192.168.152.115:9092 \
  registry.cn-hangzhou.aliyuncs.com/qiluo-images/kafka-ui:latest

访问kafka服务

浏览器访问: http://192.168.152.115:8080

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐