Apache Kafka 可视化工具调研

Apache Kafka 可视化工具调研

背景

随着流式计算和消息解耦的需求越来越多,消息队列(Apache Kafka)也成为了中台架构中的一个重要组件,Apache Kafka 的可观察性已经是一个很迫切的需求。基于我们当前的技术栈,和现有的解决方案,对 Apache Kafka 的可观察性需求描述如下:

  1. Kafka 官方 cli 工具命令参数较长,命令有限,都是基于后台,使用起来不方便
  2. 需要可以查询 topic 列表,以及 topic 内部的数据
  3. 需要可以通过容器进行云原生部署
  4. 最好可以支持 SSO 和基于角色的权限控制(下文简称 RBAC)
  5. 已经通过 Prometheus + Grafana 实现了运维侧的监控和告警

方案

针对以上的问题,社区也提供了很多优秀的方案和工具:

AKHQ 是一款轻量级的 Apache Kafka 观察工具,具有 topic 消息管理、查询,支持多种鉴权方式。

  • UI for Apache Kafka(Kafka UI)[GITHUB] Star:3.2K

Kafka UI 作为 Provectus NextGen 数据平台的一部分,是一款轻量级的 Apache Kafka 观察工具。支持 KSQL DB 作为插件集成,同时支持通过多种 Connector 连接不同的数据源。

EFAK 是一款功能丰富的开源 Apache Kafka 观察工具,结合了运维管理、指标统计以及可观察性等功能,告警模块集成了 IM。自带 KSQL 能力,可以让开发者像操作表数据一样操作 DataSream。

  • kafka-console-ui [GITHUB] Star:98

Kafka-console-ui 是一款轻量级比较小众的工具。

  • Kafka Manager(CMAK)[GITHUB] Star:10.9K

Yahoo 推出的老牌开源 Apache Kafka 管理工具,已经很久没有维护了。

滴滴开源的 Apache Kafka 管理平台,比较重度,且和滴滴云有较强的绑定。

kafka tools 是 一个基于 Java GUI 开发的闭源工具,只适合在 windows 上使用。

功能对比

经过筛选,去掉了较为重度的 LogiKM 和闭源的 kafka tools 后,对剩下的 5 款工具进行功能对比。

AKHQ

UI for Apache Kafka

Kafka Eagle(EFAK)

kafka-console-ui

多集群管理

支持

支持

支持

支持

topic 和消息查看

支持

支持

支持

不支持

SSO 接入

LDAP

OAuth 2.0/LDAP

不支持

不支持

RBAC

支持

不支持*

支持(内部)

不支持

官方容器镜像

支持

支持

自行构建镜像

不支持

开发语言

Java + JavaScript

Java + TypeScript

Java

Java + vue

外部数据库

mysql5 以上

连接方式

broker

broker/zookeeper

zookeeper

broker

文档

丰富

注:UI for Apache Kafka 有支持 RBAC 的计划,在社区的路线图里,但当前版本还不够成熟

基于以上表格信息,我们排除掉有较多 feature 不支持的 kafka-console-ui。接下来,将对 AKHQ 、Kafka UI 以及 EFAK 这三款工具进行横向对比。

数据可观察性

  • AKHQ

    • 支持通过 UI 显示 topic 列表和 topic 内部的消息

    • 支持时间、offset 进行范围数据过滤,支持简单表达式过滤,支持关键字模糊搜索,支持分区过滤

    • 支持 live tail(实时读取)模式

    • AKHQ 截图

  • Kafka UI

    • 支持通过 UI 显示 topic 列表和 topic 内部的消息

    • 支持时间、offset 进行范围数据过滤,支持简单表达式过滤,支持关键字模糊搜索

    • 支持 live tail(实时读取)模式

    • Kafka UI 截图

  • EFAK

    • 支持通过 UI 显示 topic 列表,但只能通过 SQL 查看 topic 内部的消息

    • 使用 SQL 方式实现 topic 中的数据进行可视化查询,几乎支持 SQL 的所有语法,包括精准、模糊、范围查询,指定 topic 分区查询,支持查看历史查询的结果

    • 不支持 live tail(实时读取)模式

    • EFAK 截图

 

总结

在数据可观察性上三款工具提供的能力都基本满足使用,Kafka UI 和 AKHQ 的功能几乎是一样,UI 也更直观,EFAK 通过 KSQL 的方式操作相对来说繁琐,但也提供了更多可能性。

运维 & 部署

  • AKHQ

    • 官方有提供镜像,版本更新频率正常

    • 支持 LDAP 方式,有原生登录界面

    • 支持 RBAC 功能,通过配置文件管理用户权限,可以实现 topic 级别的控制

    • 不需要依赖外部组件

  • Kafka UI

    • 官方有提供镜像,版本更新频率正常

    • 支持 LDAP 方式,但是没有原生登录界面,关闭浏览器需要重新登录

    • 支持 OAuth2 方式,当前世游 SSO 系统不符合指定标准,无法对接

    • 暂不支持 RBAC 功能,只支持 readonly 开关,作者计划在近几个月发布 RBAC 功能 [ISSUE]

    • 不需要依赖外部组件

  • EFAK

    • 官方没有提供镜像,需要自己构建镜像,升级版本需要重新构建
    • 不支持 SSO 接入

    • 仅支持基于内部系统的 RBAC

    • 需要依赖 mysql5.7+,存储相关元数据

总结

AKHQ 功能最全面,最符合我们对 Apache Kafka 观察工具的想象。Kafka UI 还在持续的发展和迭代中,仍不够成熟,后续可以继续关注。EFAK 不支持 SSO 接入,还需要外部依赖,相对来说比较复杂。

Kafka 特性

  • AKHQ

    • 只支持配置 broker 地址

  • Kafka UI

    • 同时支持配置 broker 和 zookeeper 地址

  • EFAK

    • 只支持配置 zookeeper 地址

    • 我们知道当前 Kafka 无法支持数据倾斜之后进行自平衡,所以 EFAK 提供了手动方式的数据迁移能力

    • EFAK 截图

总结

Apache Kafka 3.1+ 引入了 Kafka Raft。Raft 是一种共识协议,它的引入是为了消除 Kafka 对 ZooKeeper 的依赖。如果后续 Kafka 升级到了 3.x 版本,EFAK 将无法对接。

结论

通过横向对比 Apache Kafka 观察工具,我们得出以下结论:

  1. AKHQ 是当前最符合要求的组件,建议使用
  2. Kafka UI 的发展值得关注
  3. EFAK 功能丰富,但是无法满足我们的需求(部署、SSO接入、Kafka 连接)
<think>好的,用户想了解如何实现工地集中化数据平台的建设步骤,包括数据管理、平台架构和IT方案。首先,我需要结合用户提供的引用内容,特别是引用[2]提到的SOA架构和模块设计,引用[3]的数据湖建设,以及引用[4]的三维可视化。 用户的问题涉及详细步骤,所以需要分阶段规划。引用[3]提到分阶段建设,比如第一期是数据湖,所以可能需要参考这个思路。首先,需求分析阶段,明确业务目标和数据需求,这需要和业务部门沟通,确保需求明确。 接下来是架构设计。根据引用[2],平台应采用SOA架构,高内聚低耦合,同时引用[4]提到轻量化模型和三维可视化。因此,架构部分需要分层设计,包括数据采集层、存储层、处理层和应用层。数据湖的建设可以参考引用[3],分类存储结构化、非结构化数据,比如视频、文本等。 然后是数据集成,需要对接各种系统,比如传感器、监控设备,可能涉及ETL工具和实时数据流处理。数据存储部分,结构化数据用关系数据库,非结构化用对象存储,时序数据用时序数据库,这能有效管理不同类型的数据。 数据处理和分析方面,可能需要大数据框架如Hadoop或Spark,以及BI工具进行报表分析,如引用[3]提到的。三维可视化部分,引用[4]提到轻量化模型和统一前端入口,可能需要集成三维引擎如Three.js或Unity,并结合数据后台。 平台开发需要模块化设计,符合引用[2]的OSGI模块设计原则,分阶段开发,比如先做数据采集和存储,再逐步扩展功能。测试和部署阶段需要确保稳定性,采用容器化部署如Kubernetes,保证可扩展性。 运维优化部分,需要实时监控和定期评估,根据业务变化调整架构,引用[1]提到数据模型设计的重要性,确保架构稳定高效。最后,用户可能需要考虑的技术选型和挑战,比如数据安全和系统兼容性,这些问题可以作为相关问题提出,帮助用户进一步思考。</think>### 工地集中化数据平台建设步骤 #### **一、需求分析与规划** 1. **明确业务目标** - 定义平台核心功能需求(如实时监控、数据分析、设备管理等)[^3] - 梳理工地数据类型(结构化数据:传感器读数、设备日志;非结构化数据:视频监控、图纸文档) 2. **技术需求调研** - 评估现有IT基础设施(网络带宽、存储能力) - 确定数据接入方式(物联网设备协议、API接口等) #### **二、平台架构设计** 1. **总体架构模型** 采用分层架构,遵循**SOA(面向服务)原则**,实现高内聚、弱耦合[^2]: - **数据采集层**:支持多协议(MQTT/HTTP/Modbus)设备接入 - **数据存储层**:结构化数据(关系型数据库如MySQL)、非结构化数据(对象存储如MinIO)、时序数据(时序数据库如InfluxDB) - **数据处理层**:批处理(Spark/Flink) + 实时流处理(Kafka- **应用层**:三维可视化模块、BI分析、预警系统[^4] 2. **关键技术组件** ```plaintext +-------------------+ +-------------------+ | 设备/传感器 | --> | 边缘计算网关 | +-------------------+ +-------------------+ | 数据清洗/预处理 v +-------------------+ +-------------------+ | 数据湖中心 | <-- | 数据集成平台 | +-------------------+ +-------------------+ | 分类存储(视频池、文本池) v +-------------------+ +-------------------+ | 分析引擎 | --> | 可视化平台 | +-------------------+ +-------------------+ ``` #### **三、数据管理实现** 1. **数据集成与治理** - 通过**ETL工具**(如Apache NiFi)对接现有系统(ERP、监控系统) - 建立数据标签体系,实现元数据管理 2. **数据安全机制** - 权限分层控制(RBAC模型) - 数据传输加密(TLS/SSL) + 存储加密(AES-256) #### **四、IT方案实施** 1. **基础设施部署** - 混合云架构:敏感数据本地化存储,计算任务云端弹性扩展 - 容器化部署(Docker+Kubernetes),支持快速迭代 2. **三维可视化集成** - 采用轻量化模型引擎(如Three.js/Cesium) - 与实时数据接口(WebSocket)联动,展示设备状态、施工进度 #### **五、测试与优化** 1. **性能压力测试** - 模拟高并发数据写入(≥10万条/秒) - 验证分布式存储的横向扩展能力 2. **迭代升级机制** - 通过OSGI模块化设计,支持功能热插拔[^2] --- ###
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值