Amazon CloudWatch
Monitoring Cloud Practitioner Solutions Architect Associate SysOps Administrator

Amazon CloudWatch

Amazon CloudWatch

Monitoruj całą infrastrukturę AWS w jednym miejscu. Metryki, logi, alarmy i dashboardy - reaguj na problemy zanim zauważą je użytkownicy.

Amazon CloudWatch to centralny serwis monitoringu i obserwowalności w AWS. Zbiera metryki (CPU, pamięć, liczba requestów), logi (z aplikacji, serwisów AWS, systemów) i pozwala ustawiać alarmy, które powiadamiają Cię lub automatycznie reagują na problemy. Bez CloudWatch lecisz na ślepo - nie wiesz, czy Twoja aplikacja działa, ile zasobów zużywa, ani kiedy coś się psuje.

CloudWatch integruje się z praktycznie każdym serwisem AWS - EC2 automatycznie wysyła metryki CPU i sieci, Lambda raportuje czas wykonania i błędy, RDS pokazuje połączenia i IOPS. Możesz też wysyłać własne metryki (custom metrics) z aplikacji. Dashboardy dają wizualny podgląd, a alarmy uruchamiają akcje - np. wysyłają SMS przez SNS lub skalują instancje EC2.

Czy wiesz, ze...

CloudWatch przetwarza biliony punktów danych dziennie w skali globalnej. Metryki custom o rozdzielczości 1 sekundy (high-resolution) nie kosztują więcej niż zwykłe - płacisz tyle samo za metrykę, niezależnie od częstotliwości.

Pro Tip

Zainstaluj CloudWatch Agent na instancjach EC2, aby monitorować RAM i dysk (domyślnie tego nie ma!). Ustaw retencję logów od razu - domyślnie logi są przechowywane BEZ LIMITU, co może generować duże koszty storage. 30 dni wystarcza dla większości środowisk dev.

Uwaga

Custom metryki w CloudWatch kosztuja $0.30/metryka/miesiac. Przy 100 metrykach to $30/mies., przy 1000 to $300/mies. Koszty rosna szybko! Log storage kosztuje $0.03/GB/mies., ale ingestion to $0.50/GB. Wysokowolumenowe logi (np. VPC Flow Logs, ALB access logs) moga generowac setki dolarow miesiecznie. Ustaw Log Retention Policy (domyslnie logi sa przechowywane WIECZNIE) i rozważ eksport do S3 dla danych archiwalnych.

CloudWatch to centralny serwis monitoringu i obserwowalnosci AWS. Zbiera metryki, logi i eventy z praktycznie kazdego serwisu AWS i pozwala reagowac na zmiany w czasie rzeczywistym. Oto jak dziala - od zbierania danych po automatyczna reakcje.

1

Zbieranie metryk

CloudWatch automatycznie zbiera metryki z serwisow AWS (EC2: CPUUtilization, NetworkIn/Out; RDS: DatabaseConnections, ReadLatency; Lambda: Duration, Errors). Metryki podstawowe sa darmowe z rozdzielczoscia 5 minut (EC2) lub 1 minuta (wiekszosci serwisow). Detailed Monitoring (EC2) daje metryki co 1 minute za dodatkowa oplata. Kazda metryka ma namespace (AWS/EC2), dimension (InstanceId) i period.

2

Dashboardy - wizualizacja w jednym miejscu

CloudWatch Dashboards to konfigurowalne panele z wykresami metryk, logami i alarmami. Mozesz mieszac metryki z roznych regionow i kont na jednym dashboardzie. Widgety: Line (trend), Stacked Area (proporcje), Number (aktualna wartosc), Gauge, Text (markdown). Automatic dashboards AWS generuje automatycznie per serwis. Koszt: $3/dashboard/miesiac (pierwsze 3 darmowe). Uzyj CloudFormation/CDK do wersjonowania dashboardow.

3

Alarmy - reaguj na progi

CloudWatch Alarm monitoruje metryki i wykonuje akcje gdy wartosc przekroczy prog. Stany: OK, ALARM, INSUFFICIENT_DATA. Akcje: wyslij SNS notification, wykonaj Auto Scaling action, zatrzymaj/terminuj/rebootuj EC2. Konfiguracja: metryka, statystyka (Average, Maximum, p99), period, evaluation periods (ile okresow musi przekroczyc prog). Ustaw alarm na CPUUtilization > 80% przez 3 consecutive periods of 5 min.

4

Log Groups i Log Streams

CloudWatch Logs przechowuje logi w hierarchii: Log Group (np. /ecs/my-app) > Log Stream (np. container-id). Logi wysylasz przez CloudWatch Agent (EC2), awslogs driver (ECS), natywnie (Lambda). Log retention domyslnie jest "never expire" - co generuje rosnace koszty. Ustaw retention policy (np. 30 dni dla dev, 90 dni dla produkcji). Logi mozna eksportowac do S3 lub streamowac do Kinesis/Lambda.

5

CloudWatch Logs Insights - zapytania po logach

Logs Insights to interaktywny jezyk zapytan do analizy logow. Przyklad: fields @timestamp, @message | filter @message like /ERROR/ | stats count() by bin(1h) - pokazuje liczbe bledow per godzine. Insights automatycznie wykrywa pola w formacie JSON. Mozesz przeszukiwac wiele Log Groups naraz. Koszt: $0.005 per GB przeskanowanych danych. Zapisuj czesto uzywane zapytania. To odpowiednik CloudWatch dla logów tego, czym Athena jest dla S3.

6

Anomaly Detection

CloudWatch Anomaly Detection uzywa machine learning do budowania modelu normalnego zachowania metryki. Zamiast statycznych progow (CPU > 80%), alarm wyzwala sie gdy metryka odbiega od wzorca - uwzglednia sezonowosc (dzien/noc, weekendy). Idealne dla metryk ze zmiennym baseline: request count, latency, error rate. Model uczy sie 2 tygodnie. Mozesz wykluczyc okresy (np. deployment windows) z treningu.

CloudWatch jest potezny, ale moze byc drogi i przytlaczajacy bez odpowiedniej strategii. Oto praktyczne wskazowki, jak monitorowac efektywnie bez rozbijania budzetu.

Custom Metrics - mierz to co wazne dla biznesu

Metryki AWS (CPU, pamiec) to hygiene metrics - nie mowia o zdrowiu aplikacji. Dodaj custom metrics: liczba zamowien/minute, czas odpowiedzi API per endpoint, wskaznik bledow biznesowych. Wysylaj je przez PutMetricData API lub Embedded Metric Format (EMF). Koszt: $0.30/metryka/miesiac. Uzywaj dimensions madrze - kazda unikalna kombinacja to osobna metryka i osobny koszt.

Poczatkujacy

Log retention - kontroluj rosnace koszty

Domyslna retencja logow to "Never Expire" - to pulapka kosztowa. CloudWatch Logs storage kosztuje $0.03/GB/miesiac. 100 GB logow dziennie = $90/miesiac storage po 30 dniach, rosnie co miesiac. Ustaw retention per Log Group: 7 dni dla dev, 30 dni dla staging, 90 dni dla produkcji. Starsze logi eksportuj do S3 ($0.023/GB/miesiac) lub uzyj S3 Lifecycle do Glacier ($0.004/GB). Skonfiguruj to od pierwszego dnia.

Poczatkujacy

Contributor Insights - wykrywaj anomalie w danych

Contributor Insights analizuje logi i identyfikuje top contributors - np. ktore IP adresy generuja najwiecej bledow 5xx, ktore endpointy sa najwolniejsze, ktory tenant zuzywa najwiecej zasobow. Definiujesz regule (JSON) wskazujaca na Log Group i pola do analizy. Contributor Insights to niedoceniany serwis - pozwala szybko odpowiedziec na pytanie "kto lub co powoduje problem".

Zaawansowany

Cross-account monitoring - centralne obserwatorium

W organizacji multi-account (Landing Zone/Control Tower) skonfiguruj jedno konto monitoringu. CloudWatch cross-account sharing pozwala widziec metryki i dashboardy ze wszystkich kont w jednym miejscu. Konfiguracja: monitoring account (sink) + source accounts. Uzyj CloudWatch Observability Access Manager (OAM). To kluczowe dla zespolow DevOps zarzadzajacych wieloma kontami i srodowiskami.

Zaawansowany

Composite Alarms - redukuj szum alertowy

Pojedyncze alarmy generuja zbyt wiele falszywych alarmow. Composite Alarm laczy wiele alarmow logika AND/OR: np. alarm "HIGH_SEVERITY" wyzwala sie gdy CPUAlarm AND ErrorRateAlarm AND LatencyAlarm sa w stanie ALARM jednoczesnie. Redukuje to alarm fatigue i pozwala reagowac na prawdziwe problemy. Mozesz tez uzywac suppress: nie wysylaj alarmu jesli trwa zaplanowany maintenance.

Zaawansowany

Embedded Metric Format (EMF) - metryki z logow

EMF pozwala wysylac custom metrics wewnatrz logow JSON - CloudWatch automatycznie je extrahuje jako metryki. Zero wywolan PutMetricData API, zero dodatkowego kodu. Po prostu loguj JSON ze specjalna struktura (_aws z MetricDefinition). Idealny dla Lambda - nie dodajesz latency na wywolania CloudWatch API. Darmowy ekstrakt metryk z logow, platisz tylko za metryki ($0.30/metric/month) i storage logow.

Poczatkujacy

Screenshoty z AWS Console

Wkrotce pojawia sie tu zrzuty ekranu pokazujace jak korzystac z Amazon CloudWatch bezposrednio w konsoli AWS.

Do czego sluzy Amazon CloudWatch?

01

Monitoring infrastruktury

Śledź CPU, pamięć, dysk i sieć instancji EC2. Ustaw alarm na CPU > 80%, który automatycznie dodaje instancje.

02

Centralizacja logów

Zbieraj logi z EC2, Lambda, ECS, API Gateway w jednym miejscu. Przeszukuj je, twórz filtry metrykowe i alarmy na błędy.

03

Alarmowanie i automatyczna reakcja

Ustaw alarmy na dowolną metrykę. Powiadom zespół przez SNS, uruchom Auto Scaling lub wywołaj Lambda w reakcji na problem.

04

Dashboardy operacyjne

Zbuduj dashboardy z wykresami kluczowych metryk. Wyświetlaj na ekranie w biurze lub udostępniaj zespołowi link.

Co musisz wiedziec?

Metric (Metryka)

Szereg czasowy z danymi liczbowymi. Np. CPUUtilization instancji EC2, Invocations funkcji Lambda. Metryki mają namespace, nazwę i wymiary (dimensions).

Alarm

Reguła monitorująca metrykę i zmieniająca stan (OK → ALARM → INSUFFICIENT_DATA). Może wywołać akcję: SNS, Auto Scaling, EC2 action, Lambda.

Log Group

Kontener na strumienie logów (log streams) z jednego źródła. Np. /aws/lambda/moja-funkcja. Ustawiasz retencję (1 dzień do 10 lat lub bez limitu).

Dashboard

Konfigurowalny widok z wykresami metryk, tekstem i alarmami. Odświeża się automatycznie. Możesz mieć wiele dashboardów dla różnych zespołów/serwisów.

Namespace

Kontener grupujący powiązane metryki. Serwisy AWS używają predefiniowanych namespace (np. AWS/EC2, AWS/Lambda). Własne metryki trafiają do Custom namespace.

Period (Okres)

Przedział czasu agregacji metryki. Standard: 1 minuta lub 5 minut. Detailed monitoring (EC2): co 1 minutę. High-resolution: co 1 sekundę (custom metrics).

Architektura: Monitoring i auto-remediacja z CloudWatch

Architektura monitoringu, ktora nie tylko alertuje, ale automatycznie reaguje na problemy. CloudWatch zbiera metryki i logi, wykrywa anomalie, powiadamia zespol i uruchamia automatyczna naprawe.

EC2 / Lambda / RDS / ECS
EC2 / Lambda / RDS / ECS Serwisy AWS emitujace metryki i logi - CloudWatch Agent, awslogs, natywne metryki
Metryki + Logi
Amazon CloudWatch
Amazon CloudWatch Centrala monitoringu - metryki, logi, dashboardy, alarmy, Anomaly Detection
Ewaluacja
CloudWatch Alarms
CloudWatch Alarms Progi statyczne i Anomaly Detection - wyzwalaja akcje przy przekroczeniu
Notyfikacja
Amazon SNS
Amazon SNS Powiadomienia - email, SMS, Slack (przez Lambda), PagerDuty, OpsGenie
Trigger
Lambda (auto-remediacja)
Lambda (auto-remediacja) Automatyczna reakcja: restart instancji, skalowanie, cleanup, rollback deploymentu
Composite Alarms redukuja szum - reaguj na skorelowane problemy, nie na pojedyncze metryki.
Auto-remediacja przez Lambda eliminuje nocne budzenie zespolu dla powtarzalnych problemow.
Logs Insights pozwala szybko debugowac problemy bez potrzeby zewnetrznych narzedzi (Splunk, ELK).

Porownanie CloudWatch vs X-Ray vs Prometheus/Grafana

Cecha CloudWatch X-Ray Prometheus + Grafana
Typ danych Metryki, logi, alarmy Trace (rozproszone) Metryki (time-series)
Integracja AWS Natywna (automatyczne metryki) Natywna (SDK w kodzie) Wymaga Amazon Managed Prometheus
Koszt $0.30/metryka/mies. (custom) $5/1M traces AMP: $0.03/10k samples
Dashboardy Podstawowe (CloudWatch Dashboards) Service map Zaawansowane (Grafana)
Elastycznosc Ograniczona do ekosystemu AWS Tylko tracing Wysoka (multi-cloud, custom)
Najlepsze dla Monitoring AWS natywny Debugowanie latency, bottleneckow Custom metryki, multi-cloud, Kubernetes

Ile kosztuje Amazon CloudWatch?

Free Tier (stały)

Darmowe na zawsze: 10 custom metrics, 10 alarmów, 1M requestów API, 5 GB logów (ingestion), 3 dashboardy (do 50 metryk).

Wystarczy na podstawowy monitoring małej aplikacji

Metryki

Custom metrics: $0.30/metrykę/miesiąc (pierwsze 10 000). Detailed monitoring EC2: $3.50/instancję/miesiąc. High-resolution (1s): bez dodatkowej opłaty.

50 custom metrics: ~$15/mies.

Logi

Ingestion: $0.50/GB. Storage: $0.03/GB/miesiąc. Analiza (Logs Insights): $0.005/GB skanowanych danych.

10 GB logów/mies. = ~$5.30/mies.

Alarmy

Standard alarm: $0.10/miesiąc. High-resolution (10s): $0.30/miesiąc. Composite alarm: $0.50/miesiąc.

20 alarmów standard: $2/mies.

Przyklady AWS CLI

Sprawdź CPU instancji EC2

Pobiera średnie CPU z ostatnich 30 minut

aws cloudwatch get-metric-statistics \
 --namespace AWS/EC2 \
 --metric-name CPUUtilization \
 --dimensions Name=InstanceId,Value=i-0123456789abcdef0 \
 --start-time $(date -u -d "30 minutes ago" +%Y-%m-%dT%H:%M:%S) \
 --end-time $(date -u +%Y-%m-%dT%H:%M:%S) \
 --period 300 \
 --statistics Average \
 --output table

Utwórz alarm na CPU

Alarm wysyłający powiadomienie gdy CPU > 80% przez 5 minut

aws cloudwatch put-metric-alarm \
 --alarm-name "WysokieCPU" \
 --metric-name CPUUtilization \
 --namespace AWS/EC2 \
 --statistic Average \
 --period 300 \
 --threshold 80 \
 --comparison-operator GreaterThanThreshold \
 --evaluation-periods 1 \
 --alarm-actions arn:aws:sns:eu-central-1:123456789012:moje-alerty \
 --dimensions Name=InstanceId,Value=i-0123456789abcdef0

Przeszukaj logi

Szuka błędów w logach Lambda z ostatniej godziny (Logs Insights)

aws logs start-query \
 --log-group-name /aws/lambda/moja-funkcja \
 --start-time $(date -u -d "1 hour ago" +%s) \
 --end-time $(date -u +%s) \
 --query-string "fields @timestamp, @message | filter @message like /ERROR/ | sort @timestamp desc | limit 20"

Wyślij własną metrykę

Publikuje custom metric z aplikacji

aws cloudwatch put-metric-data \
 --namespace "MojaAplikacja" \
 --metric-name "AktywniUzytkownicy" \
 --value 42 \
 --unit Count \
 --dimensions Env=prod,Service=api

Quiz: Amazon CloudWatch

Sprawdz czy dobrze rozumiesz podstawy. Kliknij odpowiedz — feedback pojawi sie od razu.

Twoj wynik: 0 / 3

1. Co domyślnie monitoruje CloudWatch dla instancji EC2?

2. Ile alarmów wchodzi w darmowy Free Tier CloudWatch?

3. Do czego służy CloudWatch Logs Insights?

Chcesz poznac Amazon CloudWatch w praktyce?

Darmowy kurs "AWS od podstaw" pokazuje jak uzywac Amazon CloudWatch krok po kroku. Teoria + praktyka od zera.

Zacznij darmowy kurs Wszystkie serwisy