Kafka-UI 最简部署:3 条命令跑通可视化监控
【免费下载链接】kafka-uiOpen-Source Web UI for Apache Kafka Management项目地址: https://gitcode.com/GitHub_Trending/ka/kafka-ui
想在浏览器里看一眼集群还活着没、流量跑到哪了,不想再 SSH 上去敲 kafka-topics 的时候,Kafka-UI 部署能让这件事在浏览器里完成。Docker Kafka-UI 部署是其中最省事的路线。
启动前:确认两件事
这套 compose 直接从官方源拉镜像,没有编译环节。
| 前置条件 | 要求 |
|---|---|
| Docker | 20.10+ |
| Docker Compose | 2.0+ |
| 宿主机端口 | 8080、9092、8083、8085 未被占用 |
跑起来
compose 目录里的编排文件都是即开即用的,这里拿服务最全的一份。下面这组命令先把配置文件拉到本地,再一次性起出 6 个容器,包含两个 Kafka 集群、Schema Registry 和 Kafka Connect。
git clone https://gitcode.com/GitHub_Trending/ka/kafka-ui cd kafka-ui/documentation/compose docker-compose -f kafka-ui.yaml up -d容器全部起来后,浏览器访问 http://localhost:8080 ,两个集群的名称、版本、分区和主题数就都在表格里了。
跑通之后:先做这一件事
建完主题第一件事就是确认消息还能不能正常进出,整个过程三步:
- 左侧栏展开 local 集群,点 Topics,再点 New。
- 填主题名,按需调整分区数和保留时长,点 Create。
- 建完打开主题详情页,切到 Messages 页,能看到实时刷新的消息列表。
几个必须知道的配置
日常改动基本都集中在 compose 文件 里 kafka-ui 服务的那段环境变量。
| 配置项 | 默认值 | 什么时候改 |
|---|---|---|
| KAFKA_CLUSTERS_0_NAME | local | 多环境时给集群起个能分清的名字 |
| KAFKA_CLUSTERS_0_BOOTSTRAPSERVERS | kafka0:29092 | 指向你要连的集群实际地址 |
| KAFKA_CLUSTERS_0_METRICS_PORT | 9997 | broker 的 JMX 端口,流量指标靠它 |
| DYNAMIC_CONFIG_ENABLED | true | 允许在页面上动态增删集群 |
| ports | 8080:8080 | 浏览器访问时用的宿主机端口 |
容易踩的坑
前半小时最容易撞上的是集群显示离线。
现象:容器都在跑,页面里集群状态却是 Offline。原因:bootstrap 地址连不通。从容器里连宿主机的 Kafka 时,地址写 localhost 指的是容器自己,不是宿主机。解决:把 KAFKA_CLUSTERS_0_BOOTSTRAPSERVERS 改成 host.docker.internal:9092 或宿主机局域网 IP。
第二类是端口被占。
现象:up -d 直接报 port is already allocated。原因:8080 或 9092 已被其他服务占用。解决:在 compose 文件里把 kafka-ui 的宿主机端口换成空闲的:
ports: - "8081:8080"第三类是消息体显示成乱码。
现象:Messages 页里是一串二进制乱码。原因:主题里的 value 是 Avro 这类二进制格式,界面默认按纯文本解析。解决:在消息页的 Serde 选择器里选对应序列化格式,并填上 Schema Registry 地址,重新解析即可。
收尾
要从试玩挪到生产级环境,先补集群认证和数据持久化这两块,同目录下都有可直接用的 compose 示例。
【免费下载链接】kafka-uiOpen-Source Web UI for Apache Kafka Management项目地址: https://gitcode.com/GitHub_Trending/ka/kafka-ui
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考