Chương 40: Cloud Logging — Kiến Trúc, Định Tuyến & Quản Lý Chi Phí
Cloud Logging là hệ thống thu thập, lưu trữ và định tuyến log tập trung trên GCP. Ở bề mặt, nó trông đơn giản: log ghi vào, log đọc ra. Nhưng bên dưới là một pipeline phức tạp với nhiều tầng xử lý, nhiều loại log với chi phí và hành vi khác nhau, và một cơ chế routing có thể khiến hóa đơn tăng đột biến nếu không được cấu hình đúng.
Điểm đặc trưng của Cloud Logging trong môi trường production không phải là khó dùng — mà là dễ tốn kém mà không hay. Data Access Audit Logs có thể tạo ra hàng chục GB mỗi ngày từ một hệ thống BigQuery active. VPC Flow Logs không được sampling đúng cách có thể ngốn vài trăm USD/tháng. Hiểu kiến trúc bên trong — cách Log Router đánh giá entry, tại sao field exclusion không giảm API quota, sự khác biệt giữa ingestion cost và storage cost — là điều kiện tiên quyết để vận hành logging hiệu quả trong production.
Tại sao chương này quan trọng trong production
Chi phí Cloud Logging thường là một trong những surprise lớn nhất khi team GCP scale lên. Lý do không phải là giá cắt cổ, mà là vì nhiều log source bật mặc định mà không rõ ràng, và routing mặc định ghi tất cả mọi thứ vào _Default bucket mà không có bất kỳ filter nào.
Ba tình huống phổ biến dẫn đến chi phí ngoài tầm kiểm soát:
Data Access Audit Logs bị bật trên toàn tổ chức — mỗi API call đọc dữ liệu (BigQuery, Cloud Storage, Secret Manager) đều sinh một audit log entry. Trong hệ thống analytics active, con số này có thể là hàng triệu entries/ngày.
VPC Flow Logs không giới hạn aggregation interval — mặc định interval 5 giây trên traffic cao tạo ra lượng log khổng lồ dù hầu hết là traffic bình thường không cần trace.
Log duplication qua nhiều sink — cùng một log entry được ghi vào Cloud Logging bucket, BigQuery, và Cloud Storage đồng thời mà không nhận ra rằng ingestion cost tính theo volume, không theo destination.
Cấu trúc chương
chapter-40-cloud-logging/
├── index.md # File này — tổng quan và định hướng
├── 01.log-types-ingestion-pipeline.md # Các loại log và pipeline ingest
├── 02.audit-logs-deep-dive.md # Audit Logs: Admin Activity, Data Access, System Event
├── 03.log-router-sinks-architecture.md # Log Router, _Default/_Required, Sinks
├── 04.retention-storage-cost-management.md # Retention, buckets, field exclusion, chi phí
├── 05.log-based-metrics-alerting.md # Log-based metrics, alerting
└── 06.logging-query-language-debug-patterns.md # LQL và debug patternsDanh sách subtopics
1. Log Types & Ingestion Pipeline
Bốn loại log chính trong Cloud Logging và cách chúng đi vào hệ thống: Platform logs (tự động từ GCP services), User-written logs (qua API/Ops Agent/client library), Security logs (Audit Logs + Access Transparency), Component logs. Cơ chế ingestion pipeline — từ lúc log entry được tạo đến khi nó xuất hiện trong Logs Explorer. Tại sao timestamp validation quan trọng và các ngưỡng từ chối entry.
2. Audit Logs Deep Dive
Phân tích kỹ bốn loại Cloud Audit Logs: Admin Activity (luôn miễn phí, không tắt được), Data Access (tính phí, mặc định tắt), System Event (miễn phí, không tắt được), Policy Denied (tính phí storage, có thể exclude). Mô hình chi phí và tại sao Data Access Audit Logs là nguyên nhân hàng đầu của cost spike. Cách bật/tắt có chọn lọc ở cấp service và cấp resource.
3. Log Router & Sinks Architecture
Kiến trúc Log Router: cách entries được đánh giá qua hierarchy (project → folder → org), _Required và _Default built-in sinks, aggregated sinks và intercepting behavior. Cơ chế sink evaluation — inclusion filter + exclusion filter, thứ tự đánh giá, một entry có thể match nhiều sinks. Destination types: log buckets, BigQuery, Cloud Storage, Pub/Sub, project. Giới hạn kỹ thuật và edge cases.
4. Retention, Storage & Cost Management
Cấu trúc chi phí Cloud Logging: ingestion cost (tính khi entry ghi vào bucket, không giảm được qua exclusion ở destination) vs storage cost (tính sau 30 ngày mặc định). Field exclusion — cách reduce ingestion cost bằng cách drop fields trước khi ghi. Bucket retention settings (1–3650 ngày, grace period 7 ngày). Chiến lược cost optimization thực tế: exclusion filters, sampling, field trimming, aggregation period tuning cho VPC Flow Logs.
5. Log-based Metrics & Alerting
Cơ chế tạo Cloud Monitoring metric từ log entries: counter metrics (đếm matching entries) và distribution metrics (extract numeric value). Timing model — metric được cập nhật mỗi phút, không real-time. Labels và cardinality constraints. Tích hợp với alerting policies để tạo alert từ log patterns. System-defined vs user-defined log-based metrics.
6. Logging Query Language & Debug Patterns
Logging Query Language (LQL): syntax, field paths, toán tử so sánh, boolean logic, hàm đặc biệt (sample(), source()). Cách query hiệu quả trên structured logs. Kỹ thuật correlate logs từ nhiều services bằng trace ID và request ID. Các query pattern thực tế cho debugging: tìm lỗi theo error code, theo resource, theo thời gian, theo severity. Tích hợp Log Analytics (SQL) cho phân tích phức tạp hơn.
Điều kiện tiên quyết
- Chương 39: Cloud Monitoring — Hiểu về metrics, time series, alerting policies (log-based metrics là bridge giữa Logging và Monitoring)
- GCP IAM fundamentals — Audit logs gắn chặt với IAM principals và service accounts
- Distributed systems logging concepts — Structured logging, trace context propagation, log aggregation