Wie kann ich fehlerhafte Route 53-Zustandsprüfungen beheben?

Lesedauer: 6 Minute
0

Die von mir erstellten Amazon Route 53-Zustandsprüfungen werden als fehlerhaft gemeldet.

Lösung

**Hinweis:**Wenn Sie beim Ausführen von AWS Command Line Interface (AWS CLI)-Befehlen Fehler erhalten, stellen Sie sicher, dass Sie die neueste AWS-CLI-Version verwenden.

Ermitteln Sie zunächst mithilfe der AWS-Managementkonsole den Grund für den letzten Fehler bei der Zustandsprüfung. Oder verwenden Sie den Befehl get-health-check-last-failure-reason in der AWS-CLI.

Führen Sie anschließend die entsprechenden Schritte zur Fehlerbehebung im folgenden Abschnitt durch, um das Problem zu identifizieren und zu beheben.

**Hinweis:**Unabhängig vom Typ der Zustandsprüfung sollten Sie den Status der Option Status der Zustandsprüfung umkehren überprüfen. Wenn diese Option auf true gesetzt ist, betrachtet Route 53 die Zustandsprüfung als fehlerhaft, auch wenn sie als fehlerfrei markiert ist.

Beheben Sie Probleme bei einer Zustandsprüfung, die einen Endpunkt überwacht

Fehler: Der Health Checker konnte innerhalb des Timeout-Limits keine Verbindung herstellen

Der vorstehende Fehler tritt auf, wenn beim Versuch des Health Checkers, eine Verbindung mit dem konfigurierten Endpunkt herzustellen, ein Timeout auftritt. Die Mindestzeiten für den Verbindungsaufbau lauten wie folgt:

  • Bei TCP-Zustandsprüfungen muss die TCP-Verbindung zwischen den Health Checkern und dem Endpunkt innerhalb von zehn Sekunden hergestellt werden.
  • Bei HTTP- und HTTPS-Zustandsprüfungen muss die TCP-Verbindung zwischen den Health Checkern und dem Endpunkt innerhalb von vier Sekunden hergestellt werden. Der Endpunkt muss innerhalb von zwei Sekunden nach dem Verbindungsaufbau mit einem 2xx- oder 3xx-HTTP-Statuscode antworten.

Weitere Informationen finden Sie unter So ermittelt Amazon Route 53, ob eine Zustandsprüfung fehlerfrei ist.

Gehen Sie wie folgt vor, um den Timeout-Fehler zu vermeiden:

  1. Notieren Sie sich in der Zustandsprüfungs-Konfiguration den Domainnamen oder die IP-Adresse des Endpunkts.

2.Greifen Sie auf den Endpunkt zu. Vergewissern Sie sich, dass die Firewall oder der Server Verbindungen von den öffentlichen IP-Adressen der Route 53 für die in der Zustandsprüfungs-Konfiguration angegebenen AWS-Regionen zulässt. Sehen Sie sich die IP-Bereiche an und suchen Sie nach dem Dienst: ROUTE53_HEALTHCHECKS. Für Endpunktressourcen, die auf AWS gehostet werden, müssen Sie Sicherheitsgruppen und Netzwerkzugriffskontrolllisten so konfigurieren, dass die IP-Adressen der Route 53-Health Checker zugelassen werden.

3.Verwenden Sie die folgenden Tools, um die Konnektivität mit dem konfigurierten Endpunkt über das Internet zu testen. Ersetzen Sie die Platzhalter im folgenden Befehl. In den folgenden Beispielbefehlen die Variablen mit den Werten für Ihren Anwendungsfall.

TCP-Prüfung

$ telnet <domain name / IP address> <port>

HTTP/HTTPS-Prüfung

$ curl -Ik -w "HTTPCode=%{http_code} TotalTime=%{time_total}\n" <http/https>://<domain-name/ip address>:<port>/<path> -so /dev/null

Vergleichen Sie die Ergebnisse der vorherigen Tests mit den Timeout-Werten für die Zustandsprüfungen. Vergewissern Sie sich anschließend, dass Ihre Anwendung innerhalb der entsprechenden Zeitvorgaben antwortet.

Zum Beispiel, wenn Sie den folgenden Test ausführen:

curl -Ik -w "HTTPCode=%{http_code} TotalTime=%{time_total}\n" https://example.com -so /dev/null

Dann ist die Ausgabe:

HTTPCode=200 TotalTime=0.001963

In diesem Beispiel beträgt die Gesamtzeit für Antworten mit dem HTTP-Statuscode 200 0,001963 Sekunden.

Bei HTTP-Verbindungen muss die Verbindungszeit innerhalb von vier Sekunden liegen. Der Endpunkt muss innerhalb von zwei Sekunden nach der Verbindung mit dem HTTP-Statuscode antworten. Die Gesamtzeit beträgt sechs Sekunden. Ein Wert von mehr als sechs Sekunden weist darauf hin, dass der Endpunkt langsam reagiert und die Zustandsprüfung fehlschlägt. Überprüfen Sie in diesem Fall Ihren Endpunkt, um sicherzustellen, dass er innerhalb des Timeout-Zeitraums reagiert.

Wenn Ihre Ausgabe der Testbefehle einen anderen HTTP-Code als 200 anzeigt, überprüfen Sie die folgenden Konfigurationen:

  • Firewall-Regeln
  • Sicherheitsgruppen
  • Netzwerkzugriffskontrolllisten

Vergewissern Sie sich bei der Überprüfung der vorherigen Konfigurationen, dass Ihr Endpunkt Verbindungen von öffentlichen Route-53-IP-Adressen zulässt.

4.Wenn diese Option aktiviert ist, verwenden Sie die Option Latenzdiagramm in der Konfiguration der Zustandsprüfung, um das Metrikdiagramm auf Folgendes zu überprüfen:

  • TCP-Verbindungszeit
  • Zeit bis zum ersten Byte
  • Zeit bis zum Abschluss des SSL-Handshakes

Weitere Informationen finden Sie unter Überwachen der Latenz zwischen Health Checkern und Ihrem Endpunkt.

Hinweis:

  • Wenn das Latenzdiagramm nicht aktiviert ist, können Sie bestehende Zustandsprüfungen nicht bearbeiten. Stattdessen müssen Sie eine neue Zustandsprüfung erstellen.
  • Wenn die Elastic IP-Adresse des Endpunkts, den Sie überwachen, freigegeben oder aktualisiert wird, schlägt die Zustandsprüfung möglicherweise fehl.

Fehler: SSL alert handshake_failure

Der Handshake-Fehler weist darauf hin, dass die SSL- oder TLS-Aushandlung mit dem Endpunkt fehlgeschlagen ist. Wenn Sie SNI (nur HTTPS) aktivieren, sendet Route 53 während der TLS-Verhandlung den Hostnamen in der Nachricht „client\ _hello“ an den Endpunkt. Diese Aktion ermöglicht es dem Endpunkt, auf die HTTPS-Anfrage mit dem entsprechenden SSL- oder TLS-Zertifikat zu antworten.

Wenn Ihr überwachter Hostname nicht Teil des allgemeinen Namens im SSL- oder TLS-Zertifikat des Endpunkts ist, erhalten Sie den Fehler „SSL alert handshake_failure“.

**Hinweis:**Um SNI zu aktivieren, muss der überwachte Endpunkt SNI unterstützen.

Beheben Sie Probleme bei Zustandsprüfungen mit der Zeichenkettenübereinstimmungsbedingung

Der Endpunktserver gibt „200 OK“ zurück, aber Route 53 markiert die Zustandsprüfung als fehlerhaft

Health Checker müssen innerhalb von vier Sekunden eine TCP-Verbindung mit dem Endpunkt herstellen. Health Checker müssen dann in den nächsten zwei Sekunden einen HTTP-Statuscode 2xx oder 3xx erhalten. Anschließend muss die konfigurierte Zeichenfolge innerhalb der nächsten zwei Sekunden in den ersten 5.120 Bytes des Antworttextes erscheinen. Wenn die Zeichenfolge in den ersten 5.120 Bytes nicht vorhanden ist, markiert Route 53 die Zustandsprüfung als fehlerhaft.

Verwenden Sie den folgenden Befehl, um zu überprüfen, ob die Zeichenfolge in den ersten 5.120 Bytes des Antworttextes erscheint. Ersetzen Sie domain-name, Port und $search-string durch Ihre Werte.

$ curl -sL <http/https>://<domain-name>:<port> | head -c 5120 | grep $search-string

Beheben Sie Probleme mit eine Zustandsprüfung, die einen CloudWatch-Alarm überwacht

Route 53 wartet nicht darauf, dass der Amazon CloudWatch-Alarm in den Zustand ALARM übergeht.

Die vorherige Situation tritt auf, wenn Route 53 den metrischen Datenstrom und nicht den Status des CloudWatch-Alarms überwacht.

Gehen Sie wie folgt vor, um diesen Fehler zu beheben:

1.Überprüfen Sie die Konfiguration der Zustandsprüfung, die sich im Status UNZUREICHENDE DATEN befindet. Wenn der metrische Datenstrom nicht genügend Informationen liefert, um den Status des Alarms zu bestimmen, hängt der Status der Zustandsprüfung von der InsuffizientDataHealthStatus-Konfiguration ab. Die Statusoptionen für die Einstellung InsufficientDataHealthStatus lauten fehlerfrei, fehlerhaft oder letzter bekannter Status.

2.Wenn Sie die Konfiguration eines CloudWatch-Alarms aktualisieren, werden die neuen Einstellungen nicht automatisch in der zugehörigen Zustandsprüfung angezeigt. Gehen Sie wie folgt vor, um die Konfiguration der Zustandsprüfung mit der aktualisierten Konfiguration des CloudWatch-Alarms zu synchronisieren:

  • Wählen Sie in der Route 53-Konsole Zustandsprüfungen aus.
  • Wählen Sie die Zustandsprüfung und anschließend Konfiguration synchronisieren aus.
AWS OFFICIAL
AWS OFFICIALAktualisiert vor einem Jahr