2016-04-14 8 views
0

Ich verwende AWS ELB, um den Status meiner Instanzen an eine Autoscaling-Gruppe zu melden, damit eine nicht-funktionale Instanz beendet und durch eine neue ersetzt wird. Der ELB ist so konfiguriert, dass er alle 60 Sekunden auf TCP: 3000 pingt und auf eine Zeitüberschreitung von 10 Sekunden wartet, um einen Fehler bei der Zustandsprüfung zu erkennen. Die ungesunde Schwelle ist 5 aufeinanderfolgende Überprüfungen. Allerdings meldet der ELB meine Instanzen immer als fehlerfrei und fehlerfrei, obwohl ich regelmäßig manuell auf eine Instanz mit Zeitlimit stoße. Ich muss sie manuell beenden und eine neue Instanz starten, obwohl die ELB sie ständig meldetELB meldet Instanzen immer als In-Service

Warum passiert das?

+0

Verringern Sie den ungesunden Schwellenwert auf 2 und versuchen Sie es erneut –

+0

Ich stimme zu, den Schwellenwert zu reduzieren. Versuchen Sie auch, eine andere Überwachung wie einen einfachen curl-Befehl in einer Schleife zu verwenden, die alle zehn Sekunden abfragt, um zu sehen, wie die Ausfallereignisse aussehen. Holen Sie sich die "Form" des Problems – Vorsprung

Antwort

0

Nach ein wenig Untersuchung fand ich, dass Ich versuche, den Zustand der App durch einen API-Aufruf zu einer Web-App auf der Instanz zu bewerten und warten auf die Antwort auf Timeout, um die Instanz fehlerhaft zu deklarieren. Ich musste http als das Protokoll verwenden, um Port 3000 mit einem benutzerdefinierten Pfad durch das Lastenausgleichsmodul anstelle von TCP aufzurufen.

Hinweis: Die API muss einen Statuscode von 200 zurückgeben, damit der Load Balancer sie als gesund betrachtet. Es funktioniert jetzt perfekt

Verwandte Themen