AWS - DVA-C02

📊 Amazon CloudWatch Logs Insights: Phân tích log trên AWS

🧩 Giới thiệu

Trong một hệ thống lớn, log được ghi liên tục từ hàng trăm container, EC2 instances, Lambda functions… Vậy làm sao để truy vấn và phân tích log nhanh chóng, chính xác, hiệu quả?

Câu trả lời chính là Amazon CloudWatch Logs Insights – công cụ truy vấn log mạnh mẽ, dễ dùng, giúp bạn debug, tìm lỗi và giám sát hệ thống dễ dàng hơn bao giờ hết.

✅ Chủ đề này cũng thường xuất hiện trong kỳ thi AWS Certified Developer – Associate (DVA-C02), đặc biệt là các câu hỏi về monitoring, logging, và debugging ứng dụng.


📌 CloudWatch Logs Insights là gì?

CloudWatch Logs Insights là một công cụ query language do AWS phát triển, dùng để truy vấn, lọc, phân tích và trực quan hóa log được lưu trữ trong CloudWatch Logs.

✨ Tính năng chính:

  • Ngôn ngữ truy vấn mạnh mẽ, dễ học
  • Tốc độ truy vấn cao (hơn hẳn khi “search” tay)
  • Tích hợp sẵn trong AWS Console
  • Có thể dùng với CloudWatch Dashboard, AWS CLI, SDK

🔍 Cấu trúc câu lệnh Logs Insights

Câu lệnh Logs Insights gồm 3 phần chính:

fields      => chọn field muốn hiển thị
filter      => lọc log theo điều kiện
sort/limit  => sắp xếp và giới hạn kết quả

📌 Ví dụ đơn giản:

fields @timestamp, @message
| filter @message like /ERROR/
| sort @timestamp desc
| limit 20

→ Truy vấn này sẽ:

  • Hiển thị 20 dòng log gần nhất chứa từ ERROR
  • Sắp xếp theo thời gian giảm dần

🧠 Các field mặc định

FieldMô tả
@timestampThời gian ghi log
@messageNội dung log
@logStreamTên log stream
@logTên log group

Nếu log của bạn là JSON, Logs Insights sẽ tự động parse các field bên trong JSON. Bạn có thể dùng parse để tách field.


🔧 Một số câu truy vấn thường dùng

1. Tìm các lỗi HTTP 500:

fields @timestamp, status, path
| filter status >= 500
| sort @timestamp desc
| limit 10

Với log có cấu trúc JSON chứa statuspath.


2. Đếm số lỗi theo loại:

fields errorCode
| filter @message like /ERROR/
| stats count(*) by errorCode

3. Truy vấn log từ ECS Task:

fields @timestamp, @message, taskArn
| filter @message like /Exception/
| sort @timestamp desc

📉 Trực quan hóa Logs Insights trên Dashboard

Sau khi viết truy vấn trong Logs Insights:

  • Click “Add to Dashboard”
  • Chọn kiểu biểu đồ (line, bar, pie…)
  • Tạo dashboard giám sát log real-time cực kỳ tiện lợi

🧪 Truy vấn Logs Insights từ CLI

aws logs start-query \
  --log-group-name "/ecs/my-app" \
  --start-time 1617280000 \
  --end-time 1617283600 \
  --query-string "fields @message | filter @message like /ERROR/" \
  --region ap-northeast-1

⚖️ So sánh: Logs Insights vs search thường

Tiêu chíSearch thườngLogs Insights
Tốc độChậm với nhiều logRất nhanh
Ngôn ngữKhông cóCó query language
Thống kê, countKhông hỗ trợstats, count, avg
Trực quan hóaKhôngCó thể gắn vào dashboard
Dễ dùngDễ ban đầuMạnh mẽ hơn, học nhẹ thôi

📘 Câu hỏi luyện thi AWS DVA-C02

Câu hỏi: Developer muốn đếm số lần function Lambda trả về lỗi ValidationError trong 24h qua. Cách nào nhanh và hiệu quả nhất?

A. Tải log về local rồi grep
B. Dùng CloudWatch Logs search
C. Dùng CloudWatch Logs Insights
D. Xem log thủ công trên console

Đáp án đúng: C


💡 Best Practices

Mẹo hayMô tả
Dùng limit để tăng tốcTruy vấn ban đầu chỉ lấy 10–20 dòng
Gắn dashboardTruy vấn hay có thể đưa lên dashboard
Gắn vào CloudWatch AlarmMột số truy vấn có thể dùng để cảnh báo
Dùng parse khi cầnĐể tách log không phải JSON
Lưu truy vấn thường dùngCó thể lưu template trên console

📌 Tổng kết

  • CloudWatch Logs Insights là công cụ phân tích log mạnh mẽ, giúp bạn tìm kiếm lỗi nhanh hơn nhiều so với cách thủ công.
  • Dễ học, dễ dùng, tích hợp tốt với AWS Dashboard.
  • Nắm vững Logs Insights sẽ giúp bạn debug nhanh, phân tích hệ thống chuẩn, và ăn điểm cao trong kỳ thi DVA-C02.

10 Views

Leave a Reply

Your email address will not be published. Required fields are marked *