Wie kann ich herausfinden, warum AWS ELB glaubt, dass mein Dienst ausfällt?

Wie kann ich herausfinden, warum AWS ELB glaubt, dass mein Dienst ausfällt?

Ich habe einen Dienst, der bei zwei Zielgruppen registriert ist: albund wwwalb.

Die albZielgruppe ist für interne Anfragen und die wwwalbZielgruppe ist für externe Anfragen.

Wenn ich meinen Dienst bereitstelle, startet er wie vorgesehen und beginnt, Anfragen anzunehmen. Wenn ich mir das Zugriffsprotokoll anschaue, kann ich sehen, dass sowohl der als auch der albden wwwalbDienst prüft. Da der Dienst in 3 Zonen läuft, sehe ich 3 Anfragen für jede Zone, also insgesamt 6.

 - - - [19/Jun/2022:20:45:28 +0200] "GET /api/system/status HTTP/1.1" 204 -
 - - - [19/Jun/2022:20:45:28 +0200] "GET /api/system/status HTTP/1.1" 204 -
 - - - [19/Jun/2022:20:45:28 +0200] "GET /api/system/status HTTP/1.1" 204 -
 - - - [19/Jun/2022:20:45:30 +0200] "GET /api/system/status HTTP/1.1" 204 -
 - - - [19/Jun/2022:20:45:30 +0200] "GET /api/system/status HTTP/1.1" 204 -
 - - - [19/Jun/2022:20:45:30 +0200] "GET /api/system/status HTTP/1.1" 204 -

Trotzdem wird der Dienst letztendlich abgeschaltet, weil die Zielgruppe glaubt, dass der Dienst nicht einwandfrei ist. Tatsächlich scheint die Zielgruppe den Dienst nie für einwandfrei zu halten.

Bildbeschreibung hier eingeben

Ein API-Aufruf zur Überprüfung der Zielgruppe sagt mir Folgendes:

{
    "TargetHealthDescriptions": [
        {
            "Target": {
                "Id": "10.1.143.94",
                "Port": 8182,
                "AvailabilityZone": "eu-north-1b"
            },
            "HealthCheckPort": "8182",
            "TargetHealth": {
                "State": "unhealthy",
                "Reason": "Target.FailedHealthChecks",
                "Description": "Health checks failed"
            }
        }
    ]
}

Ich habe mir schon seit einiger Zeit Zielgruppenmetriken und Load Balancer-Konfigurationen angesehen, kann aber einfach nichts über das Setup finden, das dieses Verhalten erklären könnte. Die Einstellungen für den Integritätscheck scheinen mir ebenfalls in Ordnung zu sein:

Bildbeschreibung hier eingeben

Ich habe das erst kürzlich hinzugefügt wwwalbund denke daher, dass dies irgendwie daran liegt, dass dieser Dienst in zwei Zielgruppen ist. Andererseits wird die Existenz eines Dienstes in zwei Zielgruppen von AWS unterstützt und erklärt.

Gibt es eine Möglichkeit, von AWS weitere Einzelheiten darüber zu erhalten, was dieses Problem tatsächlich verursacht? Gibt es eine Möglichkeit herauszufinden, warum AWS glaubt, dass der Dienst ausfällt?

Antwort1

Normalerweise stelle ich meinen Schwellenwert für einen Fehler höher ein als meinen Schwellenwert für einen Fehler. So sind beispielsweise 2 erfolgreiche Anrufe im Abstand von 10 Sekunden ein Fehler, 6 erfolglose Anrufe im Abstand von 10 Sekunden ein Fehler.

Das heißt, es sollte keine Rolle spielen und Ihre Einstellungen sollten funktionieren. Wenn sich ein Ziel registriert, tritt ein „anfänglicher“ Zustand auf. Während dieser Zeit versucht AWS, Integritätsprüfungen zu validieren und sollte nur dann in einen fehlerfreien Zustand wechseln, wenn die Integritätsprüfungen erfolgreich sind.

Es kann einige Minuten dauern, bis der Registrierungsvorgang abgeschlossen ist und die Integritätsprüfungen beginnen.

Sind Sie sicher, dass Ihre Anwendung nicht erfolgreich antwortet und dann so lange fehlschlägt, dass sie wieder fehlerhaft wird? Oder liegt es wirklich daran, dass der Start zu lange dauert und sie nie aus dem „Anfangszustand“ herauskommt?

verwandte Informationen