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 de criação de cluster do Kafka

Nesta seção, listamos os erros que podem ser encontrados 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 o papel necessário 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 de Agente de serviço do Kafka gerenciado. Para mais informações, consulte Conectar um cluster entre projetos.

Erros de rede

Nesta seção, listamos os erros que podem ser encontrados 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 entre 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 cliente 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 inicialização 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 laptop, poderá configurar uma instância do Compute Engine para usar como proxy para acessar o cluster do Serviço Gerenciado para Apache Kafka. Para mais informações, consulte Configurar uma máquina cliente.

Erros de autenticação

Nesta seção, listamos os erros que podem ocorrer quando os 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á corrompida 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.

  • O 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, conforme determinado pela propriedade de 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 é compatível com a reautenticação.

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

Erros operacionais

Nesta seção, listamos os erros que podem ocorrer enquanto as cargas de trabalho do Kafka estão em execução.

Erros de falta de disco

Se um agente ficar sem espaço em disco, ele não poderá transferir 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 de forma constante nos consumidores.

  • O uso do disco do agente é muito alto (>85%).

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

  • Os registros do cluster mostram erros como os seguintes:

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

Se um agente ficar sem espaço em disco, aumente o tamanho do disco do agente. Considere também escalonar verticalmente o cluster para adicionar novos agentes.

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

Os clientes passam por desconexões temporárias

O Serviço Gerenciado para Apache Kafka pode realizar atualizações que exigem reinicializações graduais nos agentes. Durante esse processo, as solicitações para agentes 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 agente. No entanto, é possível observar o seguinte:

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

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

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

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

  • Um valor temporário de 1 na métrica Partições off-line (offline_partitions) enquanto um agente está inativo. Esse valor corresponde a um tópico de monitoramento interno que tem uma única réplica no agente de reinicialização e é o comportamento esperado. Um valor maior que 1 pode indicar um problema com tópicos de dados ou metadados.

    A métrica Partições Under-MinISR (broker/under_min_isr_partitions) não é afetada pelo tópico de monitoramento interno e permanece em 0 durante uma reinicialização gradual se os tópicos usarem o fator de replicação padrão de 3 e min.insync.replicas de 2. Um valor maior que 0 significa que mais de uma réplica de uma partição está indisponível, o que pode indicar um problema.

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 realize 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.