本文說明如何在 Compute Engine 執行個體上安裝運算工作負載代理,並設定代理程式,以便連線至在這些運算執行個體上執行的 Microsoft SQL Server 工作負載。
安裝及設定代理程式後,該程式會從 SQL Server 工作負載和基礎運算執行個體收集指標,並傳送至 Workload Manager。接著,您可以使用 Workload Manager 評估作業,掃描 SQL Server 工作負載,找出基礎架構、作業系統和工作負載設定是否偏離最佳做法。
事前準備
安裝及設定 運算工作負載代理 前,請務必符合下列必要條件:
- 您已在一或多個運算執行個體上部署 SQL Server 工作負載。
- 您已查看支援的區域,瞭解可在哪些區域建立 Workload Manager 評估作業。
- 管理員已授予您建立及執行 Workload Manager 評估作業所需的 IAM 角色。
- 您已授予代理程式必要的 IAM 角色。
- 您已啟用 Cloud API 存取權。
- 您已授予 SQL Server 的必要權限。
代理程式所需的 IAM 角色
運算工作負載代理會使用連接至運算執行個體的服務帳戶進行驗證,並存取 Google Cloud 資源。
為提高安全性,建議您使用單一用途的服務帳戶,而非 Compute Engine 預設服務帳戶。
為確保服務帳戶具備必要權限,可讓 Compute Workloads 專用代理程式向Google Cloud 驗證身分並存取 Google Cloud 資源,請要求管理員在專案中授予服務帳戶下列 IAM 角色:
-
從運算執行個體收集指標:Compute 檢視者 (
roles/compute.viewer) -
將資料寫入 Workload Manager 資料倉儲:
Workload Manager 深入分析資訊寫入者 (
roles/workloadmanager.insightWriter) -
將代理程式記錄檔傳送至 Cloud Logging:
記錄檔寫入者 (
roles/logging.logWriter) -
如果您使用 Secret Manager 儲存連線至 SQL Server 執行個體的密碼:
Secret Manager 密鑰存取者 (
roles/secretmanager.secretAccessor)
如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。
管理員或許也能透過自訂角色或其他預先定義的角色,授予服務帳戶必要權限。
啟用 Cloud API 存取權
Compute Engine 建議您將執行個體設為允許所有存取範圍存取所有 Cloud API,並僅使用執行個體服務帳戶的 IAM 權限,控管對Google Cloud 資源的存取權。詳情請參閱「建立採使用者代管服務帳戶的 VM」。
如果限制 Cloud API 的存取權,則運算工作負載代理至少需要在主機運算執行個體上具備下列 Cloud API 存取權範圍:
https://www.googleapis.com/auth/cloud-platform
詳情請參閱「範圍最佳做法」。
如果您在沒有外部 IP 位址的運算執行個體上執行 SQL Server 工作負載,則必須在執行個體的子網路上啟用 Private Google Access,才能讓運算工作負載代理存取 Google API 和服務。如要瞭解如何啟用 Private Google Access,請參閱「設定 Private Google Access」。
SQL Server 的必要權限
使用下列指令碼,將必要權限指派給代理程式中設定的使用者帳戶。
USE [master]
GO
GRANT VIEW SERVER STATE TO [user_name]
GRANT VIEW ANY DEFINITION TO [user_name]
-- Adds db_datareader role to the user
EXEC sp_MSForEachDB
'
USE ?
IF NOT EXISTS(SELECT * FROM sys.database_principals WHERE name = ''user_name'')
BEGIN
CREATE USER [user_name] FOR LOGIN [user_name]
END
EXEC sp_addrolemember ''db_datareader'', ''user_name''
'
使用套件管理工具安裝及設定代理程式
本節說明如何使用套件管理工具,在運算執行個體上安裝運算工作負載代理,並設定該代理程式以連線至 SQL Server 執行個體。
如要安裝運算工作負載代理,請完成下列步驟:
Windows
在 Windows 上,您可以使用googet 套件管理指令安裝運算工作負載代理。這個指令會完成下列工作:
- 下載最新版代理程式。
- 建立名為
google-cloud-workload-agent的 Windows 服務。 - 建立每分鐘執行的排定工作,檢查服務是否正在執行,並視需要重新啟動服務。
如要在 Windows 運算執行個體上安裝及設定運算工作負載代理,請完成下列步驟:
使用 RDP 與運算執行個體建立連線。
如要瞭解如何執行這項操作,請參閱「使用 RDP 連線至 Windows VM」一文。
以管理員身分從 PowerShell 執行下列指令:
googet addrepo google-cloud-workload-agent https://packages.cloud.google.com/yuck/repos/google-cloud-workload-agent-windows-x86_64 googet install google-cloud-workload-agent開啟代理程式的設定檔:
%ProgramFiles%\Google\google-cloud-workload-agent\conf\configuration.json請按照「設定參數」一文的說明,為所有必要參數指定值。
儲存設定檔
重新啟動代理程式,變更才會生效。
RHEL
在 Red Hat Enterprise Linux (RHEL) 上,您可以使用 yum 套件管理指令安裝運算工作負載代理。這個指令會完成下列工作:
- 下載最新版代理程式。
- 為代理建立名為
google-cloud-workload-agent的systemd服務。 - 啟用並啟動
google-cloud-workload-agent服務。
如要在以 RHEL 為基礎的運算執行個體上安裝及設定運算工作負載代理程式,請完成下列步驟:
與運算執行個體建立 SSH 連線。
在終端機中安裝代理程式:
sudo tee /etc/yum.repos.d/google-cloud-workload-agent.repo << EOM [google-cloud-workload-agent] name=Google Cloud Agent for Compute Workloads baseurl=https://packages.cloud.google.com/yum/repos/google-cloud-workload-agent-$basearch enabled=1 gpgcheck=0 repo_gpgcheck=1 gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg EOM sudo yum install google-cloud-workload-agent開啟代理程式的設定檔:
/etc/google-cloud-workload-agent/configuration.json請按照「設定參數」一文的說明,為所有必要參數指定值。
儲存設定檔
重新啟動代理程式,變更才會生效。
SLES
在 SUSE Linux Enterprise Server (SLES) 上,您可以使用 zypper 套件管理指令安裝運算工作負載代理。這個指令會完成下列工作:
- 下載最新版代理程式。
- 為代理建立名為
google-cloud-workload-agent的systemd服務。 - 啟用並啟動
google-cloud-workload-agent服務。
如要在以 SLES 為基礎的運算執行個體上安裝及設定運算工作負載代理,請完成下列步驟:
與運算執行個體建立 SSH 連線。
在終端機中安裝代理程式:
sudo zypper addrepo --refresh https://packages.cloud.google.com/yum/repos/google-cloud-workload-agent-$basearch google-cloud-workload-agent sudo zypper install google-cloud-workload-agent開啟代理程式的設定檔:
/etc/google-cloud-workload-agent/configuration.json請按照「設定參數」一文的說明,為所有必要參數指定值。
儲存設定檔
重新啟動代理程式,變更才會生效。
Debian
在 Debian 上,您可以使用 apt 套件管理指令安裝運算工作負載代理。這個指令會完成下列工作:
- 下載最新版代理程式。
- 為代理建立名為
google-cloud-workload-agent的systemd服務。 - 啟用並啟動
google-cloud-workload-agent服務。
如要在以 Debian 為基礎的運算執行個體上安裝及設定運算工作負載代理,請完成下列步驟:
與運算執行個體建立 SSH 連線。
在終端機中安裝代理程式:
echo 'deb https://packages.cloud.google.com/apt google-cloud-workload-agent-x86-64-apt main' | sudo tee -a /etc/apt/sources.list.d/google-cloud-workload-agent.list sudo apt-get update sudo apt-get install google-cloud-workload-agent開啟代理程式的設定檔:
/etc/google-cloud-workload-agent/configuration.json請按照「設定參數」一文的說明,為所有必要參數指定值。
儲存設定檔
重新啟動代理程式,變更才會生效。
使用 VM 擴充功能管理工具,在 VM 機群上安裝及管理代理程式
本節說明如何使用 VM 擴充功能管理工具,在 VM 機群上安裝及管理運算工作負載代理。
VM 擴充功能管理工具政策可讓您執行下列工作:
- 全車隊安裝:在下列項目中安裝運算工作負載代理程式:
- 專案中的所有 VM,或是以標籤識別的部分 VM。 Google Cloud
- 可用區中的所有 VM,或透過標籤識別的 VM 子集。
- 設定管理:將自訂設定套用至政策管理的所有 VM 上的代理程式。
如要進一步瞭解 VM 擴充功能管理工具,請參閱「關於 VM 擴充功能管理工具」。
設定 VM 擴充功能管理工具
如要設定 VM 擴充功能管理工具,請完成下列步驟:
在 VM 機群上安裝及設定代理程式
如要使用 VM 擴充功能管理工具政策,在 VM 機群上安裝最新版運算工作負載代理,請參閱下列適當章節:
- 在 Google Cloud 專案的 VM 上安裝及設定代理程式
- 在特定可用區的 VM 上安裝及設定代理程式
在專案中的 VM 上安裝及設定代理程式 Google Cloud
如要使用 VM 擴充功能管理工具政策,在專案中的所有 VM 或標籤識別的部分 VM 上安裝代理程式,請完成下列步驟: Google Cloud
控制台
前往 Google Cloud 控制台的「VM extension policies」(VM 擴充功能政策) 頁面。
按一下「建立擴充功能政策」。
在「Name」(名稱) 欄位中,輸入政策名稱。
選用:在「Description」(說明) 欄位中輸入政策說明。
在「Priority」欄位中,指定優先順序值,解決政策間的衝突。數字越小越優先。預設值為
1000。在「範圍」部分,選取「全球推出」。
在「管理擴充功能」部分,按一下「新增擴充功能」,然後執行下列操作:
選用:如要將政策推出範圍限制在必要 VM,請按照下列步驟操作:
- 按一下「新增標籤」,然後加入可識別所需 VM 的標籤。
- 按一下「完成」。
點選「建立」。
gcloud
在終端機或 Cloud Shell 中執行 gcloud compute global-vm-extension-policies create 指令:
gcloud compute global-vm-extension-policies create POLICY_NAME \
--project=PROJECT_ID \
--extensions=google-cloud-workload-extension \
--rollout-predefined-plan=ROLL_OUT_SPEED \
[--description="<var>DESCRIPTION</var>" \]
[--inclusion-labels=KEY1=VALUE1,KEY2=VALUE2 \]
[--config-from-file=google-cloud-workload-extension="CONFIG_FILE_PATH" \]
[--priority=PRIORITY]
更改下列內容:
POLICY_NAME:VM 擴充功能政策的專屬名稱。PROJECT_ID:您要建立政策的Google Cloud 專案專案 IDROLL_OUT_SPEED:您希望政策的推出速度有多快。支援的值為slow_rollout(建議) 和fast_rollout。詳情請參閱「關於推出計畫」。或者,您也可以指定
--rollout-custom-plan選項,使用自訂推出計畫。詳情請參閱「關於推出計畫」。您可以使用
--rollout-predefined-plan或--rollout-custom-plan,但不能在同一個指令中同時使用兩者。DESCRIPTION:政策的選用說明。CONFIG_FILE_PATH:JSON 檔案的本機路徑,其中包含運算工作負載代理的設定。- 或者,如要以內嵌字串形式提供設定,請使用
--config標記,而非--config-from-file。例如:--config=google-cloud-workload-extension="CONFIG"。 - 您可以選擇使用
--config-from-file或--config,但不能在同一個指令中同時使用兩者。 - 如要瞭解代理程式支援的設定參數,請參閱「設定參數」。
- 或者,如要以內嵌字串形式提供設定,請使用
KEY_1=VALUE_1:以逗號分隔的清單,其中包含定義政策用來指定虛擬機的標籤的鍵/值組合。- 如要讓政策以 VM 為目標,VM 必須具備所有指定的標籤。
- 如果您多次指定
--inclusion-labels,政策會以符合任何所提供選取器的 VM 為目標 (邏輯OR)。如果省略這個標記,政策會以專案中的所有 VM 為目標。
PRIORITY:介於0到65535的整數,用於定義政策的優先順序。數字越小越優先。預設值為1000。詳情請參閱「政策優先順序和衝突解決方式」。
在特定可用區的 VM 上安裝及設定代理程式
如要使用 VM 擴充功能管理工具政策,在特定可用區的 VM 機群上安裝及設定最新版運算工作負載代理,請完成下列步驟:
控制台
前往 Google Cloud 控制台的「VM extension policies」(VM 擴充功能政策) 頁面。
按一下「建立擴充功能政策」。
在「Name」(名稱) 欄位中,輸入政策名稱。
選用:在「Description」(說明) 欄位中輸入政策說明。
在「Priority」欄位中,指定優先順序值,解決政策間的衝突。數字越小越優先。預設值為
1000。使用「Region」(區域) 和「Zone」(可用區) 清單,選取要套用這項政策的可用區。
在「管理擴充功能」部分,按一下「新增擴充功能」,然後執行下列操作:
- 在「擴充功能」清單中,選取「Google Cloud's Extension for Compute Workloads」。
將「版本」欄位留空。
這項政策會指示系統安裝最新版運算工作負載代理。
在「設定檔內容」欄位中,輸入要套用至代理程式的設定。
如要瞭解代理程式支援的 SQL Server 工作負載設定參數,請參閱「設定參數」。
按一下「完成」。
選用:如要將政策推出範圍限制在必要 VM,請按照下列步驟操作:
- 按一下「新增標籤」,然後加入可識別所需 VM 的標籤。
- 按一下「完成」。
點選「建立」。
gcloud
gcloud compute zone-vm-extension-policies create POLICY_NAME \ --zone=ZONE \ --extensions=google-cloud-workload-extension \ --config-from-file=google-cloud-workload-extension=CONFIG_FILE_PATH \ [--description="DESCRIPTION" \] [--inclusion-labels=KEY_1=VALUE_1 \] [--inclusion-labels=KEY_2=VALUE_2,KEY_3=VALUE_3 \] [--priority=PRIORITY]
更改下列內容:
POLICY_NAME:VM 擴充功能政策的名稱。如果區域中已有指定名稱的政策,這項指令就會失敗。
ZONE:要套用這項政策的可用區。CONFIG_FILE_PATH:JSON 檔案的本機路徑,其中包含運算工作負載代理的設定,可與 SQL Server 工作負載連線。- 或者,如要以內嵌字串形式提供設定,請使用
--config標記,而非--config-from-file。例如:--config=google-cloud-workload-extension="CONFIG"。Google Cloud 建議使用--config-from-file。 - 您可以選擇使用
--config-from-file或--config,但不能在同一個指令中同時使用兩者。 - 如要瞭解代理程式支援的 SQL Server 工作負載設定參數,請參閱「設定參數」。
- 或者,如要以內嵌字串形式提供設定,請使用
DESCRIPTION:政策的選用說明。KEY_1=VALUE_1:以逗號分隔的清單,其中包含定義政策用來指定虛擬機的標籤的鍵/值組合。- 如要讓政策以 VM 為目標,VM 必須具備所有指定的標籤。
- 如果您多次指定
--inclusion-labels,政策就會以符合任何所提供選取器的 VM 為目標 (邏輯OR)。如果省略這個標記,政策就會以指定可用區中的所有 VM 為目標。
PRIORITY:介於0到65535的整數,用於定義政策的優先順序。數字越小越優先。預設值為1000。
範例:
下列指令會在名為 test-project 的專案中建立名為 test-agent-policy 的政策,並在可用區 us-centrail-f 中部署的所有 VM 上安裝最新版運算工作負載代理。Google Cloud agent-config.json 中指定的設定會套用至代理程式。
gcloud compute zone-vm-extension-policies create test-agent-policy \ --project=test-project \ --zone=us-central1-f \ --extensions=google-cloud-workload-extension \ --config-file-path=google-cloud-workload-extension="/usr/agent-config.json"
管理 VM 機群中的代理程式
如要變更 VM 擴充功能管理工具政策管理運算工作負載代理的方式,請更新政策。更新政策後,VM 擴充功能管理工具通常會在 1 分鐘內,將變更內容套用至所有適用的 VM。如果您修改納入標籤,系統可能會根據 VM 是否符合更新後的標籤,在新 VM 上安裝運算工作負載代理,或從現有 VM 解除安裝。
以下各節說明如何管理運算工作負載代理,以執行下列操作:
修改 VM 機群的代理程式設定
如要修改您使用 VM 擴充功能管理工具政策,在 VM 機群上安裝的運算工作負載代理執行個體設定,請編輯該政策。
如要在 VM 叢集上修改代理程式設定,請完成下列步驟:
控制台
前往 Google Cloud 控制台的「VM extension policies」(VM 擴充功能政策) 頁面。
按一下要修改的政策。
在「擴充功能政策詳細資料」頁面中,按一下「編輯」。
在「管理擴充功能」部分,切換「Google Cloud 的 Compute Workloads 擴充功能」。
在「設定檔內容」欄位中,輸入要套用至代理程式的設定。
如要瞭解代理程式支援的設定參數,請參閱「設定參數」。
按一下「完成」。
按一下 [儲存]。
gcloud
如要修改 VM 叢集上 Agent for Compute Workloads 的設定,請執行 gcloud compute zone-vm-extension-policies update 指令。使用 gcloud 更新政策時,要求會完全取代現有政策。如果您省略任何選填欄位,系統會將這些欄位還原為預設值,而不是保留修改後政策的現有值。
如要修改代理程式設定,請按照下列步驟操作:
gcloud compute zone-vm-extension-policies update POLICY_NAME \
--zone=ZONE \
--extensions=google-cloud-workload-extension \
--config-from-file=google-cloud-workload-extension="CONFIG_FILE_PATH" \
[--inclusion-labels=KEY_1=VALUE_1 \]
[--inclusion-labels=KEY_2=VALUE_2,KEY_3=VALUE_3 \]
[--priority=PRIORITY_NUMBER \]
[--description="DESCRIPTION"]更改下列內容:
POLICY_NAME:要修改的 VM 擴充功能政策名稱。ZONE:政策適用的 Google Cloud 區域。CONFIG_FILE_PATH:JSON 檔案的本機路徑,其中包含運算工作負載代理的設定。- 您也可以使用
--config旗標,以內嵌字串的形式提供代理程式設定,而非使用--config-from-file。例如:--config=google-cloud-workload-extension="CONFIG"。Google Cloud 建議使用--config-from-file。 - 您可以選擇使用
--config-from-file或--config,但不能在同一個指令中同時使用兩者。 - 如要瞭解代理程式支援的設定參數,請參閱「設定參數」。
- 您也可以使用
KEY_1=VALUE_1:以半形逗號分隔的鍵/值組合清單,定義政策用來指定 VM 的標籤。- 如要讓政策以 VM 為目標,VM 必須具備所有指定的標籤。
- 如果您多次指定
--inclusion-labels,政策就會以符合任何所提供選取器的 VM 為目標 (邏輯OR)。如果省略這個標記,政策就會以指定可用區中的所有 VM 為目標。
PRIORITY_NUMBER:要為政策設定的優先順序。您可以指定0到65535的整數。DESCRIPTION:VM 擴充功能政策的說明。
更新全域政策,納入新區域
建立及推出全域政策後,如果您在新的可用區中建立 VM,VM 擴充功能管理工具不會自動將政策套用至新可用區中的 VM。如要在新區域中納入 VM,您必須重新啟動全域政策推出程序。
如要重新啟動全域政策推出程序,請完成下列步驟:
在終端機或 Cloud Shell 中,執行
gcloud compute global-vm-extension-policies update指令,並提供--rollout-entry-uuid選項,如下所示:gcloud compute global-vm-extension-policies update POLICY_NAME \ --project=PROJECT_ID \ --extensions=google-cloud-workload-extension \ --rollout-predefined-plan=ROLL_OUT_SPEED \ --config-from-file=google-cloud-workload-extension="CONFIG_FILE_PATH" \ --rollout-retry-uuid=UUID更改下列內容:
更新排除區域的全球政策
如要更新全域政策以排除區域,請完成下列步驟:
在終端機或 Cloud Shell 中執行
gcloud compute global-vm-extension-policies update指令,並提供自訂推出計畫,指定要套用政策的可用區:gcloud compute global-vm-extension-policies update POLICY_NAME \ --project=PROJECT_ID \ --extensions=google-cloud-workload-extension \ --rollout-custom-plan=projects/PROJECT_ID/locations/global/rolloutPlans/NEW_CUSTOM_PLAN_NAME \ --rollout-retry-uuid=UUID更改下列內容:
從 VM 機群解除安裝代理程式
如要從 VM 機群解除安裝運算工作負載代理,請刪除管理 VM 機群的 VM 擴充功能管理工具政策。
刪除政策時,如果另一個優先順序較低的有效政策適用於 VM,並宣告運算工作負載代理,則該代理程式會根據優先順序較低的政策,繼續安裝在 VM 上。
VM 擴充功能管理工具會在政策刪除後一分鐘內,從所有可存取的 VM 中移除代理程式。如果 VM 無法存取 (因為客體代理程式已移除或 VM 已刪除),VM 擴充功能管理工具會略過刪除運算工作負載代理的作業。如果這類 VM 再次可用,VM 擴充功能管理工具就會移除運算工作負載代理。
如要從 VM 機群解除安裝運算工作負載代理,請完成下列步驟:
控制台
前往 Google Cloud 控制台的「VM extension policies」(VM 擴充功能政策) 頁面。
按一下管理 VM 叢集上 Agent for Compute Workloads 的政策。
在「擴充功能政策詳細資料」頁面中,按一下「刪除」並確認刪除。
gcloud
gcloud compute zone-vm-extension-policies delete POLICY_NAME \ --project=PROJECT_ID \ --zone=ZONE
更改下列內容:
POLICY_NAME:要刪除的 VM 擴充功能政策名稱。PROJECT_ID:政策所在的 Google Cloud 專案 ID。ZONE:政策所在的 Google Cloud 區域。
驗證代理程式安裝作業
如要確認代理程式運作狀況符合預期,請完成下列步驟:
Windows
使用 RDP 與運算執行個體建立連線。
如要瞭解如何執行這項操作,請參閱「使用 RDP 連線至 Windows VM」一文。
以管理員身分從 PowerShell 執行下列指令:
$(Get-Service -Name 'google-cloud-workload-agent' -ErrorAction Ignore).Status如果代理程式正常運作,狀態會顯示為
Running。
RHEL
與運算執行個體建立 SSH 連線。
檢查代理程式套件的狀態:
systemctl status google-cloud-workload-agent如果代理程式套件運作正常,輸出內容會包含
active (running)。例如:google-cloud-workload-agent.service - Google Cloud Agent for Compute Workloads Loaded: loaded (/usr/lib/systemd/system/google-cloud-workload-agent.service; enabled; vendor preset: disabled) Active: active (running) since Sun 2025-07-30 18:59:12 UTC; 10s ago Main PID: 14412 (google_cloud_sq) Tasks: 7 Memory: 12.9M (max: 1.0G limit: 1.0G available: 1011.0M) CGroup: /system.slice/google-cloud-workload-agent.service └─ 14412 /usr/bin/google_cloud_sql_server_agent --action=run
SLES
與運算執行個體建立 SSH 連線。
檢查代理程式套件的狀態:
systemctl status google-cloud-workload-agent如果代理程式套件運作正常,輸出內容會包含
active (running)。例如:google-cloud-workload-agent.service - Google Cloud Agent for Compute Workloads Loaded: loaded (/usr/lib/systemd/system/google-cloud-workload-agent.service; enabled; vendor preset: disabled) Active: active (running) since Sun 2025-07-30 18:59:12 UTC; 10s ago Main PID: 14412 (google_cloud_sq) Tasks: 7 Memory: 12.9M (max: 1.0G limit: 1.0G available: 1011.0M) CGroup: /system.slice/google-cloud-workload-agent.service └─ 14412 /usr/bin/google_cloud_sql_server_agent --action=run
Debian
與運算執行個體建立 SSH 連線。
檢查代理程式套件的狀態:
systemctl status google-cloud-workload-agent如果代理程式套件運作正常,輸出內容會包含
active (running)。例如:google-cloud-workload-agent.service - Google Cloud Agent for Compute Workloads Loaded: loaded (/usr/lib/systemd/system/google-cloud-workload-agent.service; enabled; vendor preset: disabled) Active: active (running) since Sun 2025-07-30 18:59:12 UTC; 10s ago Main PID: 14412 (google_cloud_sq) Tasks: 7 Memory: 12.9M (max: 1.0G limit: 1.0G available: 1011.0M) CGroup: /system.slice/google-cloud-workload-agent.service └─ 14412 /usr/bin/google_cloud_sql_server_agent --action=run
設定參數
下表說明代理程式設定檔的參數。
| 參數 | |
|---|---|
log_level |
如要設定代理程式的記錄層級,請設定必要值。可用的記錄層級如下:
預設記錄層級為 |
log_to_cloud |
如要將代理的記錄重新導向至 Cloud Logging,請指定 |
agent_properties.log_usage_metrics |
如要啟用代理程式健康狀態指標的記錄功能,請將值設為 |
common_discovery.collection_frequency |
指定代理程式工作負載探索服務的執行頻率 (以秒為單位)。預設值為 請確認這個參數的值是以小寫 |
sqlserver_configuration.enabled |
如要在代理程式中啟用 SQL Server 指標收集功能,請將值設為 |
sqlserver_configuration.collection_configuration.collect_guest_os_metrics |
如要啟用 OS 指標收集功能,請將值設為 |
sqlserver_configuration.collection_configuration.collect_sql_metrics |
如要啟用 SQL Server 指標收集功能,請指定 |
sqlserver_configuration.collection_configuration.collection_frequency |
運算工作負載代理指標的收集頻率 (以秒為單位)。
預設值為 |
sqlserver_configuration.credential_configurations[].connection_parameters[].host |
SQL Server 主機名稱。 |
sqlserver_configuration.credential_configurations[].connection_parameters[].username |
指定用於查詢 SQL Server 執行個體的使用者帳戶。 如要設定帳戶權限,請查看 權限指令碼中列出的必要權限,並根據內部政策授予權限。 附註:如果使用 Windows 驗證,請務必以以下格式指定使用者名稱:
|
sqlserver_configuration.credential_configurations[].connection_parameters[].secret.project_id |
儲存密鑰的專案 ID。如果密鑰和主機 VM 執行個體位於相同專案,請將其設為空字串 ("") Google Cloud 。 |
sqlserver_configuration.credential_configurations[].connection_parameters[].secret.secret_name |
如要安全地提供資料庫使用者帳戶的密碼,供代理程式查詢 SQL Server,請在 Secret Manager 中指定密碼的名稱,該密碼包含資料庫使用者帳戶的安全憑證。 注意:密碼和主機 VM 執行個體必須位於同一個專案。 Google Cloud |
sqlserver_configuration.credential_configurations[].connection_parameters[].port |
指定 SQL Server 執行個體接受查詢的通訊埠。 |
sqlserver_configuration.credential_configurations[].remote_win.connection_parameters.host |
遠端 Windows VM 的 IP 位址或 FQDN |
sqlserver_configuration.credential_configurations[].remote_win.connection_parameters.username |
指定用來遠端連線至 Windows VM 的使用者帳戶。 |
sqlserver_configuration.credential_configurations[].remote_win.connection_parameters.secret.secret_name |
如要安全地提供 Windows 使用者帳戶的密碼,供代理程式用來遠端連線至 VM,請在 Secret Manager 中指定密碼所在的密碼名稱,該密碼包含資料庫使用者帳戶的安全憑證。 注意:密碼和主機 VM 執行個體必須位於同一個專案。 Google Cloud |
sqlserver_configuration.credential_configurations[].local_collection |
指定 |
sqlserver_configuration.credential_configurations[].remote_linux.connection_parameters.host |
遠端 Linux VM 的 IP 位址或 FQDN。 |
sqlserver_configuration.credential_configurations[].remote_linux.connection_parameters.username |
指定用來遠端連線至 Linux VM 的使用者帳戶。 |
sqlserver_configuration.credential_configurations[].remote_linux.connection_parameter.port |
指定遠端 Linux VM 的 SSH 通訊埠號碼。 |
sqlserver_configuration.credential_configurations[].remote_linux.linux_ssh_private_key_path |
指定 SSH 私密金鑰檔案的路徑。 |
sqlserver_configuration.credential_configurations[].vm_properties.instance_name |
指定 Compute Engine VM 執行個體的名稱。 注意:店面產品素材資源集合可選填此屬性。 |
sqlserver_configuration.credential_configurations[].vm_properties.instance_id |
指定 Compute Engine VM 執行個體的 ID。 注意:店面產品素材資源集合可選填此屬性。 |
sqlserver_configuration.collection_timeout |
收集指標的逾時時間 (以秒為單位)。預設值為 `10s`。 |
sqlserver_configuration.max_retries |
集合失敗時的重試次數上限。 預設值為 `3`。 |
sqlserver_configuration.retry_frequency |
指定集合失敗時,代理程式應重試的頻率。 預設值為 `3600s`。 |
sqlserver_configuration.remote_collection |
指定 |
設定檔範例
以下是範例設定,可讓運算工作負載代理連線至 SQL Server 執行個體:
本地收藏
{ "log_level": "INFO", "common_discovery": { "collection_frequency": "10800s" }, "sqlserver_configuration": { "enabled": true, "collection_configuration": { "collect_guest_os_metrics": true, "collect_sql_metrics": true, "collection_frequency": "60s" }, "credential_configurations": [ { "connection_parameters": [ { "host": ".", "username": "db_user_name", "secret": { "project_id": "", "secret_name": "idb_pwd_secret_name" }, "port": 1433 } ], "local_collection": true } ], "collection_timeout": "60s", "max_retries": 5, "retry_frequency": "3600s" } }
遠端收集
{ "log_level": "INFO", "common_discovery": { "collection_frequency": "10800s" }, "sqlserver_configuration": { "enabled": true, "collection_configuration": { "collect_guest_os_metrics": true, "collect_sql_metrics": true, "collection_frequency": "60s" }, "credential_configurations": [ { "connection_parameters": [ { "host": "sql_server_instance", "username": "db_user_name", "secret": { "project_id": "", "secret_name": "db_pwd_secret_name" }, "port": 1433 } ], "remote_win": { "connection_parameters": { "host": "sql_server_instance", "username": "user_name", "secret": { "project_id": "", "secret_name": "pwd_secret_name" } } }, "vm_properties": { "instance_name": "db01", "instance_id": "9999999999999999999" } }, { "connection_parameters": [ { "host": "sql_server_instance", "username": "db_user_name", "secret": { "project_id": "", "secret_name": "db_pwd_secret_name" }, "port": 1433 } ], "remote_linux": { "connection_parameters": { "host": "sql_server_instance", "username": "user_name", "secret": { "project_id": "", "secret_name": "pwd_secret_name" }, "port": 22 }, "linux_ssh_private_key_path": "path of the private key" }, "vm_properties": { "instance_name": "db02", "instance_id": "9999999999999999999" } } ], "collection_timeout": "10s", "max_retries": 3, "retry_frequency": "3600s", "remote_collection": true } }
檢查代理程式版本
如要查看代理程式版本,請完成下列步驟:
Windows
- 使用 RDP 連線至主體機器。
- 以管理員身分在 PowerShell 中執行下列指令:
googet installed google-cloud-workload-agent
RHEL
- 使用 SSH 連線至主體機器。
- 請執行下列指令:
yum info google-cloud-workload-agent
SUSE
- 使用 SSH 連線至主體機器。
- 請執行下列指令:
zypper info google-cloud-workload-agent
Debian
- 使用 SSH 連線至主體機器。
- 請執行下列指令:
dpkg -s google-cloud-workload-agent | grep version
重新啟動代理程式
如果 Agent for Compute Workloads 停止運作或更新設定,請重新啟動代理程式。
選取作業系統,然後按照下列步驟操作:
Windows
- 使用 RDP 連線至主體機器。
- 以管理員身分在 PowerShell 中執行下列指令:
Restart-Service -Name 'google-cloud-workload-agent' -Force
Linux
- 使用 SSH 連線至主體機器。
- 請執行下列指令:
sudo systemctl restart google-cloud-workload-agent
更新代理程式
為確保您使用最新版本的代理程式,請定期檢查更新並更新代理程式。
檢查是否有更新
選取作業系統,然後按照下列步驟操作:
Windows
- 使用 RDP 連線至主體機器。
- 以管理員身分在 PowerShell 中執行下列指令:
googet latest google-cloud-workload-agent
RHEL
- 使用 SSH 連線至主體機器。
- 請執行下列指令:
sudo yum check-update google-cloud-workload-agent
SLES
- 使用 SSH 連線至主體機器。
- 請執行下列指令:
sudo zypper list-updates -r google-cloud-workload-agent
Debian
- 使用 SSH 連線至主體機器。
- 請執行下列指令:
sudo apt list google-cloud-workload-agent
安裝更新
選取作業系統,然後按照下列步驟操作:
Windows
- 使用 RDP 連線至主體機器。
- 以管理員身分在 PowerShell 中執行下列指令:
googet install google-cloud-workload-agent
RHEL
- 使用 SSH 連線至主體機器。
- 請執行下列指令:
sudo yum --nogpgcheck update google-cloud-workload-agent
SLES
- 使用 SSH 連線至主體機器。
- 請執行下列指令:
sudo zypper --no-gpg-checks update google-cloud-workload-agent
Debian
- 使用 SSH 連線至主體機器。
- 請執行下列指令:
sudo apt-get install google-cloud-workload-agent
在 Cloud Logging 查看代理程式記錄
根據預設,運算工作負載代理程式的記錄會從 VM 執行個體重新導向至 Cloud Logging。
如要在 Logging 中查看代理程式的記錄,請按照下列步驟操作:
前往 Google Cloud 控制台的「Logs Explorer」頁面。
前往「Query」(查詢) 窗格。
從「資源」下拉式選單中選取「全域」,然後按一下「套用」。
在查詢編輯器中輸入
google-cloud-workload-agent。點選「執行查詢」。
您應該會看到在所有 VM 執行個體上執行的代理執行個體所產生的記錄。如要篩選特定電腦的記錄,請使用介面中的篩選器。
在 Cloud Logging 中停用代理程式記錄
如要停用將代理程式記錄預設重新導向至 Cloud Logging 的功能,請按照下列步驟操作:
與主機 VM 執行個體建立遠端桌面協定或 SSH 連線。
開啟代理程式的設定檔:
Windows
%ProgramFiles%\Google\google-cloud-workload-agent\conf\configuration.json
Linux
/etc/google-cloud-workload-agent/configuration.json
將屬性
log_to_cloud的值更新為false。儲存設定檔。
重新啟動代理程式,變更才會生效。
疑難排解
以下各節說明使用運算工作負載代理時的常見問題、原因和解決方法。
驗證範圍不足
問題:如果限制主機 VM 執行個體的存取權範圍,運算工作負載代理記錄檔可能會顯示 IAM 權限不足錯誤。
googleapi: Error 403: Request had insufficient authentication scopes.
Details:
[
{
"@type": "type.googleapis.com/google.rpc.ErrorInfo",
"domain": "googleapis.com",
"metadata": {
"method": "google.cloud.workloadmanager.datawarehouse.v1.DataCollectService.WriteInsight",
"service": "workloadmanager.googleapis.com"
},
"reason": "ACCESS_TOKEN_SCOPE_INSUFFICIENT"
}
]
More details:
Reason: insufficientPermissions, Message: Insufficient Permission
原因:運算工作負載代理需要主機 VM 執行個體具備最低 Cloud API 存取權範圍。
解決方法:如要解決這個問題,請啟用必要存取範圍
無法載入設定檔
問題:如果設定檔含有無效值,您會看到下列錯誤。
"Failed to load configuration","pid":3524,"error":"proto: (line 19:42): unknown
field "{field_name}"
解決方法:如要解決這個問題,請使用「設定參數」中的詳細資料更新設定檔。
無法初始化資料收集作業
問題:安裝代理程式後,如果設定檔未更新,您會看到下列錯誤訊息:
"Failed to initialize guest collection","pid":2112,"error":"invalid value for "user_name" "secret_name"
解決方法:如要解決這個問題,請使用設定參數初始化憑證設定。
後續步驟
- 進一步瞭解工作負載評估。