Knowledge Center Monthly Newsletter - March 2025
Stay up to date with the latest from the Knowledge Center. See all new and updated Knowledge Center articles published in the last month and re:Post’s top contributors.
So behebt man fehlgeschlagene Zustandsprüfungen für den Application Load Balancer
Ich möchte herausfinden, warum die Ziele, die auf meinem Application Load Balancer registriert sind, nicht korrekt sind.
Behebung
Um Fehler bei der Systemdiagnose Ihres Application Load Balancer zu beheben, suchen Sie nach dem Ursachencode und der Beschreibung Ihres Problems. Führen Sie dann die folgenden Aufgaben aus, um Ihr Problem zu lösen.
Den Ursachencode und eine Beschreibung deines Problems finden
Verwenden Sie die Ressourcenübersicht anstelle der Konsole der Zielgruppe, um die Ressourcen des Load Balancers einzusehen und fehlerhafte Ziele zu identifizieren. Die Ressourcenübersicht zeigt alle Ressourcen des Application Load Balancer auf einer einzigen Seite.
Hinweis: Wenn die HTTP-Zielantwort des Application Load Balancer nicht die erwartete Antwort ist, überprüfen Sie die Antwort Ihrer Anwendung. Stellen Sie sicher, dass die Anwendung die richtige Antwort an den Load Balancer sendet.
Das Problem anhand des Ursachencodes lösen
Führen Sie auf der Grundlage des von Ihnen gefundenen Codes für die Integritätsprüfung die folgenden Aufgaben aus, um das Problem zu lösen.
Elb.InitialHealthChecking
Bevor ein Ziel Anfragen vom Load Balancer empfangen kann, muss das Ziel die ersten Zustandsprüfungen bestehen. Warten Sie, bis Ihr Ziel die ersten Zustandsprüfungen bestanden hat, und überprüfen Sie dann erneut seinen Gesundheitsstatus.
Elb.RegistrationInProgress
Der Load Balancer beginnt mit der Weiterleitung von Anfragen an das Ziel, sobald der Registrierungsprozess abgeschlossen ist und das Ziel die ersten Zustandsprüfungen bestanden hat.
Target.DeregistrationInProgress
Wenn Sie ein Ziel deregistrieren, sendet der Load Balancer keine Anfragen mehr an das Ziel. Elastic Load Balancing wartet 300 Sekunden, bevor die Deregistrierung abgeschlossen ist. Sie können jedoch die Amazon EC2-Konsole oder die AWS Command Line Interface (AWS CLI) verwenden, um den Verzögerungswert zu aktualisieren. Weitere Informationen finden Sie unter Verzögerung der Abmeldung.
**Hinweis:**Wenn Sie beim Ausführen von Befehlen in AWS CLI Fehlermeldungen erhalten, finden Sie weitere Informationen unter Beheben von AWS CLI-Fehlern. Stellen Sie außerdem sicher, dass Sie die neueste Version von AWS CLI verwenden.
Target.FailedHealthChecks
Gehen Sie wie folgt vor, um dieses Problem zu beheben:
-
Stellen Sie sicher, dass Ihre Anwendung läuft. Führen Sie den Befehl Dienst aus, um den Status von Diensten auf Linux-Zielen zu überprüfen. Informationen zu Windows-Zielen finden Sie auf der Registerkarte Dienste des Windows Task-Managers. Wenn der Dienst beendet ist, starten Sie den Dienst. Wenn der Dienst nicht erkannt wird, prüfen Sie, ob der Dienst installiert ist.
-
Stellen Sie sicher, dass das Ziel auf dem Zustandsprüfungs-Anschluss auf Datenverkehr wartet. Sie können den Befehl ss auf Linux-Zielen ausführen, um die Anschlüsse zu überprüfen, die Ihr Server abhört. Für Windows-Ziele können Sie den Befehl netstat ausführen.
-
Starten Sie eine bestehende Instanz in derselben Amazon Virtual Private Cloud (VPC) wie die Ziel-Instance oder verwenden Sie eine solche. Stellen Sie sicher, dass Sie Zugang zu dieser Instance haben. Oder, wenn das Ziel öffentlich zugänglich ist, senden Sie eine Anfrage zur Gesundheitsprüfung direkt an die öffentliche IP-Adresse des Ziels.
Verwenden Sie den folgenden CURL-Befehl:
$curl -vkso /dev/null <HealthCheck_protocol>://<Target_IP>:<HealthCheck_port>/<HealthCheck_path>
Hinweis: Verwenden Sie diese Methode, um den Application Load Balancer zu umgehen und zu überprüfen, ob das Ziel korrekt auf die Integritätsprüfungsanforderungen des Load Balancer reagiert.
-
Stellen Sie sicher, dass Ihre Anwendung auf die Anforderungen des Load Balancern zur Zustandsprüfung reagiert. Das folgende Beispiel zeigt eine typische Zustandsprüfungsanforderung des Application Load Balancern, die Ihre Ziele mit einer gültigen HTTP-Antwort zurückgeben müssen:
GET / HTTP/1.1Host: 10.0.0.1:80 Connection: close User-Agent: ELB-HealthChecker/2.0 Accept-Encoding: gzip, compressed
Hinweis: Im vorangegangenen Beispiel enthält der Host-Header-Wert die private IP-Adresse des Ziels, gefolgt von dem Anschluss für die Gesundheitsprüfung. Der User-Agent ist auf ELB-HealthChecker/2.0 eingestellt. Der Zeilenabschluß für Message-Header-Felder ist die Sequenz CRLF, und der Header endet an der ersten leeren Zeile, gefolgt von einem CRLF. Um die Zustandsprüfungsanfragen zu empfangen, fügen Sie Ihrer Webserverkonfiguration bei Bedarf einen virtuellen Standardhost hinzu.
-
Stellen Sie sicher, dass Ihre Anwendung auf der richtigen Netzwerkschnittstelle lauscht, wenn an Ihre Ziele mehrere Schnittstellen angeschlossen sind. Weitere Informationen finden Sie unter Zieltyp.
-
Stellen Sie sicher, dass das Ziel ein Serverzertifikat und einen Schlüssel in dem Format bereitstellt, das in der Elastic Load Balancing-Sicherheitsrichtlinie angegeben ist. Überprüfen Sie auch, ob das Ziel die passenden Chiffren und das Protokoll unterstützt, das der Load Balancer für den TLS-Handshake bereitstellt.
Target.InvalidState
Wenn das Ziel eine Amazon EC2-Instance ist, verwenden Sie die Amazon EC2-Konsole, um zu überprüfen, ob die Instanz läuft. Wenn die Instance nicht läuft, dann starten Sie die Instance manuell.
Target.IpUnusable
Wenn Ihr Zieltyp ip ist, wählen Sie keine IP-Adresse, die ein Load Balancer bereits verwendet.
Target.NotInUse
Gehen Sie wie folgt vor, um dieses Problem zu beheben:
- Überprüfen Sie die Zielgruppe, um sicher zu stellen, dass sie für den Empfang von Traffic vom Load Balancer konfiguriert ist.
- Stellen Sie sicher, dass die Availability Zone des Ziels für den Load Balancer aktiviert ist.
Target.NotRegistered
Stellen Sie sicher, dass das Ziel in der Zielgruppe registriert ist.
Target.ResponseCodeMismatch
Gehen Sie wie folgt vor, um dieses Problem zu beheben:
- Überprüfen Sie die Konfiguration der Zustandsprüfung, um die Erfolgscodes zu überprüfen, die der Load Balancer zu empfangen erwartet. Standardmäßig ist der Erfolgscode 200, aber Sie können Werte zwischen 200 und 499 angeben. Überprüfen Sie die Zugriffsprotokolle Ihres Webservers, um festzustellen, ob die erwarteten Erfolgscodes zurückgegeben werden.
- Stellen Sie sicher, dass der Ping-Pfad gültig ist. Achten Sie darauf, dass Sie einen gültigen URI angeben. Die Standardeinstellung ist /.
Wenn Sie den Wert für den Erfolgscode oder den Ping-Pfad ändern möchten, lesen Sie den Abschnitt Modify the health check settings of a target group.
Target.Timeout
Wenn Sie eine Verbindung herstellen können, reagiert die Zielseite möglicherweise nicht vor Ablauf des Timeouts für den Zustandsprüfung. Bei den meisten Webservern wie NGINX und IIS können Sie protokollieren, wie lange der Server braucht, um zu antworten. Weitere Informationen finden Sie unter Konfigurieren der Protokollierung auf der NGINX-Website und Konfigurieren der Protokollierung in IIS auf der Microsoft-Website.
Wenn Ihre Anfragen zur Zustandsprüfung länger dauern als die konfigurierte Zeitüberschreitung, führen Sie die folgenden Aufgaben aus:
- Wählen Sie eine einfachere Zielseite für die Zustandsprüfung.
- Ändern Sie die Einstellungen für die Zustandsprüfung.
Wenn Sie keine Verbindung herstellen können, führen Sie die folgenden Aufgaben aus:
- Verwenden Sie den Port für die Zustandsprüfung und das Protokoll für die Zustandsprüfung, um zu überprüfen, ob die Sicherheitsgruppe, die mit dem Ziel verbunden ist, den Verkehr vom Load Balancer zulässt. Sie können der Sicherheitsgruppe eine Regel hinzufügen, um den gesamten Datenverkehr aus der Load Balancer-Sicherheitsgruppe zuzulassen. Außerdem muss die Sicherheitsgruppe für Ihren Load Balancer den Datenverkehr zu den Zielen zulassen.
- Vergewissern Sie sich, dass die Netzwerk-Zugriffssteuerungsliste (Netzwerk-ACL), die mit den Subnetzen Ihres Ziels verbunden ist, den eingehenden Datenverkehr auf dem Anschluss der Zustandsprüfung zulässt. Die Netzwerk-ACL muss auch ausgehenden Datenverkehr auf den ephemeren Ports (1024-65535) zulassen.
- Vergewissern Sie sich, dass die Netzwerk-ACL, die mit den Subnetzen Ihrer Knoten verbunden ist, den eingehenden Datenverkehr auf den ephemeren Anschlüssen zulässt. Die Netzwerk-ACL muss auch ausgehenden Datenverkehr auf den Zustandsprüfungs- und Ephemeral-Anschlüssen zulassen.
- Vergewissern Sie sich, dass die Firewalls auf Betriebssystemebene des Ziels den Datenverkehr für Zustandsprüfungen zulassen.
- Vergewissern Sie sich, dass die Routentabelle für die Subnetze des Ziels einen Eintrag enthält, der den Datenverkehr zur Zustandsprüfung zurück zum Load Balancer erlaubt.
- Vergewissern Sie sich, dass die Speicher- und CPU-Auslastung Ihres Ziels innerhalb einer akzeptablen Kapazität liegt. Wenn Ihre Speicher- oder CPU-Auslastung zu hoch ist, fügen Sie Ziele hinzu oder erhöhen Sie die Kapazität Ihrer Auto Scaling-Gruppe. Wenn Ihr Ziel eine EC2-Instance ist, dann ändern Sie die Instance in einen größeren Instance-Typ.
Ähnliche Informationen

Relevanter Inhalt
- AWS OFFICIALAktualisiert vor 2 Jahren
- AWS OFFICIALAktualisiert vor 7 Monaten
- AWS OFFICIALAktualisiert vor einem Jahr
- AWS OFFICIALAktualisiert vor einem Jahr