查看 Google Cloud Managed Service for Apache Kafka 叢集

如要查看叢集,可以使用 Google Cloud 控制台、Google Cloud CLI、用戶端程式庫或 Managed Kafka API。您無法使用開放原始碼 Apache Kafka API 查看叢集。

查看叢集所需的角色和權限

如要取得查看叢集所需的權限,請要求管理員授予您專案的「Managed Kafka 檢視者」 (roles/managedkafka.viewer) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。

這個預先定義的角色具備查看叢集所需的權限。如要查看確切的必要權限,請展開「Required permissions」(必要權限) 部分:

所需權限

如要查看叢集,必須具備下列權限:

  • 列出叢集: managedkafka.clusters.list
  • 取得叢集詳細資料: managedkafka.clusters.get

您或許還可透過自訂角色或其他預先定義的角色取得這些權限。

如要進一步瞭解 Managed Kafka Viewer 角色,請參閱「Managed Service for Apache Kafka 預先定義角色」。

查看叢集

如要查看叢集,請按照下列步驟操作:

控制台

  1. 前往 Google Cloud 控制台的「Clusters」(叢集) 頁面。

    前往「Clusters」(叢集)

    系統會列出您在專案中建立的叢集。

  2. 如要查看特定叢集,請按一下叢集名稱。

  3. 叢集詳細資料頁面隨即開啟。這個頁面包含下列分頁:

    • 資源:顯示與叢集相關聯的主題和消費者群組清單。
    • 設定:顯示叢集的設定,包括與叢集相關聯的子網路清單。
    • 監控:顯示與叢集相關的監控快訊。
    • 記錄:顯示 Logs Explorer 中與叢集相關的記錄。

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 是選用旗標。如果加入這個標記,指令會傳回額外資訊,包括叢集的代理程式資訊,以及叢集執行的 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」>「Clusters」(叢集) 頁面。

    前往「Clusters」(叢集)

  2. 按一下叢集名稱。

  3. 選取「Configurations」(設定) 分頁標籤。

  4. 如果您使用 SASL 驗證,啟動網址會列於「mTLS bootstrap URL」(mTLS 啟動網址) 下方。

    如果您使用相互傳輸層安全標準 (mTLS) 進行驗證,啟動網址會列在「mTLS 啟動網址」下方。

    按一下「複製」即可複製值。

gcloud

如要取得啟動網址,請使用 managed-kafka clusters describe 指令。

如果您使用 SASL 進行驗證,請執行下列指令:

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

如果您使用相互傳輸層安全標準 (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」>「Clusters」(叢集) 頁面。

    前往「Clusters」(叢集)

  2. 按一下叢集名稱。

  3. 選取「Configurations」(設定) 分頁標籤。叢集的代理程式會列在「Active Brokers」(作用中代理程式) 下方。

gcloud

如要取得叢集的代理程式清單,請使用 managed-kafka clusters describe 指令搭配 --full 旗標。

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 VM 上安裝 Kafka 指令列工具。VM 必須能夠連上與 Managed Service for Apache Kafka 叢集連線的子網路。請按照「 使用 Kafka 指令列工具產生及取用訊息」中的操作說明進行操作。

如要取得叢集的代理程式清單,請使用 kafka-configs.sh --describe 指令搭配 --entity-type=brokers 旗標。

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

BOOTSTRAP_ADDRESS 替換為叢集的啟動位址

這個指令會傳回代理程式 ID 清單,以及動態設定 (如有)。不會傳回 rack 屬性。

用戶群組

取用端群組是一組取用端,可共同取用各種主題的資料。如要查看叢集的消費者群組,請參閱下列頁面:

子網路

如要查看與叢集連線的子網路,請執行下列步驟:

控制台

  1. 前往 Google Cloud 控制台的「Clusters」(叢集) 頁面。

    前往「Clusters」(叢集)

  2. 按一下叢集名稱。

  3. 在叢集詳細資料頁面中,按一下「Configurations」(設定) 分頁標籤。 連結的子網路會列在「子網路」下方。

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® 是 The Apache Software Foundation 或其關聯企業在美國與/或其他國家/地區的註冊商標。