使用 Apache Kafka 控制台的流


Red Hat Streams for Apache Kafka 2.8

Apache Kafka 控制台的 Streams 支持部署 Apache Kafka 的 Streams。

摘要

将控制台连接到由 Streams for Apache Kafka 管理的 Kafka 集群,并使用它来监控和管理集群。

前言

对红帽文档提供反馈

我们感谢您对我们文档的反馈。

要改进,创建一个 JIRA 问题并描述您推荐的更改。提供尽可能多的详细信息,以便我们快速解决您的请求。

前提条件

  • 您有红帽客户门户网站帐户。此帐户可让您登录到 Red Hat Jira Software 实例。
    如果您没有帐户,系统会提示您创建一个帐户。

流程

  1. 点以下内容: Create issue
  2. Summary 文本框中输入问题的简短描述。
  3. Description 文本框中提供以下信息:

    • 找到此问题的页面的 URL。
    • 有关此问题的详细描述。
      您可以将信息保留在任何其他字段中的默认值。
  4. 添加 reporter 名称。
  5. Create 将 JIRA 问题提交到文档团队。

感谢您花时间来提供反馈。

技术预览

Apache Kafka 控制台的流是一个技术预览。

技术预览功能不被红帽产品服务级别协议(SLA)支持,且可能无法完成。因此,红帽不推荐在生产环境中实施任何技术预览功能。此技术预览功能为您提供对即将推出的产品创新的早期访问,允许您在开发过程中测试并提供反馈。如需有关支持范围的更多信息,请参阅 技术预览功能支持范围

第 1 章 Apache Kafka 控制台流概述

Apache Kafka 控制台的 Streams 提供了一个用户界面,用于协助管理 Kafka 集群,通过其用户界面提供用于监控、管理和优化每个集群的实时见解。

连接由 Streams for Apache Kafka 管理的 Kafka 集群,以获取实时见解并优化其用户界面的集群性能。控制台的主页显示连接的 Kafka 集群,允许您访问组件的详细信息,如代理、主题、分区和消费者组。

在控制台中,您可以在导航到查看集群的代理和主题信息或连接到 Kafka 集群的消费者组前查看 Kafka 集群的状态。

第 2 章 部署控制台

使用专用操作器部署控制台。

安装 Operator 后,您可以创建控制台的实例。对于每个控制台实例,Operator 还会创建一个私有 Prometheus 实例来从 Kafka 集群中提取指标,该指标在控制台中显示。

2.1. 部署先决条件

要部署控制台,您需要以下内容:

  • OpenShift 4.12 和 4.14 到 4.17 集群。
  • oc 命令行工具已安装并配置为连接到 OpenShift 集群。
  • 使用具有 cluster-admin 权限的账户(如 system-admin )访问 OpenShift 集群。
  • 由 Apache Kafka 的 Streams 管理的 Kafka 集群,在 OpenShift 集群上运行。

提供了用于安装由 Streams for Apache Kafka 管理的 Kafka 集群的示例文件,以及代表控制台的 Kafka 用户。这些文件提供了设置并尝试控制台的最快方法,但您也可以将自己的流用于 Apache Kafka 部署。

2.1.1. 使用您自己的 Kafka 集群

如果您将自己的流用于 Apache Kafka 部署,请通过与控制台提供的示例部署文件进行比较来验证配置。

对于每个 Kafka 集群,用来安装集群的 Kafka 资源必须配置以下内容:

  • 有足够的授权来连接控制台
  • 控制台能够显示某些数据的指标属性

    指标配置必须与示例 Kafka (console-kafka)和 ConfigMap (console-kafka-metrics)资源中指定的属性匹配。

2.1.2. 部署新的 Kafka 集群

如果您已经安装了 Apache Kafka 的 Streams,但希望创建新 Kafka 集群以用于控制台,则可使用部署资源示例来帮助您入门。

这些资源创建以下内容:

  • KRaft 模式中带有 SCRAM-SHA-512 身份验证的 Kafka 集群。
  • Strimzi KafkaNodePool 资源,用于管理集群节点。
  • 一个 KafkaUser 资源,以启用到 Kafka 集群的验证和授权控制台连接。

040-KafkaUser-console-kafka-user1.yaml 文件中的 KafkaUser 自定义资源包括所需的 ACL 类型,以便为 Kafka 集群提供控制台的授权访问权限。

最低所需的 ACL 规则配置如下:

  • 描述,DescribeConfigs 权限
  • 为所有 主题 资源 读取描述DescribeConfigs 权限
  • 为所有 组资源 读取描述 权限
注意

为确保控制台具有正常工作所需的访问权限,必须为每个 Kafka 集群连接中使用的主体配置最小授权级别。具体权限可能会根据所使用的授权框架而有所不同,如 ACL、Keycloak 授权、OPA 或自定义解决方案。

在配置 KafkaUser 身份验证和授权时,请确保它们与对应的 Kafka 配置匹配:

  • KafkaUser.spec.authentication 应该与 Kafka.spec.kafka.listeners[*].authentication 匹配。
  • KafkaUser.spec.authorization 应该与 Kafka.spec.kafka.authorization 匹配。

先决条件

  • OpenShift 4.12 和 4.14 到 4.17 集群。
  • 使用具有 cluster-admin 权限的账户(如 system:admin )访问 OpenShift Container Platform Web 控制台。
  • oc 命令行工具已安装并配置为连接到 OpenShift 集群。

流程

  1. 下载并提取控制台安装工件。

    工件包含在安装以及 Apache Kafka 软件下载页面的 Streams 中提供的示例文件。

    工件为安装 Kafka 集群提供部署 YAML 文件。使用位于 examples/console/resources/kafka 中的示例安装文件。

  2. 设置环境变量以更新安装文件:

    export NAMESPACE=kafka 
    1
    
    export LISTENER_TYPE=route 
    2
    
    export CLUSTER_DOMAIN=<domain_name> 
    3
    Copy to Clipboard Toggle word wrap
    1
    要在其上部署 Kafka Operator 的命名空间。
    2
    用于将 Kafka 公开给控制台的监听程序类型。
    3
    OpenShift 集群的集群域名。

    在本例中,namespace 变量定义为 kafka,侦听器类型是 route

  3. 安装 Kafka 集群。

    运行以下命令以应用 YAML 文件,并将 Kafka 集群部署到定义的命名空间中:

    cat examples/console/resources/kafka/*.yaml | envsubst | kubectl apply -n ${NAMESPACE} -f -
    Copy to Clipboard Toggle word wrap

    此命令读取 YAML 文件,替换命名空间环境变量,并将生成的配置应用到指定的 OpenShift 命名空间。

  4. 检查部署的状态:

    oc get pods -n kafka
    Copy to Clipboard Toggle word wrap

    输出显示 Operator 和集群就绪度

    NAME                              READY   STATUS   RESTARTS
    strimzi-cluster-operator          1/1     Running  0
    console-kafka-console-nodepool-0  1/1     Running  0
    console-kafka-console-nodepool-1  1/1     Running  0
    console-kafka-console-nodepool-2  1/1     Running  0
    Copy to Clipboard Toggle word wrap

    • console-kafka 是集群的名称。
    • console-nodepool 是节点池的名称。

      节点 ID 标识创建的节点。

      使用默认部署,您要安装三个节点。

      READY 显示就绪/预期的副本数。当 STATUS 显示为 Running 时,部署成功。

2.2. 安装 console Operator

使用以下方法之一安装 console Operator:

  • 来自 OpenShift Web 控制台中的 OperatorHub
  • 使用 OpenShift CLI
  • 通过应用 控制台 自定义资源定义(CRD)

推荐的方法是使用 OpenShift Web 控制台或 OpenShift CLI (oc)安装 Operator,它们都由 Operator Lifecycle Manager (OLM)支持。如果使用 OLM 不适用于您的环境,您可以通过直接应用 CRD 来安装 Operator。

2.2.1. 从 OperatorHub 安装 Operator

此流程描述了如何使用 OpenShift Container Platform Web 控制台中的 OperatorHub 安装并订阅 Apache Kafka 控制台 Operator 的 Streams。

此流程描述了如何创建项目,并将 Operator 安装到该项目中。项目是命名空间的表示。对于可管理性,最好使用命名空间来分隔功能。

警告

确保使用正确的更新频道。如果您位于受支持的 OpenShift 版本,则从默认的 alpha 频道安装 Operator 通常安全。但是,我们不推荐在 alpha 频道中启用自动更新。自动升级将在升级前跳过所有必要的步骤。仅在特定于版本的频道中使用自动升级。

先决条件

流程

  1. 在 OpenShift Web 控制台中进入到 Home > Projects 页面,再创建一个用于安装的项目(命名空间)。

    在这个示例中,我们使用名为 streams-kafka-console 的项目。

  2. 进入 Operators > OperatorHub 页面。
  3. Filter by keyword 框中滚动或输入关键字以查找 Apache Kafka Console operator 的 Streams

    operator 位于 Streaming 和 Messaging 目录中。

  4. Apache Kafka Console 的 Streams 来显示 Operator 信息。
  5. 阅读有关 Operator 的信息,再点 Install
  6. Install Operator 页面中,从以下安装和更新选项中选择:

    • 更新频道 :选择 Operator 的更新频道。

      • (默认) alpha 频道包含所有最新的更新和发行版本,包括主版本、次版本和微版本,它们被认为经过充分测试和稳定。
      • amq-streams-X.x 频道包含主发行版本的次要和微版本更新,其中 X 是主版本的版本号。
      • amq-streams-X.Y.x 频道包含次要发行本版本的微版本更新,其中 X 是主版本的版本号,Y 是次版本号。
    • Installation Mode: 将操作器安装到 OpenShift 集群中的所有命名空间。

      运算符的一个实例将监视和管理在整个 OpenShift 集群中创建的控制台。

    • 更新批准 :默认情况下,Operator Lifecycle Manager (OLM)会自动将 Apache Kafka Console operator 的 Streams 升级到最新的控制台版本。另外,如果您希望手动批准将来的升级,请选择 Manual。如需有关 operator 的更多信息,请参阅 OpenShift 文档
  7. Install 将 Operator 安装到所选命名空间中。
  8. Operator 就绪可用后,进入 Operators > Installed Operators 来验证 Operator 是否已安装到所选命名空间中。

    状态将显示为 Succeeded

  9. 使用 console operator 部署控制台并连接到 Kafka 集群

2.2.2. 使用 OpenShift CLI 安装 Operator

此流程描述了如何使用 OpenShift CLI (oc)为 Apache Kafka Console operator 安装 Streams。

先决条件

流程

  1. 下载并提取控制台安装工件。

    工件包含在安装以及 Apache Kafka 软件下载页面的 Streams 中提供的示例文件。

    工件(artifact)向安装控制台提供部署 YAML 文件。

  2. 设置环境变量以定义您要安装 Operator 的命名空间:

    export NAMESPACE=operator-namespace
    Copy to Clipboard Toggle word wrap

    在本例中,namespace 变量定义为 operator-namespace

  3. 使用 OLM 安装 console Operator。

    使用位于 install/console-operator/olm 中的示例安装文件。这些文件使用集群范围范围安装 Operator,允许它在所有命名空间间管理控制台资源。运行以下命令以应用 YAML 文件,并将 Operator 部署到定义的命名空间中:

    cat install/console-operator/olm/*.yaml | envsubst | kubectl apply -n ${NAMESPACE} -f -
    Copy to Clipboard Toggle word wrap

    此命令读取 YAML 文件,替换命名空间环境变量,并将生成的配置应用到指定的 OpenShift 命名空间。

  4. 检查部署的状态:

    oc get pods -n operator-namespace
    Copy to Clipboard Toggle word wrap

    输出显示部署名称和就绪状态

    NAME              READY  STATUS   RESTARTS
    console-operator  1/1    Running  1
    Copy to Clipboard Toggle word wrap

    READY 显示就绪/预期的副本数。当 STATUS 显示为 Running 时,部署成功。

  5. 使用 console operator 部署控制台并连接到 Kafka 集群

2.2.3. 使用 CRD 部署 console Operator

此流程描述了如何使用自定义资源定义(CRD)为 Apache Kafka Console operator 安装流。

先决条件

流程

  1. 下载并提取控制台安装工件。

    工件包含在安装以及 Apache Kafka 软件下载页面的 Streams 中提供的示例文件。

    工件包括一个自定义资源定义(CRD)文件(console-operator.yaml ),用于安装没有 OLM 的 Operator。

  2. 设置环境变量以定义您要安装 Operator 的命名空间:

    export NAMESPACE=operator-namespace
    Copy to Clipboard Toggle word wrap

    在本例中,namespace 变量定义为 operator-namespace

  3. 使用 CRD 安装 console Operator。

    使用位于 install/console-operator/non-olm 中的示例安装文件。这些资源使用集群范围范围安装 Operator,以便其在所有命名空间中管理控制台资源。运行以下命令以应用 YAML 文件:

    cat install/console-operator/non-olm/console-operator.yaml | envsubst | kubectl apply -n ${NAMESPACE} -f -
    Copy to Clipboard Toggle word wrap

    此命令读取 YAML 文件,替换命名空间环境变量,并将生成的配置应用到指定的 OpenShift 命名空间。

  4. 检查部署的状态:

    oc get pods -n operator-namespace
    Copy to Clipboard Toggle word wrap

    输出显示部署名称和就绪状态

    NAME              READY  STATUS   RESTARTS
    console-operator  1/1    Running  1
    Copy to Clipboard Toggle word wrap

    READY 显示就绪/预期的副本数。当 STATUS 显示为 Running 时,部署成功。

  5. 使用 console operator 部署控制台并连接到 Kafka 集群

2.3. 部署控制台并将其连接到 Kafka 集群

使用 console operator 将 Streams for Apache Kafka 控制台部署到与由 Streams for Apache Kafka 管理的 Kafka 集群相同的 OpenShift 集群。使用控制台连接到 Kafka 集群。

先决条件

流程

  1. 在所需命名空间中创建 Console 自定义资源。

    如果您部署了安装工件提供的示例 Kafka 集群,您可以使用 example /console/ resources/console/010-Console-example.yaml 配置文件中指定的配置保持不变。

    否则,配置资源以连接到您的 Kafka 集群。

    控制台配置示例

    apiVersion: console.streamshub.github.com/v1alpha1
    kind: Console
    metadata:
      name: my-console
    spec:
      hostname: my-console.<cluster_domain> 
    1
    
      kafkaClusters:
        - name: console-kafka 
    2
    
          namespace: kafka 
    3
    
          listener: secure 
    4
    
          properties:
            values: [] 
    5
    
            valuesFrom: [] 
    6
    
          credentials:
            kafkaUser:
              name: console-kafka-user1 
    7
    Copy to Clipboard Toggle word wrap

    1
    通过 HTTP 访问控制台的主机名。
    2
    代表集群的 Kafka 资源的名称。
    3
    Kafka 集群的命名空间。
    4
    监听器为控制台连接公开 Kafka 集群。
    5
    (可选)根据需要添加连接属性。
    6
    (可选) 如果需要,对配置映射或 secret 的引用。
    7
    (可选)为经过身份验证的访问 Kafka 集群创建的 Kafka 用户。
  2. 应用 控制台配置 来安装控制台。

    在本例中,控制台被部署到 console-namespace 命名空间中:

    kubectl apply -f examples/console/resources/console/010-Console-example.yaml -n console-namespace
    Copy to Clipboard Toggle word wrap
  3. 检查部署的状态:

    oc get pods -n console-namespace
    Copy to Clipboard Toggle word wrap

    输出显示部署名称和就绪状态

    NAME           READY  STATUS  RUNNING
    console-kafka  1/1    1       1
    Copy to Clipboard Toggle word wrap

  4. 访问控制台。

    当控制台运行时,使用 Console 资源(spec.hostname)中指定的主机名来访问用户界面。

第 3 章 Apache Kafka 控制台的 Streams

当您打开 Apache Kafka 控制台的 Streams 时,主页会显示连接的 Kafka 集群列表。点击主页上的 Kafka 集群名称或从侧边菜单中点 Kafka 集群名称,您可以找到有关以下组件的信息:

Kafka 集群
一组 Kafka 代理和管理组件。
代理(Broker)
代理包含主题,编配存储并传递信息。
topics
主题提供数据存储的目的地。Kafka 将每个主题分成一个或多个分区。
分区
用于数据分片和复制的主题子集。分区数量在主题配置中定义。
消费者组
Kafka 组具有相同组 ID 的用户,并在组成员间分发信息。组中的消费者从一个或多个分区接收数据。

例如,您可以在进入到查看集群代理和主题的信息或连接到 Kafka 集群的消费者组前查看 Kafka 集群的状态。

注意

如果侧边菜单不可见,请单击控制台标头中的 hamburger 菜单(三个水平行)。

第 4 章 HOME :检查连接的集群

主页提供了连接的 Kafka 集群的快照,提供每个集群的 Kafka 版本和相关项目的信息。要查找更多信息,请登录到集群。

4.1. 登录到 Kafka 集群

控制台支持使用 SCRAM-SHA-512 和 OAuth 2.0 身份验证机制验证的用户登录到 Kafka 集群。为了安全登录,必须在 Streams for Apache Kafka 中配置身份验证。

注意

如果没有为 Kafka 集群设置身份验证,或者在控制台配置中使用 Kafka sasl.jaas.config 属性(定义了 SASL 身份验证设置)提供凭证,您可以在不身份验证的情况下匿名登录到集群。

先决条件

  • 有访问 OpenShift Container Platform 集群的权限。
  • 必须部署控制台并设置为连接到 Kafka 集群
  • 要安全登录,您必须具有 Kafka 集群和用户的适当身份验证设置。

    SCRAM-SHA-512 设置
  • 监听器身份验证设置为 Kafka.spec.kafka.listeners[*].authentication 中的 scram-sha-512
  • KafkaUser.spec.authentication 中配置的用户名和密码。

    OAuth 2.0 设置
  • 带有 Kafka 集群和用户的客户端定义的 OAuth 2.0 授权服务器。
  • Kafka.spec.kafka.listeners[*].authentication 中,监听程序身份验证设置为 oauth

有关配置身份验证的更多信息,请参阅 Apache Kafka 文档的流

流程

  1. 在主页中,点所选 Kafka 集群的 Login to cluster
  2. 根据使用的身份验证方法输入登录凭证。

    • 对于 SCRAM-SHA-512,请输入与 KafkaUser 关联的用户名和密码。
    • 对于 OAuth 2.0,提供一个客户端 ID 和客户端 secret,它对为 Kafka 侦听器配置的 OAuth 供应商有效。
  3. 要结束您的会话,请单击您的用户名,然后单击 Logout 或导航到主页。

第 5 章 集群概览页面

Cluster overview 页面显示 Kafka 集群的状态。在这里,您可以评估 Kafka 代理的就绪情况,识别任何集群错误或警告,并深入了解集群的健康状况。页面概览中提供了有关集群中主题和分区数量的信息,以及它们的复制状态。通过图表探索集群指标,显示已用磁盘空间、CPU 使用率和内存使用情况。另外,主题指标提供了对 Kafka 集群中所有主题的总传入和传出字节率的全面视图。

5.1. 访问客户端访问的集群连接详情

将客户端连接到 Kafka 集群时,按照以下步骤从集群概览页面检索必要的连接详情。

流程

  1. 从 Apache Kafka 控制台的 Streams 中,登录到您要连接的 Kafka 集群,然后点 Cluster overviewCluster connection details
  2. 在 Kafka 客户端配置中复制并添加 bootstrap 地址和连接属性,以与 Kafka 集群建立连接。
注意

确保客户端使用的身份验证类型与为 Kafka 集群配置的身份验证类型匹配。

第 6 章 主题页面

主题 页面显示为 Kafka 集群创建的所有主题。使用此页面检查有关主题的信息。

主题 页面显示主题中分区的整体复制状态,以及主题中分区的数量以及关联的消费者组的数量。该主题使用的整体存储也显示。

警告

内部主题不能修改。您可以从主题页面中返回的主题列表中选择隐藏内部 主题

点击主题名称,在一系列标签页中会显示其他主题信息:

消息
消息显示主题的消息日志。
分区
分区显示主题中每个分区的复制状态。
消费者组
消费者组列出了连接到主题的消费者组和组成员的名称和状态。
配置
配置显示主题的配置。

如果一个主题显示为 Managed,这意味着使用 Apache Kafka Topic Operator 的 Streams 管理,且不会直接在 Kafka 集群中创建。

使用选项卡提供的信息,检查和修改主题的配置。

6.1. 检查主题消息

Messages 选项卡中跟踪特定主题的消息流。Messages 选项卡显示主题的按时间顺序列表。

流程

  1. 从 Apache Kafka 控制台的 Streams 中,登录到 Kafka 集群,然后点 Topics
  2. 点您要检查的主题名称。
  3. 检查 消息 选项卡上的信息。

    对于每个消息,您可以看到其时间戳(以 UTC)、偏移、键和值。

    单击一条消息,您可以看到完整的消息详情。

    单击 Manage 列 图标(代表两列),以选择要显示的信息。

  4. 单击搜索下拉菜单,再选择高级搜索选项来优化您的搜索。

    选择显示来自指定时间或偏移的最新消息。您可以显示所有分区或指定分区的信息。

    完成后,您可以点击 CSV 图标(代表 CSV 文件)下载有关返回的信息。

拒绝搜索

在这个示例中,搜索术语和消息、检索和分区选项被合并:

  • messages=timestamp:2024-03-01T00:00:00Z retrieve=50 partition=1 Error on page load where=value

过滤器在分区 1 中搜索文本"Error on page load"作为消息值,从 2024 年 3 月 1 日开始,并检索到 50 个消息。

搜索术语

输入搜索词作为文本(包含单词)以查找特定匹配项,并在消息中定义查找术语 的位置。您可以在消息中的任何位置搜索,或者将搜索范围缩小到键、标头或值。

例如:

  • messages=latest retrieve=100 642-26-1594 where=key

本例在消息键 642-26-1594 中搜索最新的 100 消息。

消息选项

设置返回消息的起点。

  • latest 从最新的消息开始。

    • messages=latest
  • 以 ISO 8601 格式从准确时间和日期开始的时间戳。

    • messages=timestamp:2024-03-14T00:00:00Z
  • 从分区中的偏移开始的偏移量。在某些情况下,您可能想要指定没有分区的偏移。但是,最常见的场景是通过特定分区中的偏移搜索。

    • messages=offset:5600253 partition=0
  • UNIX Timestamp 从 Unix 格式的时间和日期开始。

    • messages=epoch:1
检索选项

设置检索选项。

  • 返回指定数量的消息数。

    • messages=latest retrieve=50
  • 持续 实时返回最新消息。点 pause 按钮(由两个垂直线代表)暂停刷新。取消暂停以继续刷新。

    • retrieve=continuously
分区选项
选择针对所有分区或特定分区运行搜索。

6.2. 检查主题分区

Partitions 选项卡中检查特定主题的分区。Partitions 选项卡显示属于某个主题的分区列表。

流程

  1. 从 Apache Kafka 控制台的 Streams 中,登录到 Kafka 集群,然后点 Topics
  2. 点您要从 主题 页面检查的主题名称。
  3. 检查 分区 选项卡上的信息。

对于每个分区,您可以看到其复制状态,以及指定分区领导、副本代理以及分区存储的数据量的信息。

您可以通过复制状态查看分区:

in-sync
主题中的所有分区都是完全复制的。当副本(followers)与指定的分区领导处于"in-sync"时,分区是完全复制的。如果副本已获取了在允许滞后时间内领导分区的日志结束偏移,则副本为 'in-sync',由 replica.lag.time.max.ms 决定。
under-replicated
如果某些副本(followers)没有同步,分区会被复制。复制不足的状态信号数据复制中潜在的问题。
Offline
主题中的一些或者所有分区当前都不可用。这可能是因为需要调查和解决的代理失败或网络问题等问题。

您还可以检查指定为分区领导和包含副本的代理的信息:

leader
领导机处理所有生成请求。在其他代理上遵循其他代理复制领导的数据。如果与领导的最新提交消息捕获,则后续者被视为 in-sync。
首选领导
在创建新主题时,Kafka 的领导选举算法从每个分区的副本列表中分配一个领导机。该算法旨在平衡领导分配分布。"是"值表示当前领导机是首选领导机,建议平衡领导力分布。"No"值可能在领导分配中没有平衡,需要进一步调查。如果分区的领导分配没有良好平衡,它可以贡献大小差异。平衡良好的 Kafka 集群应该在代理间均匀分布领导角色。
Replicas
复制领导的数据的遵循者。副本提供容错和数据可用性。
注意

在代理间分布数据的差异可能代表 Kafka 集群中的平衡问题。如果某些代理一致处理大量数据,这可能表示分区不会在代理中均匀分布。这可能会导致资源利用率不均匀,并可能会影响这些代理的性能。

6.3. 检查主题消费者组

Consumer groups 选项卡中检查特定主题的消费者组。Consumer groups 选项卡显示与主题关联的消费者组列表。

流程

  1. 从 Apache Kafka 控制台的 Streams 中,登录到 Kafka 集群,然后点 Topics
  2. 点您要从 主题 页面检查的主题名称。
  3. 检查 Consumer groups 选项卡的信息。
  4. 若要检查消费者组成员,请单击使用者组名称。

对于每个消费者组,您可以看到其状态、所有分区的整体消费者滞后以及成员数。有关检查消费者组的详情,请参考 第 8 章 消费者组页面

对于每个组成员,您会看到分配给消费者组、整个消费者滞后以及分配的分区数量的唯一(consumer)客户端 ID。有关检查消费者组成员的详情,请参考 第 8.1 节 “检查消费者组成员”

注意

监控消费者组行为对于确保消费者之间的消息优化分布非常重要。

6.4. 检查主题配置

Configuration 选项卡中检查特定主题的配置。Configuration 选项卡显示该主题的配置值列表。

流程

  1. 从 Apache Kafka 控制台的 Streams 中,登录到 Kafka 集群,然后点 Topics
  2. 点您要从 主题 页面检查的主题名称。
  3. 检查 Configuration 选项卡上的信息。

您可以过滤要检查的属性,包括通过数据源选择:

  • DEFAULT_CONFIG 属性具有预定义的默认值。当没有用于这些属性的用户定义的值时,会使用这个值。
  • STATIC_BROKER_CONFIG 属性具有适用于整个代理且扩展到该代理管理的所有主题的预定义值。当没有用于这些属性的用户定义的值时,会使用这个值。
  • DYNAMIC_TOPIC_CONFIG 属性值已被为特定主题配置,并覆盖默认的配置值。
提示

Apache Kafka Topic Operator 的 Streams 简化了使用 KafkaTopic 资源管理 Kafka 主题的过程。

第 7 章 代理页面

Brokers 页面显示为 Kafka 集群创建的所有代理。对于每个代理,您可以看到其状态,以及代理间分区分布,包括分区领导和副本的数量。

代理状态显示为以下之一:

稳定
稳定代理正常运行,且没有严重问题。
unstable
不稳定的代理可能会遇到问题,如大量资源使用量或网络问题。

如果代理有一个机架 ID,这是代理所在的机架或数据中心的 ID。

点击代理名称旁边的右箭头(>)查看代理的更多信息,包括其主机名和磁盘用量。

注意

如果分布不均匀,请考虑重新平衡,以确保资源利用率效率。

第 8 章 消费者组页面

Consumer groups 页面显示与 Kafka 集群关联的所有消费者组。对于每个消费者组,您可以看到其状态、所有分区的整体消费者滞后以及成员数。单击相关的主题,以显示主题 页面选项卡中可用的主题 信息。

消费者组状态可以是以下之一:

  • stable 表示正常正常工作
  • 重新平衡 表示消费者组成员的持续调整。
  • 建议没有活跃的成员。如果处于空状态,请考虑向组添加成员。

点消费者组名称来检查组成员。有关检查消费者组成员的详情,请参考 第 8.1 节 “检查消费者组成员”

8.1. 检查消费者组成员

Consumer groups 页面检查特定消费者组的成员。

流程

  1. 从 Apache Kafka 控制台的 Streams 中,登录到 Kafka 集群,然后点 Consumer groups
  2. 点您要从 Consumer groups 页面检查的消费者组的名称。
  3. 点成员 ID 旁边的右箭头(>)来查看与成员关联的主题分区,以及任何可能的消费者滞后。

对于每个组成员,您会看到分配给消费者组、整个消费者滞后以及分配的分区数量的唯一(consumer)客户端 ID。

特定主题分区的任何消费者滞后反映消费者获取的最后一条消息之间的差距(提交偏移位置)和由制作者(偏移位置)编写的最新消息。

附录 A. 使用您的订阅

Apache Kafka 的流通过软件订阅提供。要管理您的订阅,请访问红帽客户门户中的帐户。

访问您的帐户

  1. 转至 access.redhat.com
  2. 如果您还没有帐户,请创建一个帐户。
  3. 登录到您的帐户。

激活订阅

  1. 转至 access.redhat.com
  2. 导航到 My Subscriptions
  3. 导航到 激活订阅 并输入您的 16 位激活号。

下载 Zip 和 Tar 文件

要访问 zip 或 tar 文件,请使用客户门户网站查找下载的相关文件。如果您使用 RPM 软件包,则不需要这一步。

  1. 打开浏览器并登录红帽客户门户网站 产品下载页面,网址为 access.redhat.com/downloads
  2. INTEGRATION AND AUTOMATION 目录中找到 Apache Kafka for Apache Kafka 的流。
  3. 选择 Apache Kafka 产品所需的流。此时会打开 Software Downloads 页面。
  4. 单击组件的 Download 链接。

使用 DNF 安装软件包

要安装软件包以及所有软件包的依赖软件包,请使用:

dnf install <package_name>
Copy to Clipboard Toggle word wrap

要从本地目录中安装之前下载的软件包,请使用:

dnf install <path_to_download_package>
Copy to Clipboard Toggle word wrap

更新于 2024-11-23

法律通告

Copyright © 2024 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat