Nowa integracja dla CloudWatch Alarms i OpsCenter
Około rok temu AWS uruchomił usługę w AWS System Manager o nazwie OpsCenter, która umożliwia klientom agregowanie błędów, zdarzeń i alarmów w jednym miejscu, a także ułatwia operatorom oraz inżynierom badanie oraz usuwanie problemów. Teraz wprowadzono integrację pomiędzy powyższą funkcją a Amazon CloudWatch Alarms.
Gdy alarm CloudWatch przechodzi w stan alarmu, obecnie możliwe jest automatyczne utworzenie operacyjnego elementu roboczego (OpsItem) wewnątrz System Manager OpsCenter.
Przykładowo, można skonfigurować alarm, aby automatycznie utworzył się element OpsItem, jeśli zużycie CPU instancji EC2 jest większe niż 75%. Element ten będzie zawierać wszystkie informacje potrzebne operatorom do rozwiązania problemu, dając zespołowi narzędzia do zwiększenia wydajności oraz przyspieszenia analizy występujących problemów.
Istnieje możliwość łączenia różnych metryk alarmów, przykładowo można stworzyć złożony alarm, który uruchomi się tylko wtedy, gdy zużycie CPU będzie większe niż 75%, a opóźnienie load balancera przekroczy 100ms. W tym przypadku, można zignorować te instancje, których CPU wzrosło, jednak mimo to load balancer wciąż odpowiada w żądanym czasie.
Poniżej znajduje się przykład, aby lepiej zobrazować jak działa nowa integracja. W konsoli CloudWatch Alarms, stworzono nowy alarm, który uruchomi utworzenie elementu OpsItem, gdy alarm zostanie aktywowany.
Wywołanie alarmu
Aby utworzyć nowy alarm, należy kliknąć w Create alarm.
Aby uruchomić metryki dla CloudWatch i rozpocząć monitorowanie, należy kliknąć w Select metric.
W kolejnym kroku wybrano instancję do monitorowania oraz jej metryki, w tym przypadku będzie to CPU Utilization, a następnie klikamy w Select metric.
W zakładce Specify metric and conditions, wybrano typ progu Static oraz skonfigurowano alarm tak, aby status zmienił się na wyzwolony, gdy zużycie CPU przekroczy 75%.
Tworzenie elementu OpsItem
Następnym krokiem będzie konfiguracja działania alarmu. W tym przypadku usunięto domyślną akcję z sekcji powiadomień za pomocą przycisku Remove. Wówczas należy przewinąć w dół sekcji akcji w Systems Manager OpsCenter i kliknąć w Add Systems Manager OpsCenter action.
W tym przypadku severity ustawiono na poziomie Medium, kategoria jest opcjonalna, jednak wybrano wariant Performance. Można zauważyć, że w odróżnieniu od powiadomień, integracja będzie uruchamiana tylko wtedy, gdy alarm będzie w stanie Alarm. Nie można utworzyć elementu OpsItem dla warunków OK lub Insufficient. Aby utworzyć akcję, należy kliknąć w Next.
Dodatkowo nadano alarmowi nazwę oraz opis.
Po sprawdzeniu wszystkich opcji, nowy alarm został utworzony po kliknięciu w Create.
Alarm został aktywowany, a system rozpoczął monitoring wybranych metryk.
W celu zbadania poprawności alarmu, przeprowadzono CPU Stress test na instancji EC2 i oczekiwano wyzwolenia alarmu.
Po kliku minutach w konsoli CloudWatch Alarm, potwierdzono, że alarm został wyzwolony.
Przegląd elementów OpsItem
Nowa integracja spowodowała również utworzenie nowego elementu OpsItem, który jest widoczny w konsoli Systems Manager OpsCenter.
W utworzonym elemencie można zobaczyć więcej szczegółów takich jak: informacje o wykorzystaniu procesora w momencie uruchomienia alarmu, sugerowane runbooks do rozwiązania problemu oraz związane z nim zasoby.
Wszystkie ważne informacje potrzebne do rozwiązania problemu znajduą się w elemencie OpsItem. Przykładowo, jeśli w zakładce Related resources, kliknięto w opcję Resource ARN dla alarmu, w tej samej zakładce pojawią się informacje o alarmie, a także wykres wykorzystania CPU Utilization. Wszystko to bez opuszczania OpsCenter.
Sytuacja wygląda podobnie jeśli zostanie otworzona zakładka Resource ARN dla instancji EC2, stosowane informacje zostaną wyświetlone bez wychodzenia z OpsCenter.
W sekcji runbooks, ukazuje się lista sugerowanych runbooków, które mogą rozwiązać problem automatycznie. W prawdziwym środowisku, znajdowałoby się tutaj kilka niestandardowych runbooków do rozwiązania popularnych problemów w systemie, jednak w tym przypadku wykonano dodatkową, znaną sztuczkę informatyczną, polegającą na wyłączeniu i ponownym włączeniu instancji za pomocą runbooka AWS-RestartEC2Instance, bezporeśdnio z OpsItem.
Przedstawione opracowanie miało zaprezentować, iż nowa integracja może zwiększyć produktywność operatorów poprzez zapewnienie im systemu do szybkiego podejmowania obsługi problemów, a kluczowe informacje diagnostyczne są dostępne od ręki, w jednym miejscu.
Warto wiedzieć
Działanie Systems Manager OpsCenter action jest równoległe z istniejącymi powiadomieniami. Dzięki temu istnieje możliwość kontynuowania wysyłania powiadomień przez SNS, przykładowo pozwalające na kontynuowanie korzystania z istniejących systemów wsparcia.
OpsCenter redukuje zdarzenia alarmowe. Pozwala to na uniknięcie problemu tzw. „flapping issue”, w którym alarm „flapujący” pomiędzy stanami, mógłby potencjalnie wygenerować wiele pozycji w OpsItems.
Aby dowiedzieć się więcej, warto zobaczyć dokumentację.