Cette page vous explique comment résoudre les problèmes liés à la création ou à la configuration d'un cluster Managed Service pour Apache Kafka.
Erreurs de création de cluster Kafka
Cette section liste les erreurs que vous pouvez rencontrer lors de la création d'un cluster Kafka.
Le service n'est pas autorisé à accéder à la clé Cloud KMS.
Le problème suivant se produit lorsque l'agent de service Managed Service pour Apache Kafka ne dispose pas de l'autorisation requise pour accéder à la clé 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.`
Pour résoudre ce problème, attribuez le rôle Chiffreur/Déchiffreur de CryptoKeys Cloud KMS au compte de service sur la clé Cloud KMS. Pour en savoir plus, consultez la section Rôles requis pour configurer CMEK.
Le service n'est pas autorisé à récupérer le sous-réseau
Le problème suivant se produit lorsque l'agent de service Managed Service pour Apache Kafka ne dispose pas du rôle requis pour configurer la mise en réseau dans le réseau VPC dans lequel les clients Kafka s'exécutent.
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}`
Pour résoudre ce problème, accordez le rôle Agent de service Kafka géré au compte de service. Pour en savoir plus, consultez Connecter un cluster à plusieurs projets.
Erreurs Mise en réseau
Cette section liste les erreurs que vous pouvez rencontrer lors de la configuration de la mise en réseau d'un cluster Kafka.
Le service n'a pas réussi à configurer la mise en réseau
Le problème suivant se produit lorsque Managed Service pour Apache Kafka ne parvient pas à connecter le cluster Kafka à votre sous-réseau de cloud privé virtuel.
Managed Service for Apache Kafka failed to set up networking in VPC subnet.
Pour résoudre ce problème, procédez comme suit :
Activez les API Compute Engine et Cloud DNS dans le projet parent du réseau VPC consommateur.
Si le cluster Managed Service pour Apache Kafka et le réseau VPC du consommateur se trouvent dans des projets différents, configurez les autorisations requises. Consultez Connecter un cluster à plusieurs projets.
Assurez-vous qu'aucune contrainte de règle d'administration n'empêche le service de créer les ressources nécessaires dans le projet du réseau VPC du consommateur.
Pour en savoir plus, consultez Configurer la mise en réseau pour Managed Service pour Apache Kafka.
Les applications clientes ne peuvent pas se connecter
Si vos applications clientes ne parviennent pas à se connecter à votre cluster, vérifiez les problèmes suivants :
Assurez-vous que les clients utilisent la bonne adresse bootstrap.
Assurez-vous que les clients Kafka s'exécutent dans un réseau VPC configuré pour accéder au cluster Managed Service pour Apache Kafka.
Si vous exécutez le client Kafka sur un ordinateur ou un ordinateur portable, vous pouvez configurer une instance Compute Engine à utiliser comme proxy pour accéder au cluster Managed Service pour Apache Kafka. Pour en savoir plus, consultez Configurer une machine cliente.
Erreurs d'authentification
Cette section liste les erreurs que vous pouvez rencontrer lorsque des applications clientes s'authentifient auprès de votre cluster Kafka.
Échec de l'authentification SASL
Le problème suivant se produit lorsqu'un client ne parvient pas à se connecter au cluster à l'aide de l'authentification SASL.
Exception in thread "main" java.util.concurrent.ExecutionException:
org.apache.kafka.common.errors.SaslAuthenticationException:
Authentication failed: Invalid username or password
Pour résoudre le problème, vérifiez les points suivants :
Le mot de passe est mal formé et ne représente pas un blob JSON de clé de compte de service valide lorsqu'il est décodé en base64, ni un jeton d'accès valide.
Le principal d'authentification ne dispose pas de l'autorisation
managedkafka.clusters.connectsur le cluster.Le nom d'utilisateur fourni ne correspond pas au principal des identifiants.
Si un client est fréquemment déconnecté toutes les 30 minutes, cela peut être dû au fait qu'il ne prend pas en charge la réauthentification périodique.
Les agents Managed Service pour Apache Kafka exigent que les clients se réauthentifient toutes les 30 minutes. Cette exigence est appliquée par la propriété d'agent connections.max.reauth.ms.
Vérifiez que votre bibliothèque cliente Kafka est en version 2.2.0 ou ultérieure et qu'elle est compatible avec la réauthentification.
Pour en savoir plus, consultez Configurer l'authentification SASL.
Erreurs opérationnelles
Cette section liste les erreurs qui peuvent se produire lors de l'exécution de vos charges de travail Kafka.
Erreurs d'espace disque insuffisant
Si un courtier manque d'espace disque, il ne peut pas déployer de segments actifs ni écrire de nouveaux segments, ce qui empêche les clients de produire ou de consommer des messages. Voici quelques symptômes :
Les performances du client se dégradent de manière inattendue. Par exemple, les producteurs rencontrent des erreurs de délai d'attente et le décalage augmente régulièrement chez les consommateurs.
L'utilisation du disque du courtier est très élevée (> 85%).
Le nombre de réplicas synchronisés (ISR) est inférieur au facteur de réplication.
Les journaux de cluster affichent des erreurs semblables à celles-ci :
Error processing append operation on partition PARTITION_ID. org.apache.kafka.common.errors.NotEnoughReplicasException: The size of the current ISR Set(10) is insufficient to satisfy the min.isr requirement of 2 for partition PARTITION_ID
Pour éviter les erreurs de saturation du disque, surveillez la capacité du cluster et la réplication des partitions. Pour en savoir plus, consultez Surveiller la fiabilité des clusters Kafka.
Si un courtier manque d'espace disque, augmentez la taille du disque du courtier. Vous pouvez également faire évoluer le cluster pour ajouter des courtiers.
La compression des journaux combinée à un très grand espace de clés peut entraîner des erreurs de manque d'espace disque. Lorsque la compaction des journaux est activée, Kafka stocke le dernier message pour chaque clé dans le stockage local. L'utilisation du disque par le courtier augmente donc avec le nombre de clés uniques.
Les clients subissent des déconnexions temporaires
Managed Service pour Apache Kafka peut effectuer des mises à jour qui nécessitent des redémarrages progressifs des courtiers. Au cours de ce processus, les requêtes adressées à des courtiers individuels peuvent échouer, mais ces échecs sont temporaires. Pour en savoir plus, consultez Mises à niveau et correctifs.
Aucune action n'est requise de votre part lors des redémarrages du courtier. Toutefois, vous pouvez observer les éléments suivants :
Mises en pause du traitement lorsque les responsables de partition et les coordinateurs de groupe de consommateurs basculent vers d'autres courtiers.
Rééquilibrage des groupes de consommateurs, suspension temporaire de la consommation.
Erreurs de connexion temporaires ou délais avant expiration lors de l'envoi d'offsets. Les bibliothèques clientes courantes gèrent automatiquement ces erreurs.
Un pic temporaire du nombre de partitions sous-répliquées (
broker/under_replicated_partitions) lorsqu'un agent redémarre.Un pic dans la métrique Partitions avec un ISR inférieur au minimum (
broker/under_min_isr_partitions). Ce pic correspond probablement à un sujet de surveillance interne qui n'est pas répliqué. Il s'agit d'un comportement attendu tant que le nombre est de 1 pour chaque courtier. Une valeur supérieure à 1 peut indiquer un problème avec les thèmes de données ou de métadonnées.
La mise à jour manuelle de certaines propriétés du cluster, telles que le nombre de vCPU et la mémoire, peut également entraîner un redémarrage progressif du service. Consultez Mettre à jour un cluster Managed Service pour Apache Kafka.