Quản lý Logs của nhiều GCP projects tại một Logs Explorer duy nhất

Nguyen Hai-Truong
Google Cloud Vietnam
3 min readApr 21, 2023

Công ty bạn đang triển khai các sản phẩm lên Google Cloud. Organization node của công ty có nhiều GCP projects phục vụ cho từng nhóm sản phẩm hoặc các đội dự án riêng biệt. Khi đội ngũ kỹ sư trong quá trình phát triển, triển khai và kiểm thử các hệ thống chạy trên Google Cloud, một trong nhưng bước không thể thiếu là kiểm tra logs / debug các lỗi phát sinh của ứng dụng. Thật bất tiện khi phải chuyển đổi giữa các projects để truy cập Logs Explorer trên các projects khác nhau.

Thật may, Google Cloud có thể cho phép chúng ta tập trung toàn bộ Logs trên các projects vào một nơi duy nhất.

Kiến trúc tổng quan

Filter logs at the organization level with a sink

Chúng ta có thể dùng một aggregated sinkđể tổng hợp và điều hướng Logs từ các GCP Projects trong một Organization hoặc trong một folder. Filtered Logs từ các GCP Projects có thể được điều hướng tới một trong những nơi sau:

  • Cloud Storage: Các JSON files được lưu trữ trong các Cloud Storage buckets.
  • Pub/Sub: Các JSON files được lưu trữ trong các Cloud Storage buckets.
  • BigQuerry: Các Tables được tạo trong các BigQuery datasets.
  • Cloud Logging buckets

Bài viết này sẽ hướng dẫn các bạn cách chuyển toàn bộ Logs từ tất cả các GCP Projects trong Organization Node đến một Logs bucketduy nhất của một project cụ thể đã được định trước.

IAM Requirements

Để có thể tạo được một Log sink, bạn phải có một trong những quyền sau:

  • Owner (roles/owner)
  • Logging Admin (roles/logging.admin)
  • Logs Configuration Writer (roles/logging.configWriter)

Bước 1: Chọn một project trong Org làm nơi lưu Logs tập trung

Logs bucket dùng chung này có thể tạo trên bất kỳ projects nào trong Org. Ví dụ sau sẽ tạo một Logs bucket có tên là specific-log trong project có ID là $YOUR_PROJECT_ID

gcloud logging buckets create --location=global --retention-days=2 --project=$YOUR_PROJECT_ID specific-log

Kết quả:

Bước 2: Tạo một aggregated sink

gcloud logging sinks create sink-specific-logs --organization=$ORGANIZATION_ID --include-children \
logging.googleapis.com/projects/logging.googleapis.com/projects/$YOUR_PROJECT_ID/locations/global/buckets/specific-log

Bước 3: Refine scope in Logs Explorer

Truy cập vào Cloud Logging console và click REFINE SCOPE

Sau đó, chọn Scope by storage và chọnspecific-log log bucket đã tạo ở Bước 1.

Bước 4: Kiểm tra Logs
Bây giờ, bạn có thể tùy ý chọn Project mà bạn muốn kiểm tra logs.

Lưu ý: Bạn sẽ phải trả thêm tiền nếu cài đặt điều hướng Logs đến nhiều Logs Bucket khác nhau. Ví dụ, cùng một Log entry mà bạn điều hướng nó đến 3 Logs buckets thì bạn sẽ phải trả gấp 3 chi phí cho Google Cloud.

Để tránh được việc phát sinh chi phí như trên, khi bạn điều hướng Logs trên các projects vềspecific-log log bucket rồi thì bạn có thể disable _Default log sink trên các projects trong ORG.

--

--

Nguyen Hai-Truong
Google Cloud Vietnam

Engineer with years of experience in Cloud Computing, Container Orchestration, CI/CD and App Modernization. Google Developer Expert for GCP.