Soluciona problemas de errores del clúster de Kafka

En esta página, se muestra cómo resolver problemas cuando creas o configuras un clúster de Managed Service para Apache Kafka.

Errores de creación del clúster de Kafka

En esta sección, se enumeran los errores que puedes encontrar cuando creas un clúster de Kafka.

El servicio no tiene permiso para acceder a la clave de Cloud KMS

El siguiente problema ocurre cuando al agente de servicio de Managed Service para Apache Kafka le falta el permiso necesario para acceder a la clave de 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.`

Para resolver este problema, otorga a la cuenta de servicio el rol de encriptador/desencriptador de CryptoKey de Cloud KMS en la clave de Cloud KMS. Para obtener más información, consulta los roles requeridos para configurar CMEK.

El servicio no tiene permiso para recuperar la subred

El siguiente problema se produce cuando el agente de servicio de Managed Service para Apache Kafka no tiene el rol requerido para configurar la red en la red de VPC en la que se ejecutan los clientes de Kafka.

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}`

Para resolver este problema, otorga a la cuenta de servicio el rol de Agente de servicio administrado de Kafka. Para obtener más información, consulta Cómo conectar un clúster entre proyectos.

Errores de red

En esta sección, se enumeran los errores que puedes encontrar cuando configuras la red para un clúster de Kafka.

El servicio no pudo configurar la red

El siguiente problema se produce cuando Managed Service para Apache Kafka no puede conectar el clúster de Kafka a tu subred de nube privada virtual.

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

Para resolver este problema, realiza los siguientes pasos:

  • Habilita las APIs de Compute Engine y Cloud DNS en el proyecto principal de la red de VPC del consumidor.

  • Si el clúster de Managed Service para Apache Kafka y la red de VPC del consumidor se encuentran en proyectos diferentes, configura los permisos necesarios. Consulta Cómo conectar un clúster en varios proyectos.

  • Asegúrate de que ninguna restricción de política de la organización impida que el servicio cree los recursos necesarios en el proyecto de la red de VPC del consumidor.

Para obtener más información, consulta Configura las redes para Managed Service para Apache Kafka.

Las aplicaciones cliente no se pueden conectar

Si tus aplicaciones cliente no pueden conectarse a tu clúster, verifica los siguientes problemas:

  • Asegúrate de que los clientes usen la dirección de arranque correcta.

  • Asegúrate de que los clientes de Kafka se ejecuten en una red de VPC configurada para acceder al clúster de Managed Service para Apache Kafka.

  • Si ejecutas el cliente de Kafka en una computadora o laptop, puedes configurar una instancia de Compute Engine para que se use como proxy y acceder al clúster de Managed Service para Apache Kafka. Para obtener más información, consulta Cómo configurar una máquina cliente.

Errores de autenticación

En esta sección, se enumeran los errores que puedes encontrar cuando las aplicaciones cliente se autentican en tu clúster de Kafka.

Falla la autenticación SASL

El siguiente problema se produce cuando un cliente no puede conectarse al clúster con la autenticación SASL.

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

Para resolver el problema, verifica las siguientes causas:

  • La contraseña tiene un formato incorrecto y no representa un objeto JSON de clave de cuenta de servicio válido cuando se decodifica en Base64, ni un token de acceso válido.

  • La principal de autenticación no tiene el permiso managedkafka.clusters.connect en el clúster.

  • El nombre de usuario proporcionado no coincide con la entidad principal de la credencial.

Si un cliente experimenta desconexiones frecuentes cada 30 minutos, esto puede deberse a que el cliente no admite la reautenticación periódica. Los agentes de Managed Service para Apache Kafka requieren que los clientes se vuelvan a autenticar cada 30 minutos, lo que se aplica con la propiedad del agente connections.max.reauth.ms. Verifica que la versión de tu biblioteca cliente de Kafka sea 2.2.0 o posterior, y que admita la reautenticación.

Para obtener más información, consulta Configura la autenticación SASL.

Errores operativos

En esta sección, se enumeran los errores que pueden ocurrir mientras se ejecutan tus cargas de trabajo de Kafka.

Errores por falta de espacio en el disco

Si un agente se queda sin espacio en el disco, no podrá completar los segmentos activos ni escribir segmentos nuevos, lo que impedirá que los clientes produzcan o consuman mensajes. Los síntomas incluyen los siguientes:

  • El rendimiento del cliente disminuye de forma inesperada. Por ejemplo, los productores experimentan errores de tiempo de espera y el retraso aumenta de forma constante en los consumidores.

  • El uso del disco del agente es muy alto (>85%).

  • Los recuentos de réplicas sincronizadas (ISR) disminuyen por debajo del factor de replicación.

  • Los registros del clúster muestran errores como los siguientes:

    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
    

Para evitar errores de falta de espacio en el disco, supervisa la capacidad del clúster y la replicación de particiones. Para obtener más información, consulta Supervisa la confiabilidad de los clústeres de Kafka.

Si un agente se queda sin espacio en el disco, aumenta el tamaño del disco del agente. También considera aumentar la capacidad del clúster para agregar nuevos intermediarios.

La compactación de registros combinada con un espacio de claves muy grande puede generar errores de falta de espacio en disco. Cuando se habilita la compactación de registros, Kafka almacena el mensaje más reciente para cada clave en el almacenamiento local, por lo que la utilización del disco del agente crece con la cantidad de claves únicas.

Los clientes experimentan desconexiones temporales

Es posible que Managed Service para Apache Kafka realice actualizaciones que requieran reinicios progresivos en los agentes. Durante este proceso, es posible que fallen las solicitudes a los agentes individuales, pero estos errores son transitorios. Para obtener más información, consulta Actualizaciones y parches.

No es necesario que realices ninguna acción durante los reinicios del agente. Sin embargo, es posible que observes lo siguiente:

  • Se producen pausas en el procesamiento mientras los líderes de partición y los coordinadores de grupos de consumidores conmutan por error a otros intermediarios.

  • Se reequilibran los grupos de consumidores y se pausa temporalmente el consumo.

  • Errores o tiempos de espera de conexión temporales al confirmar las compensaciones. Las bibliotecas cliente que se usan con frecuencia controlan estos errores automáticamente.

  • Un aumento temporal en el recuento de particiones con replicación insuficiente (broker/under_replicated_partitions) cuando se reinicia un agente.

  • Un aumento repentino en la métrica Under-MinISR Partitions (broker/under_min_isr_partitions). Es probable que este aumento repentino corresponda a un tema de supervisión interno que no se replica, y se espera que se comporte de esta manera siempre que el recuento sea 1 para cada agente. Un valor superior a 1 podría indicar un problema con los temas de datos o metadatos.

La actualización manual de ciertas propiedades del clúster, como el recuento de CPU virtuales y la memoria, también puede hacer que el servicio realice un reinicio progresivo. Consulta Actualiza un clúster de Managed Service para Apache Kafka.

¿Qué sigue?

Apache Kafka® es una marca registrada de The Apache Software Foundation o sus afiliados en Estados Unidos y otros países.