Skip to content

CloudWatch Logs là gì?

CloudWatch Logs là dịch vụ giúp thu thập, lưu trữ và phân tích log từ:

  • Các dịch vụ AWS (EC2, Lambda, API Gateway, ECS/EKS, v.v.)
  • Ứng dụng custom chạy On-premises hoặc Cloud
  • Nguồn dữ liệu khác thông qua CloudWatch Agent hoặc API
  • Elastic Beanstalk: tự động gửi log ứng dụng và hệ thống lên CloudWatch Logs.

CloudWatch Logs giúp dễ dàng:

  • Theo dõi log real-time
  • Phân tích sự cố
  • Lưu trữ log lâu dài
  • Tích hợp log với Alarm

Kiến trúc & Thành phần chính

1. Log Events

  • Đơn vị dữ liệu nhỏ nhất, gồm:
    • Timestamp (thời điểm xảy ra)
    • Message (nội dung log)

2. Log Streams

  • Tập hợp các log events cùng nguồn gốc.
  • Ví dụ: mỗi EC2 instance hoặc Lambda function tạo ra một log stream riêng.

3. Log Groups

  • Level cao nhất của CloudWatch Log.
  • Tập hợp nhiều log stream.
  • Có thể cấu hình:
    • Retention policy: số ngày lưu trữ
    • Metric filter: định nghĩa các pattern của logs để tạo metric
    • Subscription: gửi log đi nơi khác (S3, Kinesis, Lambda, OpenSearch)

Thu thập Logs

1. Từ AWS Services

  • Lambda: Tự động ghi log vào CloudWatch.
  • API Gateway: Hỗ trợ access logs và execution logs.
  • ECS/EKS: Gửi container logs qua log driver.
  • VPC Flow Logs: Ghi lại traffic network.

2. Từ EC2 & On-Premises

  • Dùng CloudWatch Agent để gửi system log, application log.
  • Hỗ trợ Linux, Windows.

3. Tùy chỉnh bằng API/SDK

  • Gửi log qua PutLogEvents API.

Các tính năng chính

Retention Policies

  • Chọn thời gian lưu trữ log (từ 1 ngày đến vô hạn).
  • Giúp tối ưu chi phí lưu trữ.

Metric Filters

  • Đây là cơ chế trong CloudWatch Logs để phân tích log và tạo ra Metrics từ log events.
  • Nó cho phép bạn định nghĩa Pattern (mẫu tìm kiếm) → mỗi khi log match pattern → CloudWatch sẽ đếm và ghi nhận như một Metric.
  • Ví dụ: Đếm số dòng log chứa "ERROR" → tạo metric ErrorCount.

Subscription Filters

  • Gửi log đến dịch vụ khác để xử lý thêm:
    • Kinesis Data Streams / Firehose → phân tích big data
    • Lambda → xử lý log real-time
    • Amazon OpenSearch → search & visualize

CloudWatch Logs Insights

  • Là công cụ để query mạnh mẽ để phân tích log thông qua cú pháp do AWS định nghĩa.
  • Ví dụ:
    fields @timestamp, @message
    | filter @message like /ERROR/
    | sort @timestamp desc
    | limit 20
  • Hỗ trợ trực quan hóa dữ liệu.
CloudWatch Logs Insights là gì

CloudWatch Agent là gì

CloudWatch Agent là một phần mềm (agent) cài trên server (EC2 hoặc On-Premises) để thu thập log và metrics.

Mặc định log tự EC2 không được gửi lên CloudWatch Logs, cần cài agent để làm việc này. Việc cài đặt Agent cần được thực hiện thủ công hoặc tự động hóa qua script/Ansible/CloudFormation.

  • Hỗ trợ cả Windows và Linux.
  • Có thể cấu hình để thu thập:
    • System logs (syslog, Windows Event Logs)
    • Application logs (Apache, Nginx, MySQL, v.v.)
    • Custom logs (log file do ứng dụng tạo ra)
  • Gửi dữ liệu lên CloudWatch Logs và CloudWatch Metrics.
⚠️

So sánh CloudWatch Logs Agent vs Unified Agent

  • CloudWatch Logs Agent: chỉ thu thập log. Đã deprecated, không còn được AWS khuyến nghị sử dụng.
  • CloudWatch Unified Agent (CloudWatch Agent): thu thập cả log và metrics, hỗ trợ nhiều loại log hơn, cấu hình linh hoạt hơn.