如果您自備作業系統 (例如 Windows Server) 的授權,合約義務可能要求您監控並回報使用這些授權的 VM 執行個體、實體伺服器和實體 CPU 核心數量。
本文說明如何使用開放原始碼工具「授權追蹤器」,監控您使用的 VM 執行個體、實體伺服器和實體 CPU 核心數量,以及如何使用 Looker Studio 將結果視覺化。
授權追蹤工具會分析 Compute Engine 稽核記錄,判斷每個 VM 執行個體的放置位置。刊登位置說明 VM 執行個體在特定實體伺服器上執行的時間範圍。每次將 VM 從一部實體伺服器遷移至另一部伺服器,都代表一個放置作業結束,並開始另一個放置作業。
舉例來說,假設您啟動 VM 執行個體,幾個月後再次停止。在執行階段的某個時間點,VM 會自動從 Server 1
遷移至 Server 2
,然後再返回 Server 1
。這項記錄對應 3 個刊登位置:
首次執行授權追蹤工具時,系統會分析過去 90 天的 Compute Engine 使用情況,並將結果寫入 BigQuery。後續執行時,這項工具會分析上次執行和當天之間的差異,並據此更新 BigQuery 資料集。
授權追蹤器工具會取代 IAP Desktop 提供的用量報表功能。
費用
本指南使用 Google Cloud的計費元件,包括:
使用 Pricing Calculator,根據您的預測使用量來產生預估費用。
部署授權追蹤工具
本節說明如何設定 Cloud Run 和 Cloud Scheduler,每天自動執行授權追蹤工具。
下圖說明本文所述的解決方案:
- 授權追蹤工具部署在 Cloud Run 上,並設定為分析一或多個專案的記錄。
- Cloud Scheduler 每天會觸發 Cloud Run 工作,使 License Tracker 工具更新 BigQuery 資料集。
- Looker Studio 資訊主頁會將 BigQuery 資料視覺化,並提供給使用者。
建立專案
如要設定 Cloud Run 和 Cloud Scheduler,請建立新專案:
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the BigQuery, Cloud Logging, Resource Manager, Cloud Build, Cloud Scheduler, and Cloud Run APIs.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the BigQuery, Cloud Logging, Resource Manager, Cloud Build, Cloud Scheduler, and Cloud Run APIs.
在 Google Cloud 控制台中,按一下「啟用 Cloud Shell」
按鈕,開啟 Cloud Shell。
設定環境變數,以包含您的專案 ID:
gcloud config set project PROJECT_ID
將 PROJECT_ID 替換為專案 ID。
設定要部署的 Cloud Run 區域:
gcloud config set run/region REGION
將 REGION 替換為支援 Cloud Run 和 Cloud Scheduler 的地區。
為工具建立服務帳戶:
SERVICE_ACCOUNT=$(gcloud iam service-accounts create license-tracker \ --display-name "License Tracker" \ --format "value(email)")
允許服務在同一個專案中建立及存取 BigQuery 資料集,並啟動 Cloud Run 工作:
gcloud projects add-iam-policy-binding $(gcloud config get-value core/project) \ --member "serviceAccount:$SERVICE_ACCOUNT" \ --role "roles/bigquery.admin" gcloud projects add-iam-policy-binding $(gcloud config get-value core/project) \ --member "serviceAccount:$SERVICE_ACCOUNT" \ --role "roles/run.invoker"
允許 Cloud Build 執行 Cloud Run 部署作業,並管理 Cloud Scheduler 工作:
PROJECT_NUMBER=$(gcloud projects describe $(gcloud config get-value core/project) --format='value(projectNumber)') \ gcloud iam service-accounts add-iam-policy-binding $SERVICE_ACCOUNT \ --member "serviceAccount:$PROJECT_NUMBER@cloudbuild.gserviceaccount.com" \ --role "roles/iam.serviceAccountUser" gcloud projects add-iam-policy-binding $(gcloud config get-value core/project) \ --member "serviceAccount:$PROJECT_NUMBER@cloudbuild.gserviceaccount.com" \ --role "roles/run.developer" gcloud projects add-iam-policy-binding $(gcloud config get-value core/project) \ --member "serviceAccount:$PROJECT_NUMBER@cloudbuild.gserviceaccount.com" \ --role "roles/cloudscheduler.admin"
複製 GitHub 存放區並切換至
latest
分支:git clone https://github.com/GoogleCloudPlatform/gce-license-tracker.git cd gce-license-tracker git checkout latest
將建構提交至 Cloud Build:
gcloud builds submit . --substitutions=_REGION=$(gcloud config get-value run/region)
建構作業會將 License Tracker 應用程式部署至 Cloud Run,並設定 Cloud Scheduler 每天觸發一次工作。
建構作業大約需要 3 分鐘。
- 已啟用 Compute Engine API。
- 專案會將「Compute 檢視者」 (
roles/compute.viewer
) 和「記錄檢視者」 (roles/logging.viewer
) 存取權授予工具的服務帳戶。 在 Google Cloud 控制台中,依序前往「Cloud Run」>「Jobs」。
選取 license-tracker 工作,開啟工作詳細資料。
按一下 [Execute] (執行)。
視您選取的專案數量和大小而定,初始分析可能需要數小時才能完成。
工作完成後,專案會包含名為
license_usage
的 BigQuery 資料集。(選用) 在 Cloud Logging 中查看記錄:
複製資訊主頁的資料來源:
針對每個資料來源執行下列操作:
- 按一下上方連結開啟資料來源。
- 按一下「複製這個資料來源」。
- 按一下「複製資料來源」。
- 如果系統提示您將資訊主頁連結至 BigQuery,請按一下「授權」。
- 視需要按一下標題,重新命名資料來源。
- 在帳單專案清單中,選取您用來部署授權追蹤工具的專案。
- 按一下「重新連結」。
- 在「套用連線變更」對話方塊中,選取「套用」。
複製資訊主頁:
開啟範例資訊主頁。
資訊主頁未連結至資料來源,因此不會顯示任何資料。
依序點選「…」>「建立副本」
在「複製這份報表」對話方塊中,選取資料來源副本:
按一下「複製報表」。
現在,資訊主頁會顯示 BigQuery 資料集中的資料。
- 分享資訊主頁,並授予使用者查看報表的權限。
- 授予使用者「BigQuery 資料檢視者」(
roles/bigquery.dataViewer
) 和「BigQuery 工作使用者」(roles/bigquery.jobUser
) 角色。 您可以在資料集或專案層級授予這些角色。 在 Google Cloud 控制台中,按一下「啟用 Cloud Shell」
按鈕,開啟 Cloud Shell。
設定環境變數,以包含您的專案 ID:
gcloud config set project PROJECT_ID
將 PROJECT_ID 替換為包含現有部署作業的專案 ID。
選取現有部署作業的 Cloud Run 區域:
gcloud config set run/region REGION
複製 GitHub 存放區並切換至
latest
分支:git clone https://github.com/GoogleCloudPlatform/gce-license-tracker.git cd gce-license-tracker git checkout latest
將建構提交至 Cloud Build:
gcloud builds submit . --substitutions=_REGION=$(gcloud config get-value run/region)
建構作業會更新現有部署作業,大約需要 3 分鐘才能完成。
部署應用程式
現在將授權追蹤工具部署至 Cloud Run:
選取要分析的專案
授權追蹤工具會分析所有符合下列條件的專案: Google Cloud
如要在分析中納入專案、資料夾或整個機構,請按照下列步驟操作:
專案
SCOPE_ID=RESOURCE_PROJECT_ID SCOPE_TYPE=projects gcloud projects add-iam-policy-binding $SCOPE_ID \ --member "serviceAccount:$SERVICE_ACCOUNT" \ --role "roles/compute.viewer" \ --condition None gcloud projects add-iam-policy-binding $SCOPE_ID \ --member "serviceAccount:$SERVICE_ACCOUNT" \ --role "roles/logging.viewer" \ --condition None
將 RESOURCE_PROJECT_ID 替換為您要讓授權追蹤工具分析的專案 ID。 Google Cloud
資料夾
SCOPE_ID=RESOURCE_FOLDER_ID SCOPE_TYPE=folders gcloud resource-manager folders add-iam-policy-binding $SCOPE_ID \ --member "serviceAccount:$SERVICE_ACCOUNT" \ --role "roles/compute.viewer" \ --condition None gcloud resource-manager folders add-iam-policy-binding $SCOPE_ID \ --member "serviceAccount:$SERVICE_ACCOUNT" \ --role "roles/logging.viewer" \ --condition None
將 RESOURCE_FOLDER_ID 替換為包含專案的資料夾 ID,License Tracker 工具會分析這些專案。
機構
SCOPE_ID=ORGANIZATION_ID SCOPE_TYPE=organizations gcloud organizations add-iam-policy-binding $SCOPE_ID \ --member "serviceAccount:$SERVICE_ACCOUNT" \ --role "roles/compute.viewer" \ --condition None gcloud organizations add-iam-policy-binding $SCOPE_ID \ --member "serviceAccount:$SERVICE_ACCOUNT" \ --role "roles/logging.viewer" \ --condition None
將 ORGANIZATION_ID 替換為機構 ID。
開始初步分析
您現在可以開始進行初步分析:
建立資訊主頁
現在,請建立範例資訊主頁的副本,藉此建立 Looker Studio 資訊主頁:
將存取權授予其他使用者
資訊主頁的資料來源已設定為使用檢視者的憑證存取 BigQuery。如要授予其他使用者存取資訊主頁的權限,請按照下列步驟操作:
自訂資訊主頁
您可以使用 Looker Studio 報表編輯器修改現有圖表或新增其他圖表,自訂資訊主頁。
範本資訊主頁中的所有圖表,都是以 BigQuery 資料集中的 placements
檢視畫面為依據。這個檢視畫面包含所有專案的所有刊登位置,並使用下列結構定義:
欄 | 資料類型 | 說明 |
---|---|---|
instance_id | INTEGER | 執行個體 ID |
instance_name | STRING | 執行個體名稱 |
instance_zone | STRING | 執行個體可用區 ID |
instance_project_id | STRING | 執行個體的專案 ID |
租戶 | STRING | S if running on sole-tenant node, F otherwise |
node_type | STRING | 單一用戶群節點類型 |
node_project_id | STRING | 節點的專案 ID;如果是共用的專屬節點,這個值可能與 instance_project_id 不同 |
server_id | STRING | 實體伺服器的專屬 ID |
operating_system_family | STRING | 如果無法辨識,則為 WIN 、LINUX 或 null |
授權 : 取得授權 (depending on the context) | STRING | 圖片使用的授權字串 |
license_type | STRING | 如果無法辨識,則為 BYOL 、SPLA 或 null |
machine_type | STRING | 執行個體的機器類型 |
memory_mb | INTEGER | 分配給執行個體的 RAM 容量 (以 MB 為單位) |
vcpu_count | INTEGER | 分配給執行個體的 vCPU 數量 |
vcpu_min_allocated | INTEGER | 分配給執行個體的 vCPU 數量下限;如果您超額配置單一租戶 VM 的 CPU,這個值可能與 vcpu_count 不同 |
maintenance_policy | STRING | 執行個體的維護政策 |
start_date | TIMESTAMP | 刊登位置開始 |
end_date | TIMESTAMP | 刊登位置結束 |
自訂現有圖表或在資訊主頁中新增自己的圖表時,可以使用 placement
檢視畫面。
升級授權追蹤工具
本節說明如何升級現有的授權追蹤工具部署作業,以使用較新版本的應用程式,或使用不同的設定。