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 dispone dell'autorizzazione per accedere alla chiave Cloud KMS

Il seguente problema si verifica quando il service agent di Managed Service per Apache Kafka non dispone dell'autorizzazione necessaria 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 dispone dell'autorizzazione per recuperare la subnet

Il seguente problema si verifica quando l'agente di servizio di Managed Service per Apache Kafka non dispone del 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 Connetti 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 del 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 principale 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 Connetti un cluster tra progetti.

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

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

Le applicazioni client non possono connettersi

Se le tue applicazioni client non riescono a connettersi al cluster, verifica 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 Configura una macchina client.

Errori di autenticazione

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

Autenticazione SASL non riuscita

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, verifica le seguenti cause:

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

  • L'entità di autenticazione non dispone dell'autorizzazione managedkafka.clusters.connect sul cluster.

  • Il nome utente fornito non corrisponde all'entità della credenziale.

Se un client si disconnette spesso ogni 30 minuti, il motivo potrebbe essere che non supporta la riautenticazione periodica. I broker di Managed Service per Apache Kafka richiedono ai client di autenticarsi nuovamente ogni 30 minuti, come applicato dalla proprietà del broker connections.max.reauth.ms. Verifica che la versione della libreria client Kafka sia 2.2.0 o successiva e che supporti la riautenticazione.

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

Errori operativi

Questa sezione elenca gli errori che potrebbero verificarsi durante l'esecuzione dei workload Kafka.

Errori di disco esaurito

Se un broker esaurisce lo spazio su disco, non può eseguire il roll dei segmenti attivi o scrivere nuovi segmenti, il che impedisce ai client di produrre o consumare messaggi. I sintomi includono:

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

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

  • I conteggi delle repliche sincronizzate (ISR) scendono 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 spazio su disco esaurito, monitora la capacità del cluster e la replica delle partizioni. Per saperne di più, consulta Monitora i cluster Kafka per verificarne l'affidabilità.

Se un broker esaurisce lo spazio su disco, aumenta le dimensioni del disco del broker. Valuta anche la possibilità di fare 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 spazio su disco esaurito. Quando la compattazione dei log è abilitata, Kafka archivia l'ultimo messaggio per ogni chiave nello spazio di archiviazione locale, pertanto l'utilizzo del disco del broker aumenta con il numero di chiavi univoche.

I client subiscono disconnessioni temporanee

Managed Service per Apache Kafka potrebbe eseguire aggiornamenti che richiedono riavvii continui 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 è richiesta alcuna azione da parte tua durante i riavvii del broker. Tuttavia, potresti osservare quanto segue:

  • Pause nell'elaborazione mentre i leader delle partizioni e i coordinatori dei gruppi di consumer eseguono il failover su altri broker.

  • Ribilanciamento dei gruppi di consumer, con sospensione temporanea del 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) sui broker rimanenti quando un broker viene riavviato.

  • Un valore temporaneo pari a 1 nella metrica Partizioni offline (offline_partitions) mentre un broker è inattivo. Questo valore corrisponde a un argomento di monitoraggio interno che ha una singola replica sul broker in fase di riavvio ed è un comportamento previsto. Un valore maggiore di 1 potrebbe indicare un problema con gli argomenti dei dati o dei metadati.

    La metrica Partizioni con ISR inferiore al minimo (broker/under_min_isr_partitions) non è interessata dall'argomento di monitoraggio interno e rimane su 0 durante un riavvio graduale se i tuoi argomenti utilizzano il fattore di replica predefinito di 3 e min.insync.replicas di 2. Un valore maggiore di 0 indica che più di una replica di una partizione non è disponibile, il che potrebbe indicare un problema.

Anche l'aggiornamento manuale di alcune proprietà del cluster, come il numero di vCPU e la memoria, può causare il riavvio graduale del servizio. Consulta Aggiorna un cluster Managed Service per Apache Kafka.

Passaggi successivi

Apache Kafka® è un marchio registrato di Apache Software Foundation o delle sue società affiliate negli Stati Uniti e/o in altri paesi.