Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Problembehandlung bei Amazon MSK Replicator
Die folgenden Informationen können Ihnen bei der Behebung von Problemen mit MSK Replicator helfen. Problembehandlung bei Ihrem Amazon MSK-ClusterWeitere Amazon MSK-Funktionen finden Sie unter. Sie können Ihr Problem auch im AWS re:Post
Der Status des Replikators wechselt von CREATING zu FAILED
Häufige Ursachen für Fehler bei der Erstellung des MSK-Replikators:
Stellen Sie sicher, dass die Sicherheitsgruppen, die Sie für den Zielcluster angegeben haben, über Regeln für ausgehenden Datenverkehr zu den Sicherheitsgruppen Ihres Zielclusters verfügen und dass die Sicherheitsgruppen Ihres Zielclusters über Regeln für eingehenden Datenverkehr von den Replicator-Sicherheitsgruppen verfügen.
Stellen Sie für die regionsübergreifende Replikation sicher, dass in Ihrem Quellcluster Multi-VPC-Konnektivität für die IAM-Zugriffskontrolle aktiviert ist und dass die Clusterrichtlinie auf dem Quellcluster eingerichtet ist.
Stellen Sie sicher, dass die bei der Erstellung angegebene IAM-Rolle über die erforderlichen Lese- und Schreibberechtigungen für Ihre Quell- und Zielcluster verfügt, einschließlich der Berechtigungen zum Schreiben in Themen.
Stellen Sie sicher, dass ACLs Ihr Netzwerk die Verbindung zwischen dem MSK Replicator und Ihren Clustern nicht blockiert.
Es ist möglich, dass Quell- oder Zielcluster nicht vollständig verfügbar sind, als der MSK Replicator versucht hat, eine Verbindung herzustellen. Dies kann auf eine übermäßige Last, Festplattennutzung oder CPU-Auslastung zurückzuführen sein. Beheben Sie das Problem mit den Brokern und versuchen Sie erneut, den Replikator zu erstellen.
Nachdem Sie die oben genannten Validierungen durchgeführt haben, erstellen Sie den MSK-Replikator erneut.
Replicator scheint im Status CREATING festzustecken
Die Erstellung des MSK-Replikators kann bis zu 30 Minuten dauern. Warten Sie 30 Minuten und überprüfen Sie den Status des Replikators erneut.
Replicator repliziert keine Daten oder repliziert nur Teildaten
Stellen Sie anhand der
AuthErrorMetrik in Amazon CloudWatch sicher, dass Ihr Replicator keine Authentifizierungsfehler hat. Wenn diese Metrik über 0 liegt, überprüfen Sie die IAM-Rollenrichtlinie und stellen Sie sicher, dass für die Cluster-Berechtigungen keine Ablehnungsberechtigungen festgelegt sind.Stellen Sie sicher, dass bei Ihren Quell- und Zielclustern keine Probleme auftreten (zu viele Verbindungen, Festplatte mit voller Kapazität oder hohe CPU-Auslastung).
Stellen Sie anhand der
KafkaClusterPingSuccessCountMetrik sicher, dass Ihre Cluster erreichbar sind. Wenn diese Metrik 0 ist oder keinen Datenpunkt hat, überprüfen Sie die Netzwerk- und IAM-Rollenberechtigungen.Stellen Sie anhand der Metrik sicher, dass Ihr Replicator nicht ausfällt.
ReplicatorFailureWenn der Wert über 0 liegt, überprüfen Sie die IAM-Rolle auf Berechtigungen auf Themenebene.Vergewissern Sie sich, dass der reguläre Ausdruck in der Zulassungsliste mit den Namen der Themen übereinstimmt, die Sie replizieren möchten, und dass Themen nicht von der Sperrliste ausgeschlossen werden.
Es kann bis zu 30 Sekunden dauern, bis der Replicator neue Themen erkennt und erstellt. Nachrichten, die vor der Erstellung des Themas auf dem Zielcluster erstellt wurden, werden nicht repliziert, wenn die Startposition die neueste ist (Standard).
Nachrichten-Offsets im Zielcluster unterscheiden sich von denen im Quellcluster
MSK Replicator verarbeitet Nachrichten aus dem Quellcluster und sendet sie an den Zielcluster, was zu unterschiedlichen Offsets führen kann. Wenn Sie die Offset-Synchronisierung für Verbrauchergruppen aktiviert haben, übersetzt MSK Replicator die Offsets automatisch, sodass Ihre Benutzer nach einem Failover die Verarbeitung dort fortsetzen können, wo sie aufgehört haben.
Replicator synchronisiert keine Offsets für Nutzergruppen
Stellen Sie sicher, dass die Datenreplikation wie erwartet funktioniert.
Stellen Sie sicher, dass der reguläre Ausdruck in der Zulassungsliste den Nutzergruppen entspricht, die Sie replizieren möchten.
Stellen Sie sicher, dass MSK Replicator das Thema auf dem Zielcluster erstellt hat. Wenn Ihre Nutzungsgruppe auf dem Quellcluster nur Nachrichten verarbeitet hat, die nicht repliziert wurden, wird die Nutzungsgruppe nicht auf den Zielcluster repliziert. Sobald Ihre Nutzergruppe beginnt, neu replizierte Nachrichten zu lesen, repliziert MSK Replicator die Nutzergruppe automatisch.
Anmerkung
MSK Replicator optimiert die Offset-Synchronisierung von Nutzergruppen für Verbraucher, die fast am Ende der Themenpartition lesen. Wenn Ihre Nutzergruppen im Quell-Cluster hinterherhinken, stellen Sie möglicherweise eine höhere Verzögerung auf dem Ziel-Cluster fest. Wenn Ihre Kunden aufholen, reduziert MSK Replicator die Verzögerung automatisch.
Die Replikationslatenz ist hoch oder nimmt weiter zu
Stellen Sie sicher, dass Sie über die richtige Anzahl von Partitionen verfügen. Die folgende Tabelle zeigt die empfohlene Mindestanzahl von Partitionen für den gewünschten Durchsatz.
Durchsatz und empfohlene Mindestanzahl von Partitionen Durchsatz (MB/s) Minimale Anzahl erforderlicher Partitionen 50 167 100 334 250 833 500 166 1000 3333 Stellen Sie sicher, dass Ihre Cluster über genügend Lese- und Schreibkapazität verfügen. MSK-Replikator fungiert als Verbraucher für Ihren Quell-Cluster (Ausgang) und als Produzent für Ihren Ziel-Cluster (Eingang). Stellen Sie Clusterkapazität bereit, um neben anderem Datenverkehr auch Replikationsverkehr zu unterstützen.
Die Replikationslatenz variiert je nach Entfernung des Regionspaars.
Stellen Sie anhand der Metrik sicher, dass Ihr Replicator nicht gedrosselt wird.
ThrottleTimeWenn der Wert über 0 liegt, passen Sie die Kafka-Kontingente an. Siehe Verwaltung des Durchsatzes mit Kafka-Kontingenten.Im AWS Service Health Dashboard finden Sie Informationen
zu MSK-Serviceereignissen in Ihrer Region.
Fehlerbehebung mithilfe der Metrik ReplicatorFailure
Die ReplicatorFailure Metrik hilft Ihnen bei der Überwachung und Erkennung von Replikationsproblemen. Ein Wert ungleich Null weist in der Regel auf einen Replikationsfehler hin, der auf Größenbeschränkungen für Nachrichten, Verletzungen des Zeitstempelbereichs oder Probleme mit der Stapelgröße von Datensätzen zurückzuführen ist. Wenn Sie die Protokollzustellung für Ihren Replikator konfiguriert haben, können Sie die zugestellten Protokollnachrichten verwenden, um den spezifischen Fehler zu identifizieren. Weitere Details finden Sie unter MSK Replicator-Protokolle. Wenn die Protokollzustellung nicht konfiguriert ist, gehen Sie wie folgt vor, um das Statusthema des Replikators nach Fehlermeldungen abzufragen.
Wenn die ReplicatorFailure Metrik einen Wert ungleich Null meldet, gehen Sie zur Fehlerbehebung wie folgt vor:
Konfigurieren Sie einen Client, der eine Verbindung zum Ziel-MSK-Cluster herstellen kann und für den Apache Kafka CLI-Tools eingerichtet sind. Siehe Stellen Sie eine Connect zu einem von Amazon MSK bereitgestellten Cluster her.
Die Amazon MSK-Konsole zu https://console.aws.amazon.com/msk/Hause öffnen? region=us-east-1#/home/
. Exportieren Sie den MSK Replicator ARN und die Broker-Endpunkte:
export TARGET_CLUSTER_SERVER_STRING=<BootstrapServerString> export REPLICATOR_ARN=<ReplicatorARN> export CONSUMER_CONFIG_FILE=<ConsumerConfigFile>Speichern Sie das folgende Skript in Ihrem
<path-to-your-kafka-installation>/binVerzeichnis unter.query-replicator-failure-message.sh#!/bin/bash # Script: Query MSK Replicator Failure Message # Description: This script queries exceptions from AWS MSK Replicator status topics # It takes a replicator ARN and bootstrap server as input and searches for replicator exceptions # in the replicator's status topic, formatting and displaying them in a readable manner # # Required Arguments: # --replicator-arn: The ARN of the AWS MSK Replicator # --bootstrap-server: The Kafka bootstrap server to connect to # --consumer.config: Consumer config properties file # Usage Example: # ./query-replicator-failure-message.sh --replicator-arn <replicator-arn> --bootstrap-server <bootstrap-server> --consumer.config <consumer.config> print_usage() { echo "USAGE: $0 ./query-replicator-failure-message.sh --replicator-arn <replicator-arn> --bootstrap-server <bootstrap-server> --consumer.config <consumer.config>" echo "--replicator-arn <String: MSK Replicator ARN> REQUIRED: The ARN of AWS MSK Replicator." echo "--bootstrap-server <String: server to connect to> REQUIRED: The Kafka server to connect to." echo "--consumer.config <String: config file> REQUIRED: Consumer config properties file." exit 1 } # Initialize variables replicator_arn="" bootstrap_server="" consumer_config="" # Parse arguments while [[ $# -gt 0 ]]; do case "$1" in --replicator-arn) if [ -z "$2" ]; then echo "Error: --replicator-arn requires an argument." print_usage fi replicator_arn="$2"; shift 2 ;; --bootstrap-server) if [ -z "$2" ]; then echo "Error: --bootstrap-server requires an argument." print_usage fi bootstrap_server="$2"; shift 2 ;; --consumer.config) if [ -z "$2" ]; then echo "Error: --consumer.config requires an argument." print_usage fi consumer_config="$2"; shift 2 ;; *) echo "Unknown option: $1"; print_usage ;; esac done # Check for required arguments if [ -z "$replicator_arn" ] || [ -z "$bootstrap_server" ] || [ -z "$consumer_config" ]; then echo "Error: --replicator-arn, --bootstrap-server, and --consumer.config are required." print_usage fi # Extract replicator name and suffix from ARN replicator_arn_suffix=$(echo "$replicator_arn" | awk -F'/' '{print $NF}') replicator_name=$(echo "$replicator_arn" | awk -F'/' '{print $(NF-1)}') echo "Replicator name: $replicator_name" # List topics and find the status topic topics=$(./kafka-topics.sh --command-config client.properties --list --bootstrap-server "$bootstrap_server") status_topic_name="__amazon_msk_replicator_status_${replicator_name}_${replicator_arn_suffix}" # Check if the status topic exists if echo "$topics" | grep -Fq "$status_topic_name"; then echo "Found replicator status topic: '$status_topic_name'" ./kafka-console-consumer.sh --bootstrap-server "$bootstrap_server" --consumer.config "$consumer_config" --topic "$status_topic_name" --from-beginning | stdbuf -oL grep "Exception" | stdbuf -oL sed -n 's/.*Exception:\(.*\) Topic: \([^,]*\), Partition: \([^\]*\).*/ReplicatorException:\1 Topic: \2, Partition: \3/p' else echo "No topic matching the pattern '$status_topic_name' found." fiFühren Sie dieses Skript aus, um die MSK Replicator-Fehlermeldungen abzufragen:
<path-to-your-kafka-installation>/bin/query-replicator-failure-message.sh --replicator-arn $REPLICATOR_ARN --bootstrap-server $TARGET_CLUSTER_SERVER_STRING --consumer.config $CONSUMER_CONFIG_FILEDieses Skript gibt alle Fehler mit ihren Ausnahmemeldungen und den betroffenen Themenpartitionen aus. Da das Thema alle historischen Fehlermeldungen enthält, sollten Sie die Untersuchung anhand der letzten Meldung beginnen. Im Folgenden finden Sie ein Beispiel für eine Fehlermeldung:
ReplicatorException: The request included a message larger than the max message size the server will accept. Topic: test, Partition: 1
Häufige Fehler und Lösungen
Im Folgenden werden häufige Fehler bei MSK Replicator und deren Behebung beschrieben.
- Nachrichtengröße größer als max.request.size
-
Ursache: Die Größe der einzelnen Nachrichten überschreitet 10 MB (das Standardmaximum).
Im Folgenden finden Sie ein Beispiel für diesen Fehlermeldungstyp.
ReplicatorException: The message is 20635370 bytes when serialized which is larger than 10485760, which is the value of the max.request.size configuration. Topic: test, Partition: 1Lösung: Reduzieren Sie die Größe der einzelnen Nachrichten in Ihrem Thema. Wenn das nicht möglich ist, folgen Sie den Anweisungen zur Beantragung einer Limiterhöhung.
- Nachrichtengröße, die größer ist als die maximale Nachrichtengröße, die der Server akzeptiert
-
Ursache: Die Nachrichtengröße überschreitet die maximale Nachrichtengröße des Zielclusters.
Im Folgenden finden Sie ein Beispiel für diesen Fehlermeldungstyp.
ReplicatorException: The request included a message larger than the max message size the server will accept. Topic: test, Partition: 1Lösung: Erhöhen Sie die
max.message.bytesKonfiguration auf dem Zielcluster oder dem Zielthema. Siehe max.message.bytes. - Der Zeitstempel liegt außerhalb des zulässigen Bereichs
-
Ursache: Der Nachrichtenzeitstempel liegt außerhalb des zulässigen Bereichs des Zielclusters.
Im Folgenden finden Sie ein Beispiel für diesen Fehlermeldungstyp.
ReplicatorException: Timestamp 1730137653724 of message with offset 0 is out of range. The timestamp should be within [1730137892239, 1731347492239] Topic: test, Partition: 1Lösung: Aktualisieren Sie die
message.timestamp.before.max.msKonfiguration des Zielclusters. Siehe message.timestamp.before.max.ms. - Der Datensatzstapel ist zu groß
-
Ursache: Die Batchgröße des Datensatzes überschreitet die Segmentgröße, die für das Thema im Zielcluster festgelegt wurde. MSK Replicator unterstützt eine maximale Batchgröße von 1 MB.
Im Folgenden finden Sie ein Beispiel für diesen Fehlermeldungstyp.
ReplicatorException: The request included message batch larger than the configured segment size on the server. Topic: test, Partition: 1Lösung: Aktualisieren Sie die Größe der Zielcluster
segment.bytesauf mindestens 1048576 (1 MB). Siehe segment.bytes.
Anmerkung
Wenn die ReplicatorFailure Metrik nach der Anwendung dieser Lösungen weiterhin Werte ungleich Null ausgibt, wiederholen Sie den Fehlerbehebungsprozess, bis die Metrik den Wert Null ausgibt.
Problembehebung bei der Replikation von selbstverwalteten Kafka-Clustern
MSK Replicator kann keine Verbindung zum selbstverwalteten Kafka-Cluster herstellen
Führen Sie die folgenden Prüfungen durch, wenn MSK Replicator keine Verbindung zu Ihrem selbstverwalteten Kafka-Cluster herstellen kann:
Stellen Sie sicher, dass Ihre VPN- oder Direct Connect-Verbindung aktiv ist und die Routing-Tabellen korrekt sind.
Stellen Sie sicher, dass Sicherheitsgruppen eingehenden Datenverkehr von MSK Replicator-Subnetzen am SASL_SSL Port zulassen (normalerweise 9096).
Überprüfen Sie die DNS-Auflösung von der VPC zu den Hostnamen des selbstverwalteten Cluster-Brokers.
Überprüfen Sie die
KafkaClusterPingSuccessCountMetrik in Amazon CloudWatch — ein Wert von 0 weist auf einen Verbindungsfehler hin.
Fehler bei der SASL/SCRAM-Authentifizierung
Wenn die AuthError Metrik ungleich Null ist oder die Replicator-Protokolle Fehler anzeigen: SASL/SCRAM
Stellen Sie sicher, dass die in AWS Secrets Manager gespeicherten Anmeldeinformationen mit den SCRAM-Benutzeranmeldedaten auf dem selbstverwalteten Cluster übereinstimmen.
Stellen Sie sicher, dass der SCRAM-Benutzer über die erforderlichen ACL-Berechtigungen verfügt (Lesen, Beschreibung zu Themen; Lesen, Beschreibung zu Benutzergruppen; Beschreibung zu Clustern).
Überprüfen Sie die
AuthErrorMetrik, um Authentifizierungsfehler zu bestätigen und anhand derClusterAliasDimension festzustellen, ob der Quell- oder Zielcluster betroffen ist.
Probleme mit SSL-Zertifikaten
Wenn der Replicator keine sichere Verbindung zum selbstverwalteten Cluster herstellen kann:
Stellen Sie sicher, dass der
certificateWert in AWS Secrets Manager die gesamte CA-Zertifikatskette im PEM-Format enthält.Stellen Sie sicher, dass der SSL-Listener auf allen selbstverwalteten Cluster-Brokern konfiguriert ist.
Stellen Sie sicher, dass das Zertifikat nicht abgelaufen ist und von einer vertrauenswürdigen Zertifizierungsstelle ausgestellt wurde.
Fehler bei der Offset-Synchronisierung für Nutzergruppen bei selbstverwalteten Clustern
Wenn Offsets für Nutzergruppen nicht korrekt synchronisiert werden:
Überprüfen Sie die
ConsumerGroupOffsetSyncFailureMetrik — sie sollte 0 sein.Stellen Sie sicher, dass die Nutzungsgruppen den Quell-Cluster aktiv nutzen (inaktive Nutzungsgruppen werden möglicherweise nicht synchronisiert).
Stellen Sie für die bidirektionale Replikation sicher, dass diese Einstellung
trueauf beiden Replikatoren auf eingestelltsynchroniseConsumerGroupOffsetsist.