查看 Google Cloud Managed Service for Apache Kafka 集群

如需查看集群,您可以使用 Google Cloud 控制台、Google Cloud CLI、客户端库或 Managed Kafka API。您无法使用开源 Apache Kafka API 查看集群。

查看集群所需的角色和权限

如需获得查看集群所需的权限,请让您的管理员为您授予项目的 Managed Kafka Viewer (roles/managedkafka.viewer) IAM 角色。 如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限

此预定义角色包含查看集群所需的权限。如需查看所需的确切权限,请展开所需权限部分:

所需权限

如需查看集群,您需要具备以下权限:

  • 列出集群: managedkafka.clusters.list
  • 获取集群详情: managedkafka.clusters.get

您也可以使用自定义角色或其他预定义角色来获取这些权限。

如需详细了解 Managed Kafka Viewer 角色,请参阅 Managed Service for Apache Kafka 预定义角色

查看集群

如需查看集群,请按以下步骤操作:

控制台

  1. 在 Google Cloud 控制台中,前往集群页面。

    转到“集群”

    系统会列出您在项目中创建的集群。

  2. 如需查看特定集群,请点击集群名称。

  3. 系统会打开集群详情页面。此页面包含以下标签页:

    • 资源:显示与集群关联的主题和消费者群组的列表。
    • 配置:显示集群的配置,包括与集群关联的子网列表。
    • 监控:显示与集群关联的监控提醒。
    • 日志:显示与日志浏览器中的集群相关的日志。

gcloud

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. 运行 gcloud managed-kafka clusters describe 命令:

    gcloud managed-kafka clusters describe CLUSTER_ID \
        --location=LOCATION \
        --full
    

    替换以下内容:

    • CLUSTER_ID:集群的 ID 或名称。
    • LOCATION:集群的位置。

    --full 标志是可选的。如果您添加此标志,该命令会返回其他信息,包括有关集群的 broker 的信息以及集群正在运行的 Kafka 版本号。

  3. REST

    在使用任何请求数据之前,请先进行以下替换:

    • PROJECT_ID:您的 Google Cloud 项目 ID
    • LOCATION:集群的位置
    • CLUSTER_ID:集群的 ID
    • CLUSTER_VIEW:要返回的元数据量。请指定以下某个值:

      • CLUSTER_VIEW_BASIC:返回集群的基本元数据。
      • CLUSTER_VIEW_FULL:返回集群的所有元数据,包括集群的代理和集群正在运行的 Kafka 版本号的相关信息。

      如果未指定,则方法默认为 CLUSTER_VIEW_BASIC

    HTTP 方法和网址:

    GET https://managedkafka.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/clusters/CLUSTER_ID?view=CLUSTER_VIEW

    如需发送您的请求,请展开以下选项之一:

    您应该收到类似以下内容的 JSON 响应:

    {
      "name": "projects/PROJECT_ID/locations/LOCATION/clusters/CLUSTER_ID",
      "createTime": "CREATE_TIME",
      "updateTime": "UPDATE_TIME",
      "capacityConfig": {
        "vcpuCount": "CPU_COUNT",
        "memoryBytes": "MEMORY"
      },
      "rebalanceConfig": {},
      "gcpConfig": {
        "accessConfig": {
          "networkConfigs": [
            {
              "subnet": "projects/PROJECT_ID/locations/LOCATION/subnetworks/SUBNET_ID"
            }
          ]
        }
      },
      "state": "ACTIVE",
      "satisfiesPzi": false,
      "satisfiesPzs": false,
      "tlsConfig": {
        "trustConfig": {}
      },
      "updateOptions": {}
    }
    

    Go

    在尝试此示例之前,请按照 安装客户端库中的 Go 设置说明进行操作。如需了解详情,请参阅 Managed Service for Apache Kafka Go API 参考文档

    如需向 Managed Service for Apache Kafka 进行身份验证,请设置应用默认凭据(ADC)。 如需了解详情,请参阅为本地开发环境设置 ADC

    import (
    	"context"
    	"fmt"
    	"io"
    
    	"cloud.google.com/go/managedkafka/apiv1/managedkafkapb"
    	"google.golang.org/api/option"
    
    	managedkafka "cloud.google.com/go/managedkafka/apiv1"
    )
    
    func getCluster(w io.Writer, projectID, region, clusterID string, opts ...option.ClientOption) error {
    	// projectID := "my-project-id"
    	// region := "us-central1"
    	// clusterID := "my-cluster"
    	ctx := context.Background()
    	client, err := managedkafka.NewClient(ctx, opts...)
    	if err != nil {
    		return fmt.Errorf("managedkafka.NewClient got err: %w", err)
    	}
    	defer client.Close()
    
    	clusterPath := fmt.Sprintf("projects/%s/locations/%s/clusters/%s", projectID, region, clusterID)
    	req := &managedkafkapb.GetClusterRequest{
    		Name: clusterPath,
    	}
    	cluster, err := client.GetCluster(ctx, req)
    	if err != nil {
    		return fmt.Errorf("client.GetCluster got err: %w", err)
    	}
    	fmt.Fprintf(w, "Got cluster: %#v\n", cluster)
    	return nil
    }
    

    Java

    在尝试此示例之前,请按照 安装客户端库中的 Java 设置说明进行操作。如需了解详情,请参阅 Managed Service for Apache Kafka Java API 参考文档

    如需向 Managed Service for Apache Kafka 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅 为本地开发环境设置 ADC

    import com.google.api.gax.rpc.ApiException;
    import com.google.cloud.managedkafka.v1.Cluster;
    import com.google.cloud.managedkafka.v1.ClusterName;
    import com.google.cloud.managedkafka.v1.ManagedKafkaClient;
    import java.io.IOException;
    
    public class GetCluster {
    
      public static void main(String[] args) throws Exception {
        // TODO(developer): Replace these variables before running the example.
        String projectId = "my-project-id";
        String region = "my-region"; // e.g. us-east1
        String clusterId = "my-cluster";
        getCluster(projectId, region, clusterId);
      }
    
      public static void getCluster(String projectId, String region, String clusterId)
          throws Exception {
        try (ManagedKafkaClient managedKafkaClient = ManagedKafkaClient.create()) {
          // This operation is being handled synchronously.
          Cluster cluster = managedKafkaClient.getCluster(ClusterName.of(projectId, region, clusterId));
          System.out.println(cluster.getAllFields());
        } catch (IOException | ApiException e) {
          System.err.printf("managedKafkaClient.getCluster got err: %s", e.getMessage());
        }
      }
    }
    

    Python

    在尝试此示例之前,请按照 安装客户端库中的 Python 设置说明进行操作。如需了解详情,请参阅 Managed Service for Apache Kafka Python API 参考文档

    如需向 Managed Service for Apache Kafka 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置 ADC

    from google.api_core.exceptions import NotFound
    from google.cloud import managedkafka_v1
    
    # TODO(developer)
    # project_id = "my-project-id"
    # region = "us-central1"
    # cluster_id = "my-cluster"
    
    client = managedkafka_v1.ManagedKafkaClient()
    
    cluster_path = client.cluster_path(project_id, region, cluster_id)
    request = managedkafka_v1.GetClusterRequest(
        name=cluster_path,
    )
    
    try:
        cluster = client.get_cluster(request=request)
        print("Got cluster:", cluster)
    except NotFound as e:
        print(f"Failed to get cluster {cluster_id} with error: {e.message}")
    

查看集群属性和资源

以下部分介绍了如何获取与 Managed Service for Apache Kafka 集群关联的各种属性和资源的详细信息。

引导地址

Kafka 客户端使用集群的引导地址与集群建立连接。如需获取引导地址,请执行以下步骤:

控制台

  1. 前往 Managed Service for Apache Kafka > 集群页面。

    转到“集群”

  2. 点击集群的名称。

  3. 选择配置标签页。

  4. 如果您使用 SASL 进行身份验证,则引导网址会列在 mTLS 引导网址下。

    如果您使用双向 TLS (mTLS) 进行身份验证,则引导网址会列在 mTLS 引导网址下。

    点击 复制即可复制相应值。

gcloud

如需获取引导网址,请使用 managed-kafka clusters describe 命令。

如果您使用 SASL 进行身份验证,请运行以下命令:

gcloud managed-kafka clusters describe CLUSTER_ID \
  --location=LOCATION \
  --format="value(bootstrapAddress)"

如果您使用双向 TLS (mTLS) 进行身份验证,请运行以下命令:

gcloud managed-kafka clusters describe CLUSTER_ID \
  --location=LOCATION \
  --format="value(bootstrapAddressMTLS)"

替换以下内容:

  • CLUSTER_ID:集群的 ID 或名称。
  • LOCATION:集群的位置。

如需详细了解 SASL 和 mTSL 身份验证,请参阅 Kafka 代理的身份验证类型

代理

Managed Service for Apache Kafka 会自动为集群预配代理。经纪商具有以下属性:

  • brokerIndex:代理的从零开始的索引。
  • nodeId:相应代理的节点 ID。
  • rack:代理的预配可用区,例如 us-central1-a

如需查看集群的代理,请执行以下步骤。

控制台

  1. 前往 Managed Service for Apache Kafka > 集群页面。

    转到“集群”

  2. 点击集群的名称。

  3. 选择配置标签页。集群的代理列在 Active Brokers 下。

gcloud

如需获取集群的代理列表,请使用带有 --full 标志的 managed-kafka clusters describe 命令。

gcloud managed-kafka clusters describe CLUSTER_ID \
  --location=LOCATION \
  --full \
  --format="yaml(brokerDetails)"

替换以下内容:

  • CLUSTER_ID:集群的 ID 或名称。
  • LOCATION:集群的位置。

输出类似于以下内容:

brokerDetails:
- brokerIndex: '0'
  nodeId: '10'
  rack: us-central1-c
- brokerIndex: '1'
  nodeId: '11'
  rack: us-central1-f
- brokerIndex: '2'
  nodeId: '12'
  rack: us-central1-b

Kafka CLI

运行此命令之前,请在 Compute Engine 虚拟机上安装 Kafka 命令行工具。虚拟机必须能够访问连接到 Managed Service for Apache Kafka 集群的子网。按照 使用 Kafka 命令行工具生成和使用消息中的说明操作。

如需获取集群的代理列表,请使用带有 --entity-type=brokers 标志的 kafka-configs.sh --describe 命令。

kafka-configs.sh --describe --entity-type brokers \
  --bootstrap-server=BOOTSTRAP_ADDRESS \
  --command-config client.properties

BOOTSTRAP_ADDRESS 替换为集群的引导地址

此命令会返回代理 ID 的列表,以及它们的动态配置设置(如果有)。它不会返回 rack 属性。

使用方群组

消费者群组是一组协同从各种主题中消费数据的消费者。如需查看集群的消费群组,请参阅以下页面:

子网

如需查看与集群关联的子网,请执行以下步骤:

控制台

  1. 在 Google Cloud 控制台中,前往集群页面。

    转到“集群”

  2. 点击集群的名称。

  3. 在集群详情页面中,点击配置标签页。 已连接的子网会列在子网下方。

gcloud

  1. 运行 gcloud managed-kafka clusters describe 命令:

    gcloud managed-kafka clusters describe CLUSTER_ID \
        --location=LOCATION \
        --format="yaml(gcpConfig.accessConfig.networkConfigs)"
    

    替换以下内容:

    • CLUSTER_ID:集群的 ID 或名称。
    • LOCATION:集群的位置。

如需了解详情,请参阅为 Managed Service for Apache Kafka 配置网络

主题

如需查看集群中的主题,请参阅以下页面:

后续步骤

Apache Kafka® 是 Apache Software Foundation 或其关联公司在美国和/或其他国家/地区的注册商标。