本文說明如何在 Compute Engine 執行個體上安裝 Agent for Compute Workloads,並設定代理程式,以便連線至在這些運算執行個體上執行的 Redis 工作負載。
安裝及設定代理程式後,代理程式會從 Redis 工作負載和基礎運算執行個體收集指標,並傳送至 Workload Manager。接著,您可以使用 Workload Manager 評估作業,掃描 Redis 工作負載是否偏離基礎架構、作業系統和工作負載設定的最佳做法。
事前準備
安裝及設定 Compute Workloads 專用代理程式前,請先確認符合下列必要條件:
- 您已在一或多個運算執行個體上部署 Redis 工作負載。
- 您已授予代理程式必要的 IAM 角色。
- 您已啟用 Cloud API 的存取權。
代理程式所需的 IAM 角色
Compute Workloads 的代理程式會使用附加至運算執行個體的服務帳戶進行驗證,並存取 Google Cloud 資源。
為提高安全性,建議您使用單一用途的服務帳戶,而非 Compute Engine 預設服務帳戶。
為確保服務帳戶具備必要權限,可讓 Compute Workloads 代理程式向Google Cloud 驗證身分並存取 Google Cloud 資源,請要求管理員在專案中授予服務帳戶下列 IAM 角色:
-
從 Compute 執行個體收集指標:
Compute 檢視者 (
roles/compute.viewer) -
將資料寫入 Workload Manager 資料倉儲:
Workload Manager Insights Writer (
roles/workloadmanager.insightWriter) -
將代理程式記錄檔傳送至 Cloud Logging:
記錄檔寫入者 (
roles/logging.logWriter) -
如果您使用 Secret Manager 儲存密碼,以便連線至 Redis 執行個體:
Secret Manager 密鑰存取者 (
roles/secretmanager.secretAccessor)
如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。
管理員或許也能透過自訂角色或其他預先定義的角色,授予服務帳戶必要權限。
啟用 Cloud API 存取權
Compute Engine 建議您將執行個體設為允許所有 Cloud API 的所有存取權範圍,並只使用執行個體服務帳戶的身分與存取權管理權限,控管對Google Cloud 資源的存取權。詳情請參閱「建立採使用者代管服務帳戶的 VM」。
如果限制 Cloud API 的存取權,則 Compute Workloads 代理程式至少需要在主機運算執行個體上具備下列 Cloud API 存取範圍:
https://www.googleapis.com/auth/cloud-platform
詳情請參閱「範圍最佳做法」。
如果您在沒有外部 IP 位址的運算執行個體上執行 Redis 應用程式,則需要在執行個體的子網路上啟用私人 Google 存取權,Compute Workloads 專用代理程式才能存取 Google API 和服務。如要瞭解如何啟用私人 Google 存取權,請參閱「設定私人 Google 存取權」。
使用套件管理員安裝及設定代理程式
本節說明如何使用套件管理員,在運算執行個體上安裝 Compute Workloads 專用代理程式,並設定該代理程式以連線至 Redis 執行個體。
如要安裝 Compute Workloads 專用的代理程式,請完成下列步驟:
RHEL
在 Red Hat Enterprise Linux (RHEL) 上,您可以使用 yum 套件管理指令安裝 Agent for Compute Workloads。這個指令會完成下列工作:
- 下載最新版代理程式。
- 為代理建立名為
google-cloud-workload-agent的systemd服務。 - 啟用並啟動
google-cloud-workload-agent服務。
如要在以 RHEL 為基礎的運算執行個體上安裝及設定 Agent for Compute Workloads,請完成下列步驟:
建立與運算執行個體的 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 套件管理指令安裝 Agent for Compute Workloads。這個指令會完成下列工作:
- 下載最新版代理程式。
- 為代理建立名為
google-cloud-workload-agent的systemd服務。 - 啟用並啟動
google-cloud-workload-agent服務。
如要在以 SLES 為基礎的運算執行個體上安裝及設定 Agent for Compute Workloads,請完成下列步驟:
建立與運算執行個體的 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 套件管理指令安裝 Agent for Compute Workloads。這項指令會完成下列工作:
- 下載最新版代理程式。
- 為代理建立名為
google-cloud-workload-agent的systemd服務。 - 啟用並啟動
google-cloud-workload-agent服務。
如要在以 Debian 為基礎的運算執行個體上安裝及設定 Agent for Compute Workloads,請完成下列步驟:
建立與運算執行個體的 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如設定參數所述,為所有必要參數指定值。
儲存設定檔
重新啟動代理程式,讓變更生效。
Windows
在 Windows 上,您可以使用 googet 套件管理指令安裝 Agent for Compute Workloads。這項指令會完成下列工作:
- 下載最新版代理程式。
- 建立名為
google-cloud-workload-agent的 Windows 服務。 - 建立每分鐘執行的排程工作,檢查服務是否正在執行,並視需要重新啟動服務。
如要在 Windows 型運算執行個體上安裝及設定 Agent for Compute Workloads,請完成下列步驟:
使用遠端桌面協定與運算執行個體建立連線。
如要瞭解如何執行這項操作,請參閱「使用 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如設定參數所述,為所有必要參數指定值。
儲存設定檔
重新啟動代理程式,讓變更生效。
使用 VM 擴充功能管理工具,在一組 VM 上安裝及管理代理程式
設定 VM 擴充功能管理工具
如要設定 VM 擴充功能管理工具,請完成下列步驟:
為一組 VM 安裝代理程式
如要使用 VM 擴充功能管理工具政策,在特定可用區的 VM 叢集上安裝最新版 Agent for Compute Workloads,請完成下列步驟:
控制台
前往 Google Cloud 控制台的「VM extension policies」(VM 擴充功能政策) 頁面。
按一下「建立擴充功能政策」。
在「Name」(名稱) 欄位中,輸入政策名稱。
選用:在「Description」(說明) 欄位中輸入政策的說明。
在「優先順序」欄位中,指定優先順序編號,以解決政策之間的衝突。數字越小越優先。預設值為
1000。使用「Region」(區域) 和「Zone」(可用區) 清單,選取要套用這項政策的可用區。
在「擴充功能」部分,按一下「新增擴充功能」,然後執行下列操作:
- 在「擴充功能」清單中,選取「Google Cloud's Extension for Compute Workloads」。
將「版本」欄位留空。
這會指示政策安裝最新版的 Agent for Compute Workloads。
在「設定檔內容」欄位中,輸入要套用至代理程式的設定。
如要瞭解代理程式支援的 Redis 工作負載設定參數,請參閱「設定參數」。
按一下 [完成]。
選用:如要將政策推出範圍限制在必要 VM,請按照下列步驟操作:
- 按一下「新增標籤」,然後加入可識別必要 VM 的標籤。
- 按一下 [完成]。
點選「建立」。
gcloud
gcloud beta 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 檔案的本機路徑,其中包含 Agent for Compute Workloads 的設定,可與 Redis 工作負載連線。- 或者,如要以內嵌字串形式提供設定,請使用
--config旗標,而非--config-from-file。例如:--config=google-cloud-workload-extension="CONFIG"。Google Cloud 建議使用--config-from-file。 - 您可以使用
--config-from-file或--config,但不能在同一個指令中同時使用兩者。 - 如要瞭解代理程式支援的 Redis 工作負載設定參數,請參閱「設定參數」。
- 或者,如要以內嵌字串形式提供設定,請使用
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 上安裝最新版 Agent for Compute Workloads。Google Cloud 系統會將 agent-config.json 中指定的設定套用至代理程式。
gcloud beta 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"
驗證代理程式安裝
如要確認代理程式是否正常運作,請完成下列步驟:
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
Windows
使用遠端桌面協定與運算執行個體建立連線。
如要瞭解如何執行這項操作,請參閱「使用 RDP 連線至 Windows VM」一文。
以管理員身分從 PowerShell 執行下列指令:
$(Get-Service -Name 'google-cloud-workload-agent' -ErrorAction Ignore).Status如果代理程式正常運作,狀態會顯示為
Running。
設定檔範例
以下是範例設定,可讓 Agent for Compute Workloads 連線至 Redis 執行個體。驗證時會使用 Secret Manager 密鑰,該密鑰儲存在執行 Redis 執行個體的 Google Cloud 專案中。
{
"log_level": "INFO",
"common_discovery": {
"collection_frequency": "10800s"
},
"redis_configuration": {
"enabled": true,
"connection_parameters": {
"username": "db_user_name",
"secret": {
"secret_name": "db_pwd_secret_name",
"project_id": ""
},
"host": "localhost",
"port": 1433
}
}
}
設定參數
下表說明 Agent for Compute Workloads 的設定參數,這些參數支援 Redis 工作負載的評估:
| 參數 | |
|---|---|
log_level |
如要設定代理程式的記錄層級,請設定必要值。可用的記錄層級如下:
預設記錄層級為 |
log_to_cloud |
如要將代理程式記錄重新導向至 Cloud Logging,請指定 |
agent_properties.log_usage_metrics |
如要啟用代理程式健康狀態指標的記錄功能,請將值設為 |
common_discovery.collection_frequency |
以秒為單位指定代理程式工作負載探索服務的執行頻率。預設值為 請確認這個參數的值是以小寫 |
redis_configuration.enabled
|
如要讓代理程式從 Redis 執行個體收集指標,請將值設為 |
redis_configuration.connection_parameters.username |
指定代理程式用來查詢 Redis 執行個體的使用者帳戶。 |
redis_configuration.connection_parameters.password |
指定代理程式用來查詢 Redis 執行個體的使用者帳戶純文字密碼。 建議您使用 如要進行驗證,代理程式會依下列偏好順序使用參數:如果已指定 |
redis_configuration.connection_parameters.secret.secret_name |
選用。如要安全地提供使用者帳戶的密碼,供代理程式查詢 Redis 執行個體,請指定包含密碼的 Secret Manager 密鑰名稱。 如要進行驗證,代理程式會依下列偏好順序使用參數:如果已指定 |
redis_configuration.connection_parameters.secret.project_id |
選用。如要使用 如果密鑰和工作負載位於同一個 Google Cloud 專案,請將這個參數的值設為空字串 ( |
redis_configuration.connection_parameters.host |
指定 Redis 主機名稱。 |
redis_configuration.connection_parameters.port |
指定 Redis 執行個體接受查詢的通訊埠。 |