Google Cloud Managed Service for Apache Kafka クラスタを表示する

クラスタを表示するには、 Google Cloud コンソール、Google Cloud CLI、クライアント ライブラリ、または Managed Kafka API を使用します。オープンソースの Apache Kafka API を使用してクラスタを表示することはできません。

クラスタを表示するために必要なロールと権限

クラスタを表示するために必要な権限を取得するには、プロジェクトに対する Managed Kafka 閲覧者 roles/managedkafka.viewer)IAM ロールを付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織に対するアクセス権の管理をご覧ください。

この事前定義ロールには、クラスタの表示に必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。

必要な権限

クラスタを表示するには、次の権限が必要です。

  • クラスタを一覧表示します: managedkafka.clusters.list
  • クラスタの詳細を取得します。 managedkafka.clusters.get

カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。

Managed Kafka 閲覧者のロールの詳細については、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 フラグは省略可能です。このフラグを指定すると、コマンドは、クラスタのブローカーとクラスタが実行している 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 メソッドと URL:

    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 を使用して認証を行う場合、ブートストラップ URL は [mTLS ブートストラップ URL] に表示されます。

    相互 TLS(mTLS)を使用して認証している場合、ブートストラップ URL は [mTLS ブートストラップ URL] に表示されます。

    [コピー] をクリックして値をコピーします。

gcloud

ブートストラップ URL を取得するには、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 認証と mTLS 認証の詳細については、Kafka ブローカーの認証タイプをご覧ください。

ブローカー

Managed Service for Apache Kafka は、クラスタのブローカーを自動的にプロビジョニングします。ブローカーには次のプロパティがあります。

  • brokerIndex: ブローカーのゼロベースのインデックス。
  • nodeId: ブローカーのノード ID。
  • rack: ブローカーがプロビジョニングされるゾーン(例: us-central1-a)。

クラスタのブローカーを表示する手順は次のとおりです。

コンソール

  1. [Managed Service for Apache Kafka] > [クラスタ] ページに移動します。

    [クラスタ] に移動

  2. クラスタの名前をクリックします。

  3. [構成] タブを選択します。クラスタのブローカーは [アクティブ ブローカー] に表示されます。

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 VM に Kafka コマンドライン ツールをインストールします。VM は、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 または米国その他の諸国における関連会社の商標です。