Fehlerbehebung bei Kafka-Clustern

Auf dieser Seite erfahren Sie, wie Sie Probleme beim Erstellen oder Konfigurieren eines Managed Service for Apache Kafka-Clusters beheben.

Fehler bei der Erstellung von Kafka-Clustern

In diesem Abschnitt werden Fehler aufgeführt, die beim Erstellen eines Kafka-Clusters auftreten können.

Der Dienst hat keine Berechtigung für den Zugriff auf den Cloud KMS-Schlüssel.

Das folgende Problem tritt auf, wenn dem Dienst-Agent für Managed Service for Apache Kafka die erforderliche Berechtigung für den Zugriff auf den Cloud KMS-Schlüssel fehlt.

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

Um dieses Problem zu beheben, weisen Sie dem Dienstkonto die Rolle Cloud KMS CryptoKey Encrypter/Decrypter für den Cloud KMS-Schlüssel zu. Weitere Informationen finden Sie unter Erforderliche Rollen zum Konfigurieren von CMEK.

Der Dienst ist nicht berechtigt, das Subnetz abzurufen

Das folgende Problem tritt auf, wenn dem Dienst-Agent von Managed Service for Apache Kafka die erforderliche Rolle zum Konfigurieren des Netzwerks im VPC-Netzwerk fehlt, in dem die Kafka-Clients ausgeführt werden.

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}`

Um dieses Problem zu beheben, weisen Sie dem Dienstkonto die Rolle Managed Kafka Service Agent zu. Weitere Informationen finden Sie unter Cluster projektübergreifend verbinden.

Netzwerkfehler

In diesem Abschnitt werden Fehler aufgeführt, die bei der Konfiguration der Netzwerke für einen Kafka-Cluster auftreten können.

Der Dienst konnte das Netzwerk nicht einrichten

Das folgende Problem tritt auf, wenn Managed Service for Apache Kafka den Kafka-Cluster nicht mit Ihrem Virtual Private Cloud-Subnetz verbinden kann.

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

So beheben Sie das Problem:

  • Aktivieren Sie die Compute Engine API und die Cloud DNS API im übergeordneten Projekt des VPC-Netzwerk des Kunden.

  • Wenn sich der Managed Service for Apache Kafka-Cluster und das VPC-Netzwerk des Consumers in verschiedenen Projekten befinden, konfigurieren Sie die erforderlichen Berechtigungen. Weitere Informationen finden Sie unter Cluster projektübergreifend verbinden.

  • Achten Sie darauf, dass keine Einschränkungen für Organisationsrichtlinien verhindern, dass der Dienst die erforderlichen Ressourcen im Projekt des Consumer-VPC-Netzwerk erstellt.

Weitere Informationen finden Sie unter Netzwerk für Managed Service for Apache Kafka konfigurieren.

Clientanwendungen können keine Verbindung herstellen

Wenn Ihre Clientanwendungen keine Verbindung zu Ihrem Cluster herstellen können, prüfen Sie, ob eines der folgenden Probleme vorliegt:

  • Achten Sie darauf, dass Clients die richtige Bootstrap-Adresse verwenden.

  • Achten Sie darauf, dass die Kafka-Clients in einem VPC-Netzwerk ausgeführt werden, das für den Zugriff auf den Managed Service for Apache Kafka-Cluster konfiguriert ist.

  • Wenn Sie den Kafka-Client auf einem Computer oder Laptop ausführen, können Sie eine Compute Engine-Instanz als Proxy für den Zugriff auf den Managed Service for Apache Kafka-Cluster einrichten. Weitere Informationen finden Sie unter Clientcomputer einrichten.

Authentifizierungsfehler

In diesem Abschnitt werden Fehler aufgeführt, die auftreten können, wenn sich Clientanwendungen in Ihrem Kafka-Cluster authentifizieren.

SASL-Authentifizierung schlägt fehl

Das folgende Problem tritt auf, wenn ein Client keine Verbindung zum Cluster über die SASL-Authentifizierung herstellen kann.

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

Prüfen Sie, ob eine der folgenden Ursachen vorliegt, um das Problem zu beheben:

  • Das Passwort ist fehlerhaft und stellt nach der Base64-Decodierung keinen gültigen JSON-Blob für den Dienstkontoschlüssel oder ein gültiges Zugriffstoken dar.

  • Das authentifizierende Prinzipal hat nicht die Berechtigung managedkafka.clusters.connect für den Cluster.

  • Der angegebene Nutzername stimmt nicht mit dem Hauptkonto der Anmeldedaten überein.

Wenn ein Client alle 30 Minuten häufige Verbindungsunterbrechungen aufweist, kann dies daran liegen, dass der Client die regelmäßige Re-Authentifizierung nicht unterstützt. Für Managed Service for Apache Kafka-Broker müssen sich Clients alle 30 Minuten neu authentifizieren. Dies wird durch die Broker-Eigenschaft connections.max.reauth.ms erzwungen. Prüfen Sie, ob Ihre Kafka-Clientbibliothek Version 2.2.0 oder höher ist und die erneute Authentifizierung unterstützt.

Weitere Informationen finden Sie unter SASL-Authentifizierung konfigurieren.

Operative Fehler

In diesem Abschnitt werden Fehler aufgeführt, die während der Ausführung Ihrer Kafka-Arbeitslasten auftreten können.

Fehler aufgrund von Speicherplatzmangel

Wenn einem Broker der Speicherplatz ausgeht, können Broker keine aktiven Segmente übertragen oder neue Segmente schreiben. Dadurch können Clients keine Nachrichten erstellen oder nutzen. Zu den Symptomen gehören:

  • Die Clientleistung verschlechtert sich unerwartet. Bei Erstellern treten beispielsweise Zeitüberschreitungsfehler auf und bei Nutzern nimmt die Verzögerung stetig zu.

  • Die Laufwerksauslastung des Brokers ist sehr hoch (> 85%).

  • Die Anzahl der ISRs (In-Sync Replicas) sinkt unter den Replikationsfaktor.

  • In den Clusterlogs werden Fehler wie die folgenden angezeigt:

    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
    

Um Fehler aufgrund von zu wenig Speicherplatz zu vermeiden, sollten Sie die Clusterkapazität und die Partitionierung der Replikation überwachen. Weitere Informationen finden Sie unter Kafka-Cluster auf Zuverlässigkeit überwachen.

Wenn ein Broker keinen Speicherplatz mehr hat, erhöhen Sie die Größe des Brokerlaufwerks. Sie können auch den Cluster hochskalieren, um neue Broker hinzuzufügen.

Die Protokollkomprimierung in Kombination mit einem sehr großen Schlüsselbereich kann zu Fehlern aufgrund von zu wenig Speicherplatz führen. Wenn die Log-Kompaktierung aktiviert ist, speichert Kafka die letzte Nachricht für jeden Schlüssel im lokalen Speicher. Die Festplattennutzung des Brokers steigt also mit der Anzahl der eindeutigen Schlüssel.

Bei Clients treten vorübergehende Verbindungsunterbrechungen auf

Bei Managed Service for Apache Kafka werden möglicherweise Updates durchgeführt, für die ein rollierender Neustart von Brokern erforderlich ist. Während dieses Vorgangs können Anfragen an einzelne Broker fehlschlagen. Diese Fehler sind jedoch vorübergehend. Weitere Informationen finden Sie unter Upgrades und Patches.

Sie müssen während eines Broker-Neustarts nichts unternehmen. Möglicherweise stellen Sie jedoch Folgendes fest:

  • Pausen bei der Verarbeitung, während Partition Leader und Koordinatoren von Consumer-Gruppen auf andere Broker umgestellt werden.

  • Neugewichtung von Nutzergruppen, vorübergehendes Pausieren des Verbrauchs.

  • Vorübergehende Verbindungsfehler oder Zeitüberschreitungen beim Übertragen von Offsets. Häufig verwendete Clientbibliotheken verarbeiten diese Fehler automatisch.

  • Ein vorübergehender Anstieg der Anzahl der unterreplizierten Partitionen (broker/under_replicated_partitions) beim Neustart eines Brokers.

  • Ein Anstieg des Messwerts Under-MinISR Partitions (broker/under_min_isr_partitions). Dieser Anstieg entspricht wahrscheinlich einem internen Monitoring-Thema, das nicht repliziert wird. Das ist ein erwartetes Verhalten, solange die Anzahl für jeden Broker 1 ist. Ein Wert über 1 kann auf ein Problem mit Daten- oder Metadatenthemen hinweisen.

Wenn Sie bestimmte Clustereigenschaften wie die Anzahl der vCPUs und den Arbeitsspeicher manuell aktualisieren, kann dies ebenfalls zu einem Rolling Restart des Dienstes führen. Weitere Informationen finden Sie unter Managed Service for Apache Kafka-Cluster aktualisieren.

Nächste Schritte

Apache Kafka® ist eine eingetragene Marke der Apache Software Foundation oder ihrer verbundenen Unternehmen in den USA und/oder anderen Ländern.