kafka-ui 介绍
kafka 本身没有自带相关的 ui 界面,但是很多时候没有页面意味着只有使用命令行进行相关操作如创建 topic、更改 topic 信息、重置 offset 等等。但实际使用中这种效果很差劲,我们一般还是会借助其他软件,实现对 kafka 的页面管控。
Apache Kafka UI是一个多功能、快速且轻量级的 Web UI,用于管理 Apache Kafka® 集群。由开发人员构建,为开发人员服务。该应用程序是一个免费的开源 Web UI,用于监控和管理 Apache Kafka 集群。Apache Kafka UI 是一个简单的工具,可让您的数据流可观察,帮助更快地发现和解决问题并提供最佳性能。其轻量级仪表板可以轻松跟踪 Kafka 集群的关键指标 – 代理、主题、分区、生产和消耗。
-
• 配置向导— 直接在 UI 中配置您的 Kafka 集群
-
• 多集群管理——在一个地方监控和管理所有集群
-
• 使用指标仪表板进行性能监控— 使用轻量级仪表板跟踪关键 Kafka 指标
-
• **查看 Kafka Brokers **— 查看主题和分区分配、控制器状态
-
• 查看 Kafka 主题— 查看分区计数、复制状态和自定义配置
-
• 查看消费者组— 查看每个分区的停放偏移量、组合滞后和每个分区滞后
-
• 浏览消息— 使用 JSON、纯文本和 Avro 编码浏览消息
-
• 动态主题配置— 使用动态配置创建和配置新主题
-
• 可配置的身份验证– 使用可选的 Github/Gitlab/Google OAuth 2.0 保护您的安装
-
• 自定义序列化/反序列化插件– 对您的数据使用现成的 Serde,例如 AWS Glue 或 Smile,或者编写您自己的代码!
-
• 基于角色的访问控制-精确管理访问 UI 的权限
-
• 数据脱敏——混淆主题消息中的敏感数据
-
• ODD 集成— 在 OpenDataDiscovery 平台中探索和监控 kafka 相关元数据更改

结合这张图与实际体验,推荐大家使用 ui for apache kafka 进行 kafka 的 ui 界面化管理。
kafka-ui 搭建
kafka-ui支持多种安装方式下边我用docker和k8s俩种方式来介绍 默认情况下,kafka-ui 不允许在运行时更改其配置。当应用程序启动时,它会从系统环境、配置文件(例如 application.yaml)和 JVM 参数(由-D)读取配置。一旦配置被读取,它就被视为不可变,即使配置源(例如文件)发生更改也不会刷新。从 0.6 版本开始,我们添加了在运行时更改集群配置的功能。默认情况下禁用此选项,应隐式启用。要启用它,您应该设置DYNAMIC_CONFIG_ENABLEDenv 属性true或将dynamic.config.enabled: true属性添加到 yaml 配置文件。示例 docker compose 配置
services:
kafka-ui:
container_name: kafka-ui
image: provectuslabs/kafka-ui:latest
ports:
- 8080:8080
environment:
DYNAMIC_CONFIG_ENABLED: 'true'
volumes:
- ~/kui/config.yml:/etc/kafkaui/dynamic_config.yaml
除了使用空配置启动应用程序并在启动后进行设置之外,甚至可以省略所有变量。DYNAMIC_CONFIG_ENABLED 启用动态配置功能后,您将看到其他按钮,这些按钮将带您进入“向导”以编辑现有集群配置或添加新集群:
动态配置文件
Kafka-ui 本质上是一个无状态应用程序,因此,当您在运行时编辑配置时,它会将添加的配置存储在容器的文件系统上(在dynamic_config.yaml文件中)。每次配置提交时都会覆盖动态配置文件。在配置过程中,您还可以上传与配置相关的文件(例如信任库和密钥库)。它们将存储在etc/kafkaui/uploads具有唯一时间戳后缀的文件夹中,以防止名称冲突。在向导中,您还可以使用已安装到容器文件系统的文件,而无需直接上传它们。 请注意,如果重新创建容器,编辑(和上传)的文件将不会出现,并且应用程序将仅使用静态配置启动。如果希望能够保留向导创建的配置,则必须将相同的文件挂载/复制到新创建的 kafka-ui 容器(/etc/kafkaui/默认情况下为整个文件夹)。使用helm安装
helm repo add kafka-ui https://provectus.github.io/kafka-ui-charts
helm install kafka-ui kafka-ui/kafka-ui
将 Kafka-UI 配置作为 Dict 传递 创建values.yml文件
yamlApplicationConfig:
kafka:
clusters:
- name: yaml
bootstrapServers: kafka-cluster-broker-endpoints:9092
auth:
type: disabled
management:
health:
ldap:
enabled: false
通过执行命令安装
helm install helm-release-name charts/kafka-ui -f values.yml
将配置文件作为 ConfigMap 传递
apiVersion: v1
kind: ConfigMap
metadata:
name: kafka-ui-configmap
data:
config.yml: |-
kafka:
clusters:
- name: yaml
bootstrapServers: kafka-cluster-broker-endpoints:9092
auth:
type: disabled
management:
health:
ldap:
enabled: false
此 ConfigMap 将被挂载到 Pod 上 通过执行命令安装
helm install helm-release-name charts/kafka-ui --set yamlApplicationConfigConfigMap.name="kafka-ui-configmap",yamlApplicationConfigConfigMap.keyName="config.yml"
kafka-ui 使用
多集群切换
点击左侧进行多集群切换,绿色为集群健康,黄色为警告,红色为已经挂掉。

集群 Broker 统计信息
所有 broker 总数、controllers 总数、版本号。Partitions 在线数量,URP 数量,在副本数的数量和 OSR 的数量。下面为每个 broker 的详细数据信息。

Topic 信息
在 Topics 中,可以看到所有的 topic,也可以进行搜索。

在查询到自己想看的 topic 后可以点击 topic name 进行详细的 topic 查看:

可以通过切换 overview、messages、consumers、settings 进行切换。在左边有三个点的按钮都可以操作,
-
• 其中右上角的对当前 topic 操作,包含:编辑 topic 信息、 清空 topic 数据、重建 topic、删除 topic。

针对每个 broker 也可以清空数据:

创建 topic

原文始发于微信公众号(背带裤的云原生):kafka-ui:Kafka管理的终极舞台,让消息更具魔力
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/219075.html