图片来自 kanawatTH,来自freepic.com

工程师可以使用哪些最佳工具来观察数据流、跟踪关键指标和解决 Apache Kafka 中的问题?

Apache Kafka 是一个开源分布式事件流平台,使组织能够实施和处理高性能数据管道、流分析、数据集成和关键任务应用程序。它被数千家公司使用,其中 80% 是财富 100 强公司。

尽管 Apache Kafka 是需要实时数据处理和应用程序活动跟踪的场景的首选服务,但 Apache Kafka 中集群的监控和管理通常会带来挑战。为了使这些任务更加高效和透明,您可能需要第三方、开源或商业图形工具来提供额外的管理和监控功能。

本文概述了此类 UI 工具,包括:

  1. AKHQ

2.九头

  1. 咖啡豆

  2. Apache Kafka 的用户界面

  3. 镜头

  4. CMAK

  5. 汇合CC

  6. 导体

但首先,让我们深入研究一下 Apache Kafka 中的可观察性和监控问题。

Apache Kafka 中的可观察性和监控

Apache Kafka 是任何数据驱动型组织的关键服务。但是处理普通的 Apache Kafka 集群可能会非常痛苦。 Kafka 集群难以设置、难以扩展且维护成本高昂。最重要的是,它们容易出错且难以观察,这可能会导致数据流中出现各种关键业务问题,并阻止工程师跟踪和解决这些问题。

为了减少错误并避免关键问题,组织必须通过添加强大的可观察性组件来确保其 Apache Kafka 集群的安全。更好的可观察性有助于:

  • 更快地排除数据流故障

  • 通过对他们通过元数据管理的数据流的共同理解来改善工程师之间的协作。

  • 更轻松地发现数据流中的敏感数据,满足合规性要求。

  • 更快速高效地清理数据。更少的错误仪表板意味着更快乐的客户。

集群可观察性的挑战在于 Apache Kafka 带有 CLI 工具来完成所有必要的管理任务。但是由于它们没有集成到单个服务中,因此您必须针对不同的任务分别运行不同的工具,这会造成不便和时间损失。随着集群规模的扩大,或者如果您有多个集群,问题可能会迅速升级,这仅仅是因为您缺乏正确观察它们的能力。

这让我们回到了 UI 监控工具,它可以帮助组织简化和加速开发、最大限度地缩短解决问题的时间并加快报告流程,从而提高工程团队内部和之间的运营效率。

Apache Kafka 集群的 8 大 UI 监控工具

首先,快速比较一下 Apache Kafka 集群监控工具。

作者图片

AKHQ

  • GitHub:https://github.com/tchiotludo/akhq

  • 许可证:Apache 2

  • 可用性:免费

  • 优点:很多有用的功能

  • 缺点:用户界面不好;缺乏 KSQL 集成;部分支持 Protobuf 模式注册表

AKHQ(以前称为 KafkaHQ)是用于 Apache Kafka 的 Kafka GUI,它使工程团队能够在统一的控制台中搜索和探索数据。借助 AKHQ,开发人员和 DevOps 可以管理主题、主题数据、消费者组、模式注册表、连接性等。

作者图片

AKHQ 提供了大量有用的功能,包括多集群管理、消息浏览、实时跟踪、身份验证、授权、只读模式、模式注册表和 Kafka Connect 管理。它支持 Avro 并与 LDAP 和 RBAC 兼容。

但 AKHQ 的 UI 并不是最方便的。您肯定需要分配一些时间来扩展学习曲线。

最重要的是,AKHQ 没有 KSQL 集成,仅提供对 Protobuf 模式注册表的部分支持。它也不适用于动态主题配置、分区增加、副本更改、Kafka 流拓扑或 JMX 指标可视化和图表。

那些希望在 AWS 上将 AKHQ 用作其数据流解决方案的一部分的人应该知道,它不支持AWS Identity and Access Management (IAM) 对 Amazon MSK的访问控制。

九九

  • GitHub:https://github.com/cloudhut/kowl

  • 许可证:Apache 2

  • 可用性:部分付费

  • 优点:良好的用户界面

  • 缺点:缺乏很多功能

Kowl(以前称为 Kafka Owl)是一个 Web 应用程序,旨在帮助开发人员探索 Apache Kafka 集群中的消息并更好地了解这些集群中实际发生的情况。

作者图片

Kowl 的最大优势在于其出色的用户界面。它方便,用户友好且易于使用。但是,它没有很多功能。

例如,Kowl 提供消息浏览、实时跟踪以及对 Protobuf、Avro 和 Amazon MSK IAM 的支持,但登录系统(Google、GitHub、Okta)和具有组同步的 RBAC 权限仅适用于付费的 Kowl Business 计划。

Kowl 还缺少多集群管理、动态主题配置、分区增加、副本更改、Kafka Connect 管理、模式注册表、KSQL 集成、Kafka Streams 拓扑、只读模式以及 JMX 指标的可视化和图表等功能。如果这些都包含在包中,Kowl 将比任何其他工具更可取。

咖啡豆

  • GitHub:https://github.com/obsidiandynamics/kafdrop

  • 许可证:Apache 2

  • 可用性:免费

  • 优点:不错的社区

  • 缺点:用户界面一般;缺少很多功能

Kafdrop是一个用于查看 Apache Kafka 主题和浏览消费者组的 Web UI。该工具使开发人员能够更轻松地显示和处理集群信息,例如代理、主题、分区和消费者。它还允许查看消息。

! swz 100101 swz 100102 swz 100100

作者图片

在大多数情况下,Kafdrop 是一个相当普通的工具。它的用户界面并不壮观,并且缺少很多功能。它确实允许您查看 Kafka 代理和消费者组、创建和查看主题、浏览消息和监控 ACL。它还提供对 Azure 事件中心的支持。但是其他有用的功能,如实时跟踪、模式注册表或只读模式呢?

好消息是 Kafdrop 在 GitHub 上的评价很高,如果您正在寻找一个有用且身临其境的社区,这很可能是适合您的工具。

Apache Kafka 用户界面

  • GitHub:https://github.com/provectus/kafka-ui

  • 许可证:Apache 2

  • 可用性:免费

  • 优点:良好的用户界面;灵活的;很多功能

  • 缺点:开发中

Apache Kafka 的 UI是一个免费的开源 Web 服务,它为开发人员提供了一个清晰的 UI 来处理 Apache Kafka 集群。它使开发人员能够监控数据流并发现和解决数据中的问题,同时提供最佳性能。轻量级仪表板可以轻松跟踪 Apache Kafka 集群的关键指标,包括 Brokers、Topics、Partitions、Production 和 Consumption。

! swz 100110 swz 100111 swz 100109

作者图片

Apache Kafka 的 UI 因其方便的 UI、免费可用性和大量功能而脱颖而出。它拥有以下功能:

  • Browse Messages — 使用 Avro、Protobuf、JSON 和纯文本编码浏览消息

  • View Consumer Groups — 查看每个分区的停放偏移量,以及组合和每个分区的滞后

  • 可配置身份验证 — 使用可选的 Github/Gitlab/Google OAuth 2.0 保护您的安装

  • View Kafka Brokers — 查看主题和分区分配,以及控制器状态

  • View Kafka Topics — 查看分区计数、复制状态和自定义配置

  • 多集群管理 — 在一个地方监控和管理您的所有集群

  • 动态主题配置 — 使用动态配置创建和配置新主题

Provectus是一家正在设计和构建该工具的 AI 咨询公司,声称最早将在 8 月底添加更多功能,包括实时跟踪、KSQL 集成、Kafka Streams 拓扑以及 JMX 指标可视化和图表。

镜头

  • GitHub:https://github.com/lensesio

  • 许可证:BSL

  • 可用性:免费

  • 优点:fast-kafka-dev 和本地开发很棒

  • 缺点:缺乏很多功能

Lenses将自己定位为适用于 Apache Kafka 和 Kubernetes 的实时应用程序和数据操作的 DataOps 平台。它可以帮助工程师提高数据的可用性和安全性,并消除数据孤岛。镜头似乎是实时流分析中评价最高的产品。

但 Lenses 可以说是一个相当普通的工具。将 Lenses 与 fast-kafka-dev 一起使用是非常有意义的。也有利于当地的发展。但是,它缺乏某些功能;多集群管理、消息浏览和 avro 支持根本不足以使其适用于许多任务。将 Kafka Connect 管理作为单独的服务提供也无济于事。

作者图片

但如果你满足于没有很多功能,Lenses 的 UI 绝对符合要求。它是一个真正令人惊叹的工具,非常时尚和直观。

CMAK

  • GitHub:https://github.com/yahoo/CMAK

  • 许可证:Apache 2

  • 可用性:免费

  • 优点:非常适合分区重新分配;运维工具

  • 缺点:仅限于 Ops 任务

CMAK(以前称为Kafka Manager)是一个综合工具,使工程师能够管理Apache Kafka集群以完成各种Ops任务。

! zwz 100131 zwz 100132 zwz 100130

作者图片

CMAK 拥有良好且相当简单的 UI。虽然它没有提供很多功能,但多集群管理、动态主题配置、分区创建和副本更改将涵盖您的大部分任务。

在大多数情况下,CMAK 主要是一种运维工具。它也非常擅长分区重新分配。

汇合CC

  • GitHub:https://github.com/confluentinc

  • 许可证:付费

  • 可用性:付费

  • 优点:Confluent Enterprise 的一部分

  • 缺点:Confluent Enterprise 的一部分

Confluent 控制中心是一个基于 Web 的用户界面,允许开发人员和操作员管理和监控 Apache Kafka 集群,包括检查集群健康状况、观察和控制消息、主题和 Schema Registry。它还可用于开发和运行 ksqlDB 查询。

Confluent CC 的重要之处在于它是作为 Confluent Enterprise 的一部分提供的,这意味着它只是一项付费服务。它具有许多功能和非常好的用户界面。如果您不介意被锁定在 Confluent 生态系统中,这个 UI 工具将完全满足您的需求。

总的来说,Confluent CCS 不仅仅是一个普通的主题检查工具。它的功能非常出色,并且所有功能都可以完美运行,没有任何故障。

导体

  • GitHub:https://github.com/conduktor

  • 许可证:付费

  • 可用性:付费

  • 优点:大量功能

  • 缺点:桌面工具

Conduktor是 Apache Kafka 的桌面客户端,它为工程师提供了一个用户友好的界面来使用 Kafka 生态系统。该客户端是 Windows、Linux 和 Mac 的本机客户端。它可以处理任何类型的 Apache Kafka 集群,并拥有您可能要求的所有功能。

! swz 100146 swz 100147 swz 100145

作者图片

但 Conduktor 可能不如此列表中的其他 UI 工具方便,因为它是一个桌面应用程序。如果您对此感到满意,Conduktor 可以成为 Confluent CC 的可行替代品。

结论

拥有用于监控和管理 Apache Kafka 集群的正确 UI 工具是集群健康的关键。通过简单方便的用户界面,您可以更高效地观察数据流、跟踪指标和解决问题,而无需使用数十种额外的 CLI 工具。这会导致更少的瓶颈、更快的报告和更具成本效益的开发。

本文提供了我对 Apache Kafka 中用于监控和管理集群的主要 UI 工具的看法。我尽我所能保持客观,但社区肯定会有一些东西要补充。

随时在评论部分分享您对这些用于 Apache Kafka 的 UI 工具的反馈和意见,以及我对它们的概述。

Logo

华为、百度、京东云现已入驻,来创建你的专属开发者社区吧!

更多推荐