9

Wir haben drei EC2-Instanzen - eine in jeder Verfügbarkeitszone (AZ) in der Region eu-west-1. Sie sind mit ELB belastet. Wir möchten mit CloudWatch überwachen, wie viele Instanzen am Loadbalancer registriert sind. Das Problem ist: Ich verstehe die HealthyHostCount Metrik nicht wirklich.Wie verwende ich ELB HealthyHostCount für die Überwachung in CloudWatch?

Für eine Bereitstellung möchten wir in der Lage sein, eine einzelne Instanz (aus der LB) zu entfernen, ohne benachrichtigt zu werden. Der Alarm wäre also: Benachrichtigen, wenn nur eine gesunde Instanz für 5 Minuten hinter dem Loadbalancer verbleibt.

Soweit ich verstehe, HealthyHostCount (HHC) ist die Anzahl der gesunden Instanzen, die mit einem bestimmten ELB registriert sind, gemittelt über alle AZs. Wenn alles in Ordnung ist, sollte der HHC 1 sein (egal in welchem ​​Zeitraum), da es in jedem AZ 1 Instanz gibt.

Vor ein paar Tagen wurde jemand ohne erneute Registrierung der Instanzen bereitgestellt, sodass nur eine Instanz ausgeglichen wurde. Als wir das bemerkten, erzeugten wir einen Alarm, der uns benachrichtigen sollte, wenn der durchschnittliche HHC nach 5 Minuten unter 0,6 sank. (Wenn nur 1 Instanz in ELB registriert ist, sollte der HHC für einen beliebigen Zeitraum im Durchschnitt 0,33 betragen.) Der Alarm wurde jedoch nie in den Zustand "ALARM" geändert.

Als ich den HHC in CloudWatch überprüfte, waren die HHC Zahlen, die keinen Sinn ergaben (Summe von 10.0 für ein 5-Minuten-Intervall ist alles, woran ich mich jetzt erinnere).

Es ist alles eine große Sauerei für mich. Jedes Mal, wenn ich denke, dass ich die Metrik verstanden habe, sind die CloudWatch-Diagramme für mich alles Kauderwelsch.

Könnte jemand bitte erklären, wie man HHC benutzt, um einen Alarm zu bekommen, wenn nur eine Instanz registriert ist? Ist der durchschnittliche HHC der Weg zu gehen oder sollte ich eine andere Metrik verwenden?

Antwort

3

In diesem Bereich stellt die CloudWatch-Webkonsole nicht alles dar, was Cloud Watch leisten kann. Wie die docs erläutert, ist HealthyHostCount eine Metrik pro Verfügbarkeitszone. Mit der Konsole können Sie HealthHostCount nach Verfügbarkeitszone (aber über alle Load Balancer) oder nach Load Balancer (aber über alle Zonen hinweg) verteilen, aber nicht auf beide Arten aufteilen.

Wenn Sie nur einen Load Balancer haben, ist es am einfachsten, einen Alarm für jede der Zonenmetriken einzurichten. Wenn Sie über mehrere Verfügbarkeitszonen verfügen, sollten Sie in der Lage sein, die API zu verwenden, um einen Alarm über Verfügbarkeitszone und Lastenausgleich zu erstellen (wiederum ein Alarm pro Lastenausgleich). Dies kann jedoch nicht über die Webbenutzeroberfläche erfolgen kennt.

6

Die HealthyHostCount metrischen Aufzeichnungen einen Datenwert mit der Anzahl der verfügbaren Rechner für jeden Verfügbarkeitszone, jedes Mal wenn ein Gesundheits-Check durchgeführt wird. Ihr ELB-Gesundheitscheck hat einen Interval Parameter, der definiert, wie viele Gesundheitschecks pro Minute ausgeführt werden.

Wenn Sie eine Per-AZ-Metrik beobachten, mit einem Gesundheits-Check Interval von 10 Sekunden mit 2 gesunden Hosts in diesem AZ, werden Sie 6 Datenpunkte pro Minute (siehe 60/10) mit einem Wert von 2. Die durchschnittlichen , max und min werden 2 sein, aber die Summe wird 6*2=12 sein.

Wenn Sie 3 AZs mit 2 Hosts je wieder mit einem Interval = 10, aber Sie suchen auf der Per-LB-Metrik, werden Sie 3*6=18 Datenpunkte pro Minute sehen, die jeweils mit einem Wert von 2. Der Durchschnitt, Maximum und Minimum sind 2, aber die Summe wird 18*2=36

Ich empfehle Ihnen, einen Intervallwert einzurichten, der 60 Sekunden (5, 6, 10, 15, 20, 30 oder 60 Sekunden) teilen kann).

In Ihrem Fall, wenn Ihr Intervall 30 Sekunden ist und Sie 3 AZs und 1 Server pro AZ haben: Sie sollten 2 Datenpunkte pro AZ pro Minute erwarten. Richten Sie daher einen Alarm per-LB mit Period ein von 1 Minute, für Sum of HealthyHostCount, die ausgelöst wird, wenn Wert LowerOrEqual als 2 ist (2 data values * 1 Healthy AZ * 1 healthy server = 2, die anderen 4 Datenwerte der ungesunden AZs sollten 0 sein, so dass sie die Summe nicht beeinflussen).

UPDATE:

Es turns out, dass die Anzahl der Gesundheits ausgeführt Prüfung hängt auch von der Anzahl der internen Instanzen, die die ELB (ussually einer pro AZ) formen, so dass, wenn Sie eine Verkehrsspitze, oder genug Last leiden Um eine einzelne elb-interne-Instanz zu sättigen, wird die Anzahl der internen Server innerhalb des ELB wachsen und Sie werden unerwartet mehr Datenpunkte haben. Dies kann den sum Wert nur beeinflussen, wenn Sie viel Verkehr haben. Ich sah dieses Problem nicht mit einer Spitzenlast von 6k RPM, verteilt auf 3 AZs. Wenn dies Ihr Szenario ist, dann ist die Verwendung von eine sicherere Wette, aber ich würde empfehlen, dass Sie LowerThan 0,65 als Ihren Schwellenwert verwenden.

Die link auch macht mich fragen, wie sich die Cross-Zone Load Balancing Funktion, um die Menge an Datenpunkten beeinflusst ...

+0

Vielen Dank für diese ausführliche und erstaunliche Erklärung! –