Kafka クラスタのエラーをトラブルシューティングする

このページでは、Managed Service for Apache Kafka クラスタの作成または構成時に発生する問題を解決する方法について説明します。

Kafka クラスタの作成エラー

このセクションでは、Kafka クラスタの作成時に発生する可能性のあるエラーについて説明します。

サービスに Cloud KMS 鍵にアクセスする権限がない

Managed Service for Apache Kafka サービス エージェントに Cloud KMS 鍵にアクセスするための必要な権限がない場合、次の問題が発生します。

Service agent service-${PROJECT_NUMBER}@gcp-sa-managedkafka.iam.gserviceaccount.com
has not been granted the required role cloudkms.cryptoKeyEncrypterDecrypter to
encrypt data using the KMS key.`

この問題を解決するには、Cloud KMS 鍵に対する Cloud KMS CryptoKey の暗号化/復号ロールをサービス アカウントに付与します。詳細については、CMEK の構成に必要なロールをご覧ください。

サービスにサブネットを取得する権限がない

Managed Service for Apache Kafka サービス エージェントに、Kafka クライアントが実行される VPC ネットワークでネットワーキングを構成するために必要なロールがない場合、次の問題が発生します。

Service does not have permission to retrieve subnet. Please grant
service-${PROJECT_NUMBER}@gcp-sa-managedkafka.iam.gserviceaccount.com the
managedkafka.serviceAgent role in the IAM policy of the project
${SUBNET_PROJECT} and ensure the Compute Engine API is enabled in project
${SUBNET_PROJECT}`

この問題を解決するには、サービス アカウントに Managed Kafka サービス エージェント ロールを付与します。詳細については、プロジェクト間でクラスタを接続するをご覧ください。

ネットワーク エラー

このセクションでは、Kafka クラスタのネットワーキングを構成するときに発生する可能性のあるエラーを一覧表示します。

サービスがネットワーキングを設定できなかった

Managed Service for Apache Kafka が Kafka クラスタを Virtual Private Cloud サブネットに接続できない場合、次の問題が発生します。

Managed Service for Apache Kafka failed to set up networking in VPC subnet.

この問題を解決するには、次の操作を行います。

  • コンシューマー VPC ネットワークの親プロジェクトで Compute Engine API と Cloud DNS API を有効にします。

  • Managed Service for Apache Kafka クラスタとコンシューマー VPC ネットワークが異なるプロジェクトにある場合は、必要な権限を構成します。複数のプロジェクトにわたってクラスタを接続するをご覧ください。

  • 組織のポリシー制約によって、サービスがコンシューマー VPC ネットワークのプロジェクトに必要なリソースを作成できないことがないようにします。

詳細については、Managed Service for Apache Kafka のネットワーキングを構成するをご覧ください。

クライアント アプリケーションが接続できない

クライアント アプリケーションがクラスタに接続できない場合は、次の問題を確認してください。

  • クライアントが正しいブートストラップ アドレスを使用していることを確認します。

  • Kafka クライアントが、Managed Service for Apache Kafka クラスタにアクセスするように構成された VPC ネットワークで実行されていることを確認します。

  • パソコンやノートパソコンで Kafka クライアントを実行する場合は、Managed Service for Apache Kafka クラスタにアクセスするためのプロキシとして使用する Compute Engine インスタンスを設定できます。詳細については、クライアント マシンを設定するをご覧ください。

認証エラー

このセクションでは、クライアント アプリケーションが Kafka クラスタに対して認証を行うときに発生する可能性のあるエラーを一覧表示します。

SASL 認証が失敗する

次の問題は、クライアントが SASL 認証を使用してクラスタに接続できない場合に発生します。

Exception in thread "main" java.util.concurrent.ExecutionException:
org.apache.kafka.common.errors.SaslAuthenticationException:
Authentication failed: Invalid username or password

この問題を解決するには、次の原因を確認します。

  • パスワードの形式が正しくなく、base64 でデコードしても有効なサービス アカウント キーの JSON BLOB または有効なアクセス トークンを表していない。

  • 認証プリンシパルに、クラスタに対する managedkafka.clusters.connect 権限がありません。

  • 指定されたユーザー名が、認証情報のプリンシパルと一致しません。

クライアントで 30 分ごとに頻繁に切断が発生する場合は、クライアントが定期的な再認証をサポートしていないことが原因である可能性があります。Managed Service for Apache Kafka ブローカーでは、connections.max.reauth.ms ブローカー プロパティによって、クライアントが 30 分ごとに再認証を行う必要があります。Kafka クライアント ライブラリのバージョンが 2.2.0 以降で、再認証をサポートしていることを確認します。

詳細については、SASL 認証を構成するをご覧ください。

次のステップ