🧩 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
Field | Mô tả |
---|---|
@timestamp | Thời gian ghi log |
@message | Nội dung log |
@logStream | Tên log stream |
@log | Tê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
status
vàpath
.
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ường | Logs Insights |
---|---|---|
Tốc độ | Chậm với nhiều log | Rất nhanh |
Ngôn ngữ | Không có | Có query language |
Thống kê, count | Không hỗ trợ | Có stats , count , avg … |
Trực quan hóa | Không | Có thể gắn vào dashboard |
Dễ dùng | Dễ ban đầu | Mạ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 hay | Mô tả |
---|---|
Dùng limit để tăng tốc | Truy vấn ban đầu chỉ lấy 10–20 dòng |
Gắn dashboard | Truy vấn hay có thể đưa lên dashboard |
Gắn vào CloudWatch Alarm | Mộ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ùng | Có 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.