9

Mamy trzy instancje EC2 - po jednej w każdej strefie dostępności (AZ) w regionie ue-zachód-1. Są one równoważone obciążeniem za pomocą ELB. Chcielibyśmy monitorować, ile instancji jest zarejestrowanych w loadbalancerze, korzystając z CloudWatch. Problem: nie rozumiem metryki HealthyHostCount.Jak używać urządzenia HealthyHostCount ELB do monitorowania w CloudWatch?

W przypadku wdrożenia chcielibyśmy mieć możliwość wyrejestrowania pojedynczej instancji (wyjąć ją z LB) bez powiadomienia. Tak więc alarm byłby: Powiadamiaj, jeśli tylko 1 zdrowe wystąpienie pozostało za loadbalancerem przez 5 minut.

O ile rozumiem, HealthyHostCount (HHC) to liczba zdrowych instancji, które są zarejestrowane w danym ELB, uśrednione dla wszystkich AZ. Jeśli wszystko jest w porządku, HHC powinno wynosić 1 (bez względu na to, przez jaki okres czasu), ponieważ w każdym AZ jest 1 przypadek.

Kilka dni temu ktoś został wdrożony bez ponownej rejestracji wystąpień, więc tylko jedna instancja była zrównoważona. Kiedy to zauważyliśmy, stworzyliśmy alarm, który miał nas powiadomić, gdy średnia HHC spadła poniżej 0,6 po 5 minutach. (Jeśli w ELB zarejestrowana jest tylko jedna instancja, HHC powinna wynosić średnio 0,33 przez dowolny okres czasu.) Jednak alarm nigdy nie zmienił się na "ALARM".

Kiedy sprawdziłem HHC w CloudWatch, HHC były liczbami, które nie miały sensu (suma 10.0 na 5-minutowy interwał to wszystko, co pamiętam teraz).

To wszystko jest dla mnie wielkim bałaganem. Za każdym razem, gdy myślę, że rozumiem metrykę, wykresy CloudWatch są dla mnie bełkotem.

Czy ktoś mógłby wyjaśnić, jak użyć HHC, aby uzyskać alarm, gdy zarejestrowana jest tylko jedna instancja? Czy średnia HHC jest do zrobienia, czy powinienem użyć innej miary?

Odpowiedz

3

Jest to obszar, w którym konsola internetowa CloudWatch nie udostępnia wszystkich funkcji dostępnych w chmurze. Jak wyjaśnił, , jest miarą strefy dostępności. Konsola umożliwia korzystanie ze strefy HealthHostCount według dostępności (ale we wszystkich systemach równoważenia obciążenia) lub przez moduł równoważenia obciążenia (ale we wszystkich strefach), ale nie w plasterki w obie strony.

Jeśli masz tylko jeden moduł równoważenia obciążenia, najprostszą rzeczą będzie skonfigurowanie jednego alarmu dla każdej z danych strefy. Jeśli masz wiele stref dostępności, powinieneś być w stanie użyć api, aby utworzyć alarm, który rozdziela strefę dostępności i system równoważenia obciążenia (ponownie jeden alarm na moduł równoważenia obciążenia), ale nie możesz tego zrobić z poziomu interfejsu internetowego aż do I wiedzieć.

6

Metryka HealthyHostCount rejestruje jedną wartość danych z liczbą dostępnych hostów dla każdej strefy dostępności, za każdym razem, gdy wykonywane jest sprawdzenie poprawności. Twoje sprawdzenie poprawności ELB ma parametr Interval, który określa, ile kontroli zdrowia jest wykonywanych na minutę.

Jeśli oglądasz wskaźnik Per AZ, z oceną stanu zdrowia Interval z 10 sekund, z 2 zdrowymi hostami w tym AZ, zobaczysz 6 punktów danych na minutę (60/10) o wartości 2. Średnia , max i min będą 2, ale suma będzie 6*2=12.

Jeśli masz 3 AZ z 2 hostami każdy, ponownie z Interval = 10, ale patrzysz na metrykę Per-LB, zobaczysz 3*6=18 punktów danych na minutę, każda z wartością 2. średnia, maksymalna i minimalna to 2, ale suma będzie wynosić 18*2=36

Polecam ustawić wartość przedziału, która może podzielić 60 sekund (5, 6, 10, 15, 20, 30 lub 60 sekund).

W twoim przypadku, jeśli twój interwał to 30 sekund, a masz 3 AZ i 1 serwer na AZ: Powinieneś oczekiwać 2 punktów danych na AZ na minutę, więc skonfiguruj alarm Per-LB, z Period 1 minuty, dla Sum of HealthyHostCount, która uruchamia się, gdy wartość jest niższa lub niższa niż 2 (2 data values * 1 Healthy AZ * 1 healthy server = 2, pozostałe 4 wartości danych niezdrowych AZ powinny wynosić 0, aby nie wpłynęły na sumę).

UPDATE:

To turns out że liczba kontroli zdrowia wykonywane również zależy od liczby przypadków wewnętrznych, które kształtuje ELB (ussually jeden za AZ), więc jeśli cierpi skok ruchu, czy też na tyle obciążenia aby nasycić pojedynczą wewnętrzną instancję ELB, ilość wewnętrznych serwerów wewnątrz ELB wzrośnie i będziesz miał nieoczekiwanie więcej punktów danych. Może to mieć wpływ na wartość sum, tylko w przypadku dużego ruchu. Nie widziałem tego problemu z maksymalnym obciążeniem 6 000 obr./min, dystrybuowanym w 3 wersjach AZ. Jeśli jest to Twój scenariusz, to bezpieczniejszym rozwiązaniem jest użycie average, ale zalecam, abyś użył LowerThan 0.65 jako progu.

W link również sprawia, że ​​zastanawiam się, w jaki sposób funkcja Cross-Zone Load Balancing wpływa na ilość punktów danych ...

+0

Dzięki za tym szczegółowym wyjaśnieniem i niesamowite! –