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 de clústeres 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 se produce 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 necesarios para configurar CMEK.

El servicio no tiene permiso para recuperar la subred

El siguiente problema se produce cuando al agente de servicio de Managed Service para Apache Kafka le falta el rol necesario para configurar las herramientas de redes 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 de Kafka administrado. Para obtener más información, consulta Conecta un clúster entre proyectos.

Errores de red

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

El servicio no pudo configurar las herramientas de redes

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 superior de la red de VPC del consumidor.

  • Si el clúster de Managed Service para Apache Kafka y la red de VPC del consumidor están en proyectos diferentes, configura los permisos necesarios. Consulta Conecta un clúster entre proyectos.

  • Asegúrate de que ninguna restricción de la 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 herramientas de redes para Managed Service para Apache Kafka.

Las aplicaciones cliente no se pueden conectar

Si tus aplicaciones cliente no pueden conectarse al 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 que esté 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 usarla como proxy y acceder al clúster de Managed Service para Apache Kafka. Para obtener más información, consulta Configura 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 de 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 BLOB 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 el principal de la credencial.

Si un cliente experimenta desconexiones frecuentes cada 30 minutos, esto puede deberse a que el cliente no admite la autenticació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 a través de la propiedad de 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 de SASL.

Errores operativos

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

Errores de falta de disco

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

  • El rendimiento del cliente se degrada 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) caen por debajo del factor de replicación.

  • En los registros del clúster, se 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 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 escalar verticalmente el clúster para agregar agentes nuevos.

La compactación de registros combinada con un espacio de claves muy grande puede provocar errores de falta de 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 el uso del disco del agente aumenta con la cantidad de claves únicas.

Los clientes experimentan desconexiones temporales

Managed Service para Apache Kafka podría realizar actualizaciones que requieran reinicios progresivos en los agentes. Durante este proceso, las solicitudes a agentes individuales pueden fallar, pero estas fallas son transitorias. 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:

  • Pausas en el procesamiento mientras los líderes de partición y los coordinadores de grupos de consumidores conmutan por error a otros agentes.

  • Reequilibrio de los grupos de consumidores, lo que pausa temporalmente el consumo

  • Errores de conexión temporales o tiempos de espera agotados cuando se confirman los desplazamientos. Las bibliotecas cliente de uso común controlan estos errores automáticamente.

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

  • Un valor temporal de 1 en la métrica Particiones sin conexión (offline_partitions) mientras un agente está inactivo. Este valor corresponde a un tema de supervisión interno que tiene una sola réplica en el agente que se reinicia y es el comportamiento esperado. Un valor superior a 1 podría indicar un problema con los temas de datos o metadatos.

    La métrica Particiones de Under-MinISR (broker/under_min_isr_partitions) no se ve afectada por el tema de supervisión interna y se mantiene en 0 durante un reinicio progresivo si tus temas usan el factor de replicación predeterminado de 3 y min.insync.replicas de 2. Un valor mayor que 0 significa que no hay más de una réplica de una partición disponible, lo que podría indicar un problema.

Actualizar de forma manual 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.