Risolvere gli errori del cluster Kafka

Questa pagina mostra come risolvere i problemi durante la creazione o la configurazione di un cluster Managed Service per Apache Kafka.

Errori di creazione del cluster Kafka

Questa sezione elenca gli errori che potresti riscontrare durante la creazione di un cluster Kafka.

Il servizio non ha l'autorizzazione per accedere alla chiave Cloud KMS

Il seguente problema si verifica quando all'agente di servizio Managed Service per Apache Kafka manca l'autorizzazione richiesta per accedere alla chiave 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.`

Per risolvere il problema, concedi al account di servizio il ruolo Cloud KMS CryptoKey Encrypter/Decrypter sulla chiave Cloud KMS. Per saperne di più, consulta Ruoli richiesti per la configurazione di CMEK.

Il servizio non ha l'autorizzazione per recuperare la subnet

Il seguente problema si verifica quando all'agente di servizio Managed Service per Apache Kafka manca il ruolo richiesto per configurare il networking nella rete VPC in cui vengono eseguiti i client 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}`

Per risolvere il problema, concedi al account di servizio il ruolo Managed Kafka Service Agent. Per saperne di più, consulta Connettere un cluster tra progetti.

Errori di networking

Questa sezione elenca gli errori che potresti riscontrare durante la configurazione del networking per un cluster Kafka.

Il servizio non è riuscito a configurare il networking

Il seguente problema si verifica se Managed Service per Apache Kafka non riesce a connettere il cluster Kafka alla subnet Virtual Private Cloud.

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

Per risolvere il problema, segui questi passaggi:

  • Abilita le API Compute Engine e Cloud DNS nel progetto padre della rete VPC consumer.

  • Se il cluster Managed Service per Apache Kafka e la rete VPC consumer si trovano in progetti diversi, configura le autorizzazioni richieste. Consulta Connettere un cluster tra progetti.

  • Assicurati che nessun vincolo dei criteri dell'organizzazione impedisca al servizio di creare le risorse necessarie nel progetto della rete VPC consumer.

Per saperne di più, consulta Configurare il networking per Managed Service per Apache Kafka.

Le applicazioni client non riescono a connettersi

Se le applicazioni client non riescono a connettersi al cluster, controlla i seguenti problemi:

  • Assicurati che i client utilizzino l'indirizzo di bootstrap corretto .

  • Assicurati che i client Kafka vengano eseguiti in una rete VPC configurata per accedere al cluster Managed Service per Apache Kafka.

  • Se esegui il client Kafka su un computer o un laptop, puoi configurare un'istanza Compute Engine da utilizzare come proxy per accedere al cluster Managed Service per Apache Kafka. Per saperne di più, consulta Configurare una macchina client.

Errori di autenticazione

Questa sezione elenca gli errori che potresti riscontrare quando le applicazioni client eseguono l'autenticazione al cluster Kafka.

L'autenticazione SASL non riesce

Il seguente problema si verifica quando un client non riesce a connettersi al cluster utilizzando l'autenticazione SASL.

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

Per risolvere il problema, controlla le seguenti cause:

  • La password non è valida e non rappresenta un blob JSON della chiave del account di servizio valido quando viene decodificato in base64 o un token di accesso valido.

  • Il principale di autenticazione non dispone dell'autorizzazione managedkafka.clusters.connect sul cluster.

  • Il nome utente fornito non corrisponde al principale delle credenziali.

Se un client riscontra disconnessioni frequenti ogni 30 minuti, il motivo potrebbe essere che il client non supporta la riautenticazione periodica. I broker Managed Service per Apache Kafka richiedono ai client di eseguire la riautenticazione ogni 30 minuti, applicata dalla proprietà del broker connections.max.reauth.ms. Verifica che la versione della libreria client Kafka sia 2.2.0 o successive e che supporti la riautenticazione.

Per saperne di più, consulta Configurare l'autenticazione SASL.

Errori operativi

Questa sezione elenca gli errori che potrebbero verificarsi durante l'esecuzione dei carichi di lavoro Kafka.

Errori di esaurimento dello spazio su disco

Se un broker esaurisce lo spazio su disco, i broker non possono eseguire il roll degli segmenti attivi o scrivere nuovi segmenti, impedendo ai client di produrre o consumare messaggi. I sintomi includono i seguenti:

  • Le prestazioni del client peggiorano in modo imprevisto. Ad esempio, i produttori riscontrano errori di timeout e il ritardo aumenta costantemente nei consumer.

  • L'utilizzo del disco del broker è molto elevato (>85%).

  • Il numero di repliche sincronizzate (ISR) scende al di sotto del fattore di replica.

  • I log del cluster mostrano errori simili ai seguenti:

    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
    

Per evitare errori di esaurimento dello spazio su disco, monitora la capacità del cluster e la replica delle partizioni. Per saperne di più, consulta Monitorare l'affidabilità dei cluster Kafka.

Se un broker esaurisce lo spazio su disco, aumenta le dimensioni del disco del broker. Valuta anche la possibilità di eseguire lo scale up del cluster per aggiungere nuovi broker.

La compattazione dei log combinata con uno spazio delle chiavi molto grande può causare errori di esaurimento dello spazio su disco. Quando la compattazione dei log è abilitata, Kafka archivia l'ultimo messaggio per ogni chiave nello spazio di archiviazione locale, quindi l'utilizzo del disco del broker aumenta con il numero di chiavi univoche.

I client riscontrano disconnessioni temporanee

Managed Service per Apache Kafka potrebbe eseguire aggiornamenti che richiedono riavvii in sequenza sui broker. Durante questo processo, le richieste ai singoli broker potrebbero non andare a buon fine, ma questi errori sono temporanei. Per saperne di più, consulta Upgrade e patch.

Non devi intraprendere alcuna azione durante i riavvii dei broker. Tuttavia, potresti osservare quanto segue:

  • Metti in pausa l'elaborazione mentre i leader delle partizioni e i coordinatori dei gruppi di consumer eseguono il failover su altri broker.

  • Ribilanciamento dei gruppi di consumer, mettendo temporaneamente in pausa il consumo.

  • Errori di connessione temporanei o timeout durante il commit degli offset. Le librerie client di uso comune gestiscono automaticamente questi errori.

  • Un picco temporaneo nel conteggio delle partizioni con replica insufficiente (broker/under_replicated_partitions) quando un broker viene riavviato.

  • Un picco nella metrica Partizioni con replica insufficiente (broker/under_min_isr_partitions). Questo picco corrisponde probabilmente a un argomento di monitoraggio interno che non viene replicato ed è un comportamento previsto purché il conteggio sia 1 per ogni broker. Un valore maggiore di 1 potrebbe indicare un problema con gli argomenti di dati o metadati.

L'aggiornamento manuale di alcune proprietà del cluster, come il numero di vCPU e la memoria, può anche causare l'esecuzione di un riavvio in sequenza da parte del servizio. Consulta Aggiornare un cluster Managed Service per Apache Kafka.

Passaggi successivi