Auf dieser Seite wird beschrieben, 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, auf den Cloud KMS-Schlüssel zuzugreifen.
Das folgende Problem tritt auf, wenn dem Managed Service for Apache Kafka-Dienst-Agent 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 Encrypter/Decrypter für den Cloud KMS-Schlüssel zu, um dieses Problem zu beheben. 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}`
Weisen Sie dem Dienstkonto die Rolle Managed Kafka-Dienst-Agent zu, um dieses Problem zu beheben. Weitere Informationen finden Sie unter Cluster projektübergreifend verbinden.
Netzwerkfehler
In diesem Abschnitt werden Fehler aufgeführt, die beim Konfigurieren des Netzwerks 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 Nutzer-VPC-Netzwerk.
Wenn sich der Managed Service for Apache Kafka-Cluster und das Nutzer-VPC-Netzwerk in verschiedenen Projekten befinden, konfigurieren Sie die erforderlichen Berechtigungen. Siehe Cluster projektübergreifend verbinden.
Achten Sie darauf, dass keine Einschränkungen für Organisationsrichtlinien verhindern, dass der Dienst die erforderlichen Ressourcen im Projekt des Nutzer-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 die folgenden Probleme vorliegen:
Achten Sie darauf, dass Clients die richtige Bootstrap-Adresse verwenden.
Die Kafka-Clients müssen 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
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 Folgendes, um das Problem zu beheben:
Das Passwort ist fehlerhaft und stellt nach der Base64-Decodierung kein gültiges JSON-Blob für den Dienstkontoschlüssel oder kein gültiges Zugriffstoken dar.
Das authentifizierende Hauptkonto hat nicht die Berechtigung
managedkafka.clusters.connectfür den Cluster.Der angegebene Nutzername stimmt nicht mit dem Hauptkonto des Berechtigungsnachweises überein.
Wenn ein Client alle 30 Minuten die Verbindung verliert, kann das daran liegen, dass er die regelmäßige erneute Authentifizierung nicht unterstützt.
Managed Service for Apache Kafka-Broker erfordern, dass sich Clients alle 30 Minuten neu authentifizieren. Dies wird durch die Broker-Property connections.max.reauth.ms erzwungen.
Prüfen Sie, ob die Version Ihrer Kafka-Clientbibliothek 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 beim Ausführen Ihrer Kafka-Arbeitslasten auftreten können.
Fehler aufgrund von unzureichendem 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 erstellen oder nutzen. Die Symptome sind folgende:
Die Clientleistung nimmt unerwartet ab. Beispielsweise treten bei Erstellern Zeitüberschreitungsfehler auf und die Verzögerung bei Nutzern nimmt stetig zu.
Die Laufwerksauslastung des Brokers ist sehr hoch (> 85 %).
Die Anzahl der synchronisierten Replikate (ISR) fällt 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
Überwachen Sie die Clusterkapazität und die Partitionsreplikation, um Fehler aufgrund von unzureichendem Speicherplatz zu vermeiden. Weitere Informationen finden Sie unter Kafka-Cluster auf Zuverlässigkeit überwachen.
Wenn ein Broker keinen Speicherplatz mehr hat, erhöhen Sie die Broker-Laufwerkgröße. 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 unzureichendem Speicherplatz führen. Wenn die Logkomprimierung aktiviert ist, speichert Kafka die neueste Nachricht für jeden Schlüssel im lokalen Speicher. Die Laufwerksauslastung des Brokers steigt also mit der Anzahl der eindeutigen Schlüssel.
Clients werden vorübergehend getrennt
Managed Service for Apache Kafka führt möglicherweise Updates 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.
Sie müssen während des Neustarts des Brokers nichts unternehmen. Möglicherweise stellen Sie jedoch Folgendes fest:
Pausen bei der Verarbeitung, während Partitionsleiter und Koordinatoren von Nutzergruppen ein Failover auf andere Broker durchführen.
Neuausrichtung von Nutzergruppen, vorübergehendes Pausieren des Verbrauchs.
Vorübergehende Verbindungsfehler oder Zeitüberschreitungen beim Übernehmen von Offsets. Häufig verwendete Clientbibliotheken verarbeiten diese Fehler automatisch.
Ein vorübergehender Anstieg der Anzahl der unterreplizierten Partitionen (
broker/under_replicated_partitions) auf den verbleibenden Brokern, wenn ein Broker neu gestartet wird.Ein temporärer Wert von 1 im Messwert Offline-Partitionen (
offline_partitions), während ein Broker ausgefallen ist. Dieser Wert entspricht einem internen Monitoring-Thema, das ein einzelnes Replikat auf dem neu startenden Broker hat. Dies ist das erwartete Verhalten. Ein Wert größer als 1 kann auf ein Problem mit Daten- oder Metadatenthemen hinweisen.Der Messwert Under-MinISR Partitions (
broker/under_min_isr_partitions) ist vom internen Monitoring-Thema nicht betroffen und bleibt während eines rollierenden Neustarts bei 0, wenn Ihre Themen den Standardreplikationsfaktor 3 undmin.insync.replicasvon 2 verwenden. Ein Wert größer als 0 bedeutet, dass mehr als ein Replikat einer Partition nicht verfügbar ist, was auf ein Problem hindeuten kann.
Wenn Sie bestimmte Clusterattribute wie die Anzahl der vCPUs und den Arbeitsspeicher manuell aktualisieren, kann dies auch dazu führen, dass der Dienst einen rollierenden Neustart durchführt. Weitere Informationen finden Sie unter Managed Service for Apache Kafka-Cluster aktualisieren.