Resolver erros do cluster Kafka

Nesta página, mostramos como resolver problemas ao criar ou configurar um cluster do Serviço gerenciado para Apache Kafka.

Erros na criação de cluster do Kafka

Esta seção lista os erros que podem ocorrer ao criar um cluster do Kafka.

O serviço não tem permissão para acessar a chave do Cloud KMS

O problema a seguir ocorre quando o agente de serviço do Serviço Gerenciado para Apache Kafka não tem a permissão necessária para acessar a chave do 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 esse problema, conceda à conta de serviço o papel de Criptografador/descriptografador de CryptoKey do Cloud KMS na chave do Cloud KMS. Para mais informações, consulte papéis necessários para configurar a CMEK.

O serviço não tem permissão para recuperar a sub-rede

O problema a seguir ocorre quando o agente de serviço do Serviço Gerenciado para Apache Kafka não tem a função necessária para configurar a rede na rede VPC em que os clientes do Kafka são executados.

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 esse problema, conceda à conta de serviço o papel Agente de serviço do Kafka gerenciado. Para mais informações, consulte Conectar um cluster entre projetos.

Erros de rede

Esta seção lista os erros que podem ocorrer ao configurar a rede para um cluster do Kafka.

O serviço não conseguiu configurar a rede

O problema a seguir ocorre quando o Serviço gerenciado para Apache Kafka não consegue conectar o cluster do Kafka à sub-rede da nuvem privada virtual.

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

Para resolver esse problema, siga estas etapas:

  • Ative as APIs Compute Engine e Cloud DNS no projeto pai da rede VPC do consumidor.

  • Se o cluster do Serviço Gerenciado para Apache Kafka e a rede VPC do consumidor estiverem em projetos diferentes, configure as permissões necessárias. Consulte Conectar um cluster em vários projetos.

  • Verifique se nenhuma restrição de política da organização impede que o serviço crie os recursos necessários no projeto da rede VPC do consumidor.

Para mais informações, consulte Configurar a rede para o Serviço Gerenciado para Apache Kafka.

Os aplicativos clientes não conseguem se conectar

Se os aplicativos cliente não conseguirem se conectar ao cluster, verifique os seguintes problemas:

  • Verifique se os clientes estão usando o endereço de bootstrap correto.

  • Verifique se os clientes do Kafka são executados em uma rede VPC configurada para acessar o cluster do Serviço Gerenciado para Apache Kafka.

  • Se você executar o cliente Kafka em um computador ou notebook, poderá configurar uma instância do Compute Engine para usar como um proxy de acesso ao cluster do serviço gerenciado para Apache Kafka. Para mais informações, consulte Configurar uma máquina cliente.

Erros de autenticação

Esta seção lista erros que podem ocorrer quando aplicativos cliente se autenticam no cluster do Kafka.

Falha na autenticação SASL

O problema a seguir ocorre quando um cliente não consegue se conectar ao cluster usando a autenticação SASL.

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

Para resolver o problema, verifique as seguintes causas:

  • A senha está malformada e não representa um blob JSON de chave de conta de serviço válido quando decodificado em base64 ou um token de acesso válido.

  • A principal de autenticação não tem a permissão managedkafka.clusters.connect no cluster.

  • O nome de usuário fornecido não corresponde ao principal da credencial.

Se um cliente tiver desconexões frequentes a cada 30 minutos, isso pode ser porque ele não é compatível com a reautenticação periódica. Os agentes do Serviço Gerenciado para Apache Kafka exigem que os clientes se autentiquem novamente a cada 30 minutos, o que é imposto pela propriedade do agente connections.max.reauth.ms. Verifique se a versão da biblioteca de cliente do Kafka é 2.2.0 ou mais recente e se ela oferece suporte à reautenticação.

Para mais informações, consulte Configurar a autenticação SASL.

Erros operacionais

Esta seção lista os erros que podem ocorrer enquanto suas cargas de trabalho do Kafka estão em execução.

Erros de falta de espaço em disco

Se um broker ficar sem espaço em disco, não será possível rolar segmentos ativos nem gravar novos segmentos, o que impede que os clientes produzam ou consumam mensagens. Os sintomas incluem:

  • A performance do cliente diminui inesperadamente. Por exemplo, os produtores têm erros de tempo limite, e o atraso aumenta constantemente nos consumidores.

  • O uso do disco do broker está muito alto (>85%).

  • As contagens de réplicas sincronizadas (ISR, na sigla em inglês) ficam abaixo do fator de replicação.

  • Os registros do cluster mostram erros como estes:

    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 erros de falta de espaço em disco, monitore a capacidade do cluster e a replicação de partição. Para mais informações, consulte Monitorar a confiabilidade dos clusters do Kafka.

Se um broker ficar sem espaço em disco, aumente o tamanho do disco do broker. Considere também aumentar a escala do cluster para adicionar novos brokers.

A compactação de registros combinada com um espaço de chaves muito grande pode resultar em erros de falta de disco. Quando a compactação de registros é ativada, o Kafka armazena a mensagem mais recente de cada chave no armazenamento local. Assim, a utilização do disco do agente aumenta com o número de chaves exclusivas.

Os clientes têm desconexões temporárias

O Serviço Gerenciado para Apache Kafka pode realizar atualizações que exigem reinicializações gradativas em agentes. Durante esse processo, as solicitações para brokers individuais podem falhar, mas essas falhas são temporárias. Para mais informações, consulte Upgrades e patches.

Não é necessário fazer nada durante as reinicializações do broker. No entanto, você pode observar o seguinte:

  • Pausas no processamento enquanto os líderes de partição e os coordenadores do grupo de consumidores fazem failover para outros brokers.

  • Rebalanceamento de grupos de consumidores, pausando temporariamente o consumo.

  • Erros ou tempos limite de conexão temporários ao confirmar os deslocamentos. As bibliotecas de cliente usadas com frequência processam esses erros automaticamente.

  • Um pico temporário na contagem de partições sub-replicadas (broker/under_replicated_partitions) quando um agente é reiniciado.

  • Um pico na métrica Partições abaixo do MinISR (broker/under_min_isr_partitions). Esse pico provavelmente corresponde a um tópico de monitoramento interno que não é replicado e é um comportamento esperado enquanto a contagem for 1 para cada broker. Um valor maior que 1 pode indicar um problema com tópicos de dados ou metadados.

A atualização manual de determinadas propriedades do cluster, como a contagem de vCPUs e a memória, também pode fazer com que o serviço execute uma reinicialização gradual. Consulte Atualizar um cluster do Serviço Gerenciado para Apache Kafka.

A seguir

Apache Kafka® é uma marca registrada da The Apache Software Foundation ou afiliadas nos Estados Unidos e/ou em outros países.