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 Clustererstellung

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

Dieses Problem tritt auf, wenn dem Dienst-Agent von 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.`

Weisen Sie dem Dienstkonto die Rolle Cloud KMS CryptoKey Verschlüsseler/Entschlüsseler für den Cloud KMS-Schlüssel zu, um das Problem zu beheben. Weitere Informationen finden Sie unter Erforderliche Rollen für die Konfiguration von CMEK.

Der Dienst hat keine Berechtigung zum Abrufen des Subnetzes

Dieses Problem tritt auf, wenn dem Dienst-Agent von Managed Service for Apache Kafka die erforderliche Rolle zum Konfigurieren der Netzwerkeinstellungen 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}`

Weisen Sie dem Dienstkonto die Rolle Managed Kafka Service Agent zu, um das Problem zu beheben. Weitere Informationen finden Sie unter Cluster projektübergreifend verbinden.

Netzwerkfehler

In diesem Abschnitt werden Fehler aufgeführt, die beim Konfigurieren der Netzwerkeinstellungen für einen Kafka-Cluster auftreten können.

Der Dienst konnte das Netzwerk nicht einrichten

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

Führen Sie die folgenden Schritte aus, um das Problem zu beheben:

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

  • Wenn sich der Managed Service for Apache Kafka-Cluster und das VPC-Netzwerk des Nutzers 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 der Organisationsrichtlinie verhindern, dass der Dienst die erforderlichen Ressourcen im Projekt des VPC-Netzwerk des Nutzers erstellt.

Weitere Informationen finden Sie unter Netzwerkeinstellungen 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 die folgenden Punkte:

  • Achten Sie darauf, dass die 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 bei Ihrem Kafka-Cluster authentifizieren.

SASL-Authentifizierung schlägt fehl

Dieses 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 die folgenden möglichen Ursachen, 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.

  • Der authentifizierende Principal hat nicht die Berechtigung managedkafka.clusters.connect für den Cluster.

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

Wenn bei einem Client alle 30 Minuten häufig Verbindungsabbrüche auftreten, liegt das möglicherweise daran, dass der Client die regelmäßige Neuauthentifizierung 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-Property connections.max.reauth.ms erzwungen. Prüfen Sie, ob Ihre Kafka-Clientbibliothek Version 2.2.0 oder höher hat und die Neuauthentifizierung unterstützt.

Weitere Informationen finden Sie unter SASL-Authentifizierung konfigurieren.

Operative Fehler

In diesem Abschnitt werden Fehler aufgeführt, die auftreten können, während Ihre Kafka-Arbeitslasten ausgeführt werden.

Fehler aufgrund von zu wenig Speicherplatz

Wenn ein Broker keinen Speicherplatz mehr hat, können Broker keine aktiven Segmente rotieren oder neue Segmente schreiben. Dadurch können Clients keine Nachrichten produzieren oder nutzen. Zu den Symptomen gehören:

  • Die Clientleistung sinkt unerwartet. Beispielsweise treten bei Produzenten Zeitüberschreitungsfehler auf und die Verzögerung bei Nutzern nimmt stetig zu.

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

  • Die Anzahl der synchronen Replikate (In-Sync Replicas, ISR) sinkt unter den Replikationsfaktor.

  • In den Clusterprotokollen 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, beobachten Sie die Clusterkapazität und die Replikation von Partitionen. Weitere Informationen finden Sie unter Kafka-Cluster auf Zuverlässigkeit überwachen.

Wenn ein Broker keinen Speicherplatz mehr hat, erhöhen Sie die Laufwerksgröße des Brokers. 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 Protokollkomprimierung aktiviert ist, speichert Kafka die letzte Nachricht für jeden Schlüssel im lokalen Speicher. Die Laufwerknutzung des Brokers steigt also mit der Anzahl der eindeutigen Schlüssel.

Bei Clients treten vorübergehende Verbindungsabbrüche auf

Managed Service for Apache Kafka führt möglicherweise Aktualisierungen durch, die rollierende Neustarts auf Brokern erfordern. 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.

Während des Neustarts von Brokern müssen Sie nichts unternehmen. Möglicherweise beobachten Sie jedoch Folgendes:

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

  • Neuausgleich von Consumer Groups, wodurch die Nutzung vorübergehend pausiert wird.

  • 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 nicht replizierten Partitionen (broker/under_replicated_partitions) wenn ein Broker neu gestartet wird.

  • 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 so lange zu erwarten, wie die Anzahl für jeden Broker 1 beträgt. 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 der Dienst auch einen rollierenden Neustart durchführen. Weitere Informationen finden Sie unter Managed Service for Apache Kafka-Cluster aktualisieren.

Nächste Schritte