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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
PoczatkujacyLog 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.
PoczatkujacyContributor 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".
ZaawansowanyCross-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.
ZaawansowanyComposite 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.
ZaawansowanyEmbedded 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.
PoczatkujacyScreenshoty z AWS Console
Wkrotce pojawia sie tu zrzuty ekranu pokazujace jak korzystac z Amazon CloudWatch bezposrednio w konsoli AWS.
Do czego sluzy Amazon CloudWatch?
Monitoring infrastruktury
Śledź CPU, pamięć, dysk i sieć instancji EC2. Ustaw alarm na CPU > 80%, który automatycznie dodaje instancje.
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.
Alarmowanie i automatyczna reakcja
Ustaw alarmy na dowolną metrykę. Powiadom zespół przez SNS, uruchom Auto Scaling lub wywołaj Lambda w reakcji na problem.
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.
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.
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?
Czesto uzywane razem z Amazon CloudWatch
Czytaj więcej o Amazon CloudWatch
Chcesz poznac Amazon CloudWatch w praktyce?
Darmowy kurs "AWS od podstaw" pokazuje jak uzywac Amazon CloudWatch krok po kroku. Teoria + praktyka od zera.