作者:MeshCloud脈時雲公有雲架構師王明立
背景
在使用谷歌雲可能會使用多個項目,每個項目都會産生日志,查詢日志需要登入每個Project檢視,非常不便于查詢及管理,需求單獨開一個項目管理其他多個項目的日志,不同項目的同一級别的日志傳輸到相同的桶,然後人員隻能檢視自己負責的項目的日,便于管理及查詢分析。
架構圖
技術簡介
如需管理 Google Cloud 組織的日志,您可以将整個組織的日志彙總到一個 Cloud Logging 存儲桶中。
本文檔通過彙總組織的稽核日志的示例介紹了此過程。
此過程包括以下步驟:
- 建立 Cloud Logging 存儲桶以存儲彙總的日志。
- 在組織級層建立接收器,以将日志路由到新的存儲桶。
- 配置對新存儲桶的讀取權限。
- 在“日志浏覽器”頁面中搜尋日志。
準備工作
要完成本指南中的步驟,您需要了解以下内容:
- 您要将日志彙總到其中的 Google Cloud 項目。
- 要在其中彙總日志的 Logging 存儲桶的名稱和位置。
- 您要包含的日志。
- 路由這些日志的接收器的名稱。
- 項目的組織編号。
- 日志視圖的資料視圖 ID。
操作步驟
在管理項目中分别建立用于存儲不同項目日志級别的桶,根據需求配置生命周期時間。
1.建立logbucket,配置保留期,預設30天。
2.配置LogRouter
在需要收集日志的組織或者級别配置Log Router
将日志條目路由到 logging存儲桶,接收器目标位置如下所示:
logging.googleapis.com/projects/DESTINATION_PROJECT/locations/global/buckets/BUCKET_NAME |
日志包含:選擇組織和包含子項目提取的日志
日志級别:根據區分不同級别的日志字段例如,severity=INFO,區分不同的日志級别,分别存儲到不同的logging bucket。
例如: resource.type="http_load_balancer" severity=INFO |
3.配置權限
檢視在每個項目中配置的Log Router,複制對應的service account,轉到管理的項目對應的IAM,給service account 添加Logs Bucket Writer權限。
4.人員權限控制
可以通過建立基于項目的日志視圖,再通過IAM授權不同的使用者對于不同視圖的通路權限,即可實作不同使用者通路桶中不同的日志。
1.建立日志視圖
gcloud logging views create VIEW_ID --bucket=BUCKET_NAME --location=LOCATION --log-filter='source("projects/spoton-project")' |
在上一個指令中,VIEW_ID 變量是日志視圖的辨別符。使用描述性名稱可以輕松識别日志視圖。此外,請確定将 LOCATION 變量的值設定為 BUCKET_NAME 變量指定的存儲桶的位置。例如,如果存儲桶的位置是 us-central1,則上一條指令必須包含語句 --location=us-central1。--log-filter配置為source("projects/PROJECT-ID")。
重複上述指令,建立每個項目的日志視圖。
2.授予權限
在用于建立存儲桶的項目的 Google Cloud 控制台中,轉到 IAM頁面。
進入 IAM頁面
- 點選 person_add 授予通路權限。
- 在新的主帳号字段中,添加使用者的電子郵件帳戶。
- 在選擇角色下拉菜單中,選擇 Logs Views Accessor。
- 此角色為使用者提供所有視圖的讀取權限。
根據資源名稱添加條件
- 點選添加 IAM條件。
- 輸入條件的标題和說明。
- 在條件類型下拉菜單中,選擇資源 > 名稱。
- 在運算符下拉菜單中,選擇 是。
- 在值字段中,輸入日志視圖的 ID,包括視圖的完整路徑。例如:projects/PROJECT_ID/locations/LOCATION/buckets/BUCKET_NAME/views/VIEW_ID
- 點選儲存以添加該條件。
測試驗證
登入授予權限的賬号檢視,可以看到對應項目的日志。