Cześć, w tym artykule znajdziesz sporo informacji na temat alarmów, powiadomień i tym podobnych rzeczy w chmurze AWS. Zapewne wiesz, że usługa CloudWatch, będąca integralną częścią AWS, umożliwia zbieranie i monitorowanie metryk oraz logów z różnych usług i zasobów w chmurze AWS.
Jedną z najpotężniejszych funkcji dostępnych w CloudWatch jest możliwość tworzenia alarmów złożonych “composite alarm“. Alarmów składających się z wielu innych alarmów, które mogą być łączone w jedno logiczne wyrażenie. Dzięki temu użytkownicy mogą definiować zaawansowane reguły monitorowania, dostosowane do specyficznych potrzeb ich infrastruktury i aplikacji.
Przy tworzeniu composite alarm w AWS CloudWatch, użytkownicy mają dostęp do różnych operatorów logicznych, które umożliwiają definiowanie bardziej skomplikowanych warunków monitorowania. Oto kilka przykładów:
- AND: Ten operator logiczny aktywuje composite alarm, gdy wszystkie zdefiniowane alarmy wewnątrz niego są aktywne. Na przykład:
ALARM(CPUUtilizationTooHigh) AND ALARM(RAMUtilizationTooHigh)
. - OR: Operator OR aktywuje composite alarm, gdy przynajmniej jeden z zdefiniowanych alarmów wewnątrz niego jest aktywny. Na przykład:
ALARM(CPUTooHigh) OR ALARM(MemoryTooHigh)
. - NOT: Operator NOT pozwala na zdefiniowanie negacji, aktywując composite alarm, gdy określony alarm nie jest aktywny. Na przykład:
ALARM(CPUTooHigh) AND NOT ALARM(DeploymentInProgress)
. - Możesz także połączyć alarmy w coś bardziej złożonego, na przykład:
(ALARM(ResponseTimeTooHigh) OR ALARM(ErrorRateTooHigh)) AND ALARM(ServerBusy)
W tym przypadku composite alarm może zostać aktywowany, gdy odpowiedź z serwera jest zbyt długa ResponseTimeTooHigh
lub wskaźnik błędów ErrorRateTooHigh
przekracza określony próg, a jednocześnie serwer jest zbyt obciążony ServerBusy
.
(ALARM(CPUUtilizationTooHigh) OR ALARM(RAMUtilizationTooHigh)) AND NOT ALARM(DeploymentInProgress)
W tym przypadku wyrażenie określa, że alarm złożony może być aktywowany, jeśli CPUUtilizationTooHigh
lub RAMUtilizationTooHigh
jest w stanie ALARM, a DeploymentInProgress
nie jest w stanie ALARM. Jest to przykład alarmu złożonego, który redukuje hałas na przykład podczas aktualizacji w maintenance window.
(ALARM(CPUUtilizationTooHigh) OR ALARM(RAMUtilizationTooHigh)) AND OK(NetworkOutTooHigh)
Przy okazji, nie zawsze musisz używać ALARM
, czasem możesz użyć OK
. Powyższe wyrażenie określa, że alarm złożony przechodzi w stan ALARM, jeśli CPUUtilizationTooHigh
lub RAMUtilizationTooHigh
jest w stanie ALARM, a NetworkOutTooHigh
jest OK. Jest to także przykład alarmu złożonego, który redukuje hałas niepotrzebnych alarmów.
Podsumowanie
Alarmy złożone – Composite alarm w AWS CloudWatch stanowią potężne narzędzie, które umożliwia tworzenie zaawansowanych reguł monitorowania, uwzględniających wiele różnych czynników jednocześnie. Dzięki nim użytkownicy mogą skutecznie zarządzać monitorowaniem swojej infrastruktury i aplikacji w chmurze AWS, minimalizując fałszywe alarmy i skupiając się na istotnych problemach. Jeśli nie masz osobnego systemu służącego do monitoringu i powiadomień to zdecydowanie warto zainteresować się tym, co oferuje AWS.
Zachęcam do odwiedzenia mojego kanału na YouTube, znajdziesz tam film opisujący ten temat i zobaczysz, jak wygląda tworzenie alarmów złożonych w prawdziwym środowisku chmurowym AWS Composite Alarm | CloudWatch 2024 (youtube.com). Jeśli jesteś zainteresowany tworzeniem alarmów na podstawie metryk to może zainteresuje cię film How to create an alarm based on metrics? | AWS EC2 | CloudWatch Hands-On Tutorial (youtube.com).