CloudWatch Metrics và CloudWatch Logs
CloudWatch Metrics
- CloudWatch cung cấp các metric cho mọi service trong AWS
- Metric là một biến để giám sát (ví dụ:
CPUUtilization,NetworkIn,...) - Các metric thuộc về namespace
- Dimension là thuộc tính của một metric (ví dụ:
instance id,environment, v.v...) - Tối đa 30 dimension cho mỗi metric
- Metric có timestamp
- Có thể tạo CloudWatch Dashboard để hiển thị các metric
- Có thể tạo CloudWatch Custom Metrics (ví dụ như theo dõi RAM chẳng hạn)
CloudWatch Metric Streams
- Truyền liên tục các metric của CloudWatch đến một điểm đích do bạn chọn, với độ trễ thấp và gần như thời gian thực (near-real-time delivery).
- Có thể đẩy đến Amazon Kinesis Data Firehose (và từ đó đến các đích tiếp theo)
- Hoặc tích hợp với các bên thứ 3 như: Datadog, Dynatrace, New Relic, Splunk, Sumo Logic...
- Có thể cấu hình filter metrics để chỉ truyền một phần metric nhất định (subset).

- CloudWatch Metrics: Nguồn dữ liệu metric gốc của AWS (ví dụ: CPUUtilization, NetworkOut,...).
- Dữ liệu được stream gần như thời gian thực vào Kinesis Data Firehose.
- Từ Firehose, metric có thể được chuyển đến các đích lưu trữ/phân tích như:
- Amazon S3 → sau đó có thể query bằng Athena
- Amazon Redshift: phục vụ mục tiêu phân tích dữ liệu dạng kho dữ liệu (Data Warehouse)
- Amazon OpenSearch: dùng cho tìm kiếm và phân tích log/metric dạng gần thời gian thực
CloudWatch Logs
- Log group: tên tùy ý, thường đại diện cho một ứng dụng. Là một tập hợp logic chứa nhiều log stream
- Log stream: các instance bên trong ứng dụng / file log / container. Là một chuỗi log ghi theo thời gian, thuộc về một log group nhất định.
- Có thể định nghĩa chính sách hết hạn log (log expiration policy) — ví dụ: không bao giờ hết hạn, hoặc từ 1 ngày đến 10 năm
- CloudWatch Logs có thể gửi log đến:
- Amazon S3 (dạng export dữ liệu)
- Kinesis Data Streams
- Kinesis Data Firehose
- AWS Lambda
- OpenSearch
- Log được mã hóa mặc định
- Có thể thiết lập mã hóa dựa trên KMS sử dụng key riêng của bạn
CloudWatch Logs Insights là gì?
- Là một query engine được thiết kế chuyên biệt để:
- Truy vấn và phân tích log được lưu trữ trong CloudWatch Logs.
- Phân tích nhanh lượng lớn log (theo kiểu truy xuất dữ liệu truy vấn dạng SQL-like).
- Tính năng nổi bật:
- Search & Analyze Logs
- Có thể tìm kiếm sâu trong log để:
- Tìm IP cụ thể
- Đếm số lần xuất hiện của chuỗi
"ERROR","Timeout", v.v. - Truy vết theo RequestId hay traceId nếu log structured.
- Có thể tìm kiếm sâu trong log để:
- Query Language chuyên biệt
- Giúp dev hoặc SRE viết các truy vấn kiểu DSL như:
fields @timestamp, @message | filter @message like /ERROR/ | sort @timestamp desc | limit 20
- Giúp dev hoặc SRE viết các truy vấn kiểu DSL như:
- Cross-Account / Cross-Group Query
- Có thể truy vấn nhiều Log Group cùng lúc, kể cả giữa các AWS Account khác nhau (nếu được thiết lập quyền).
- Search & Analyze Logs
Đây là một query engine, không phải real-time engine
→ Nghĩa là bạn query trên dữ liệu đã ghi, không dùng để xử lý stream/trigger ngay khi log được ghi (như Lambda hoặc EventBridge).
CloudWatch Logs Subscriptions
- Khi bạn cấu hình một subscription filter, CloudWatch Logs sẽ chủ động đẩy log (push) thỏa mãn điều kiện filter đến các đích đã chỉ định
- Gửi log đến Kinesis Data Streams, Kinesis Data Firehose hoặc Lambda
- Subscription Filter – bộ lọc để xác định log nào sẽ được gửi đến đích

- CloudWatch Logs → xuất log
- Subscription Filter → lọc log theo điều kiện
- Log sau khi lọc sẽ được gửi đến:
- Lambda (xử lý real-time) → sau đó có thể gửi tiếp đến OpenSearch Service
- Kinesis Data Firehose (gần như real-time) → đẩy tiếp đến S3
- Kinesis Data Streams → kết nối với các dịch vụ như:
- Kinesis Data Firehose (KDF)
- Kinesis Data Analytics (KDA)
- EC2
- Lambda
CloudWatch Logs cho EC2
- Mặc định, không có log nào từ máy EC2 của bạn được gửi đến CloudWatch.
- Bạn cần chạy một CloudWatch Agent trên EC2 để đẩy (push) các file log mà bạn muốn lên CloudWatch.
- Đảm bảo IAM permission đã được cấp đúng để agent có thể upload log.
- Agent này cũng có thể được cài đặt trên server on-premise (không cần phải là EC2).

CloudWatch Logs Agent & Unified Agent
- Dành cho các máy chủ ảo (EC2 instance, máy chủ on-premise...)
- CloudWatch Logs Agent
- Là phiên bản cũ của agent.
- Chỉ có thể gửi log tới CloudWatch Logs.
- CloudWatch Unified Agent
- Thu thập thêm các metrics cấp hệ thống như RAM, process, v.v...
- Vẫn thu thập log để gửi đến CloudWatch Logs.
- Hỗ trợ cấu hình tập trung thông qua SSM Parameter Store.
Bạn thấy bài này thế nào?