為 Redis 工作負載設定代理程式

本文說明如何在 Compute Engine 執行個體上安裝 Agent for Compute Workloads,並設定代理程式,以便連線至在這些運算執行個體上執行的 Redis 工作負載。

安裝及設定代理程式後,代理程式會從 Redis 工作負載和基礎運算執行個體收集指標,並傳送至 Workload Manager。接著,您可以使用 Workload Manager 評估作業,掃描 Redis 工作負載是否偏離基礎架構、作業系統和工作負載設定的最佳做法。

事前準備

安裝及設定 Compute Workloads 專用代理程式前,請先確認符合下列必要條件:

代理程式所需的 IAM 角色

Compute Workloads 的代理程式會使用附加至運算執行個體的服務帳戶進行驗證,並存取 Google Cloud 資源。

為提高安全性,建議您使用單一用途的服務帳戶,而非 Compute Engine 預設服務帳戶

為確保服務帳戶具備必要權限,可讓 Compute Workloads 代理程式向Google Cloud 驗證身分並存取 Google Cloud 資源,請要求管理員在專案中授予服務帳戶下列 IAM 角色:

如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。

管理員或許也能透過自訂角色或其他預先定義的角色,授予服務帳戶必要權限。

啟用 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-agentsystemd 服務。
  • 啟用並啟動 google-cloud-workload-agent 服務。

如要在以 RHEL 為基礎的運算執行個體上安裝及設定 Agent for Compute Workloads,請完成下列步驟:

  1. 建立與運算執行個體的 SSH 連線。

  2. 在終端機中安裝代理程式:

    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
    
  3. 開啟代理程式的設定檔:

    /etc/google-cloud-workload-agent/configuration.json
    
  4. 設定參數所述,為所有必要參數指定值。

  5. 儲存設定檔

  6. 重新啟動代理程式,讓變更生效。

SLES

在 SUSE Linux Enterprise Server (SLES) 上,您可以使用 zypper 套件管理指令安裝 Agent for Compute Workloads。這個指令會完成下列工作:

  • 下載最新版代理程式。
  • 為代理建立名為 google-cloud-workload-agentsystemd 服務。
  • 啟用並啟動 google-cloud-workload-agent 服務。

如要在以 SLES 為基礎的運算執行個體上安裝及設定 Agent for Compute Workloads,請完成下列步驟:

  1. 建立與運算執行個體的 SSH 連線。

  2. 在終端機中安裝代理程式:

    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
    
  3. 開啟代理程式的設定檔:

    /etc/google-cloud-workload-agent/configuration.json
    
  4. 設定參數所述,為所有必要參數指定值。

  5. 儲存設定檔

  6. 重新啟動代理程式,讓變更生效。

Debian

在 Debian 上,您可以使用 apt 套件管理指令安裝 Agent for Compute Workloads。這項指令會完成下列工作:

  • 下載最新版代理程式。
  • 為代理建立名為 google-cloud-workload-agentsystemd 服務。
  • 啟用並啟動 google-cloud-workload-agent 服務。

如要在以 Debian 為基礎的運算執行個體上安裝及設定 Agent for Compute Workloads,請完成下列步驟:

  1. 建立與運算執行個體的 SSH 連線。

  2. 在終端機中安裝代理程式:

    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
    
  3. 開啟代理程式的設定檔:

    /etc/google-cloud-workload-agent/configuration.json
    
  4. 設定參數所述,為所有必要參數指定值。

  5. 儲存設定檔

  6. 重新啟動代理程式,讓變更生效。

Windows

在 Windows 上,您可以使用 googet 套件管理指令安裝 Agent for Compute Workloads。這項指令會完成下列工作:

  • 下載最新版代理程式。
  • 建立名為 google-cloud-workload-agent 的 Windows 服務。
  • 建立每分鐘執行的排程工作,檢查服務是否正在執行,並視需要重新啟動服務。

如要在 Windows 型運算執行個體上安裝及設定 Agent for Compute Workloads,請完成下列步驟:

  1. 使用遠端桌面協定與運算執行個體建立連線。

    如要瞭解如何執行這項操作,請參閱「使用 RDP 連線至 Windows VM」一文。

  2. 以管理員身分從 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
    
  3. 開啟代理程式的設定檔:

    %ProgramFiles%\Google\google-cloud-workload-agent\conf\configuration.json
    
  4. 設定參數所述,為所有必要參數指定值。

  5. 儲存設定檔

  6. 重新啟動代理程式,讓變更生效。

使用 VM 擴充功能管理工具,在一組 VM 上安裝及管理代理程式

設定 VM 擴充功能管理工具

如要設定 VM 擴充功能管理工具,請完成下列步驟:

為一組 VM 安裝代理程式

如要使用 VM 擴充功能管理工具政策,在特定可用區的 VM 叢集上安裝最新版 Agent for Compute Workloads,請完成下列步驟:

控制台

  1. 前往 Google Cloud 控制台的「VM extension policies」(VM 擴充功能政策) 頁面

    前往 VM 擴充功能政策

  2. 按一下「建立擴充功能政策」

  3. 在「Name」(名稱) 欄位中,輸入政策名稱。

  4. 選用:在「Description」(說明) 欄位中輸入政策的說明。

  5. 在「優先順序」欄位中,指定優先順序編號,以解決政策之間的衝突。數字越小越優先。預設值為 1000

  6. 使用「Region」(區域) 和「Zone」(可用區) 清單,選取要套用這項政策的可用區。

  7. 在「擴充功能」部分,按一下「新增擴充功能」,然後執行下列操作:

    1. 在「擴充功能」清單中,選取「Google Cloud's Extension for Compute Workloads」
    2. 將「版本」欄位留空。

      這會指示政策安裝最新版的 Agent for Compute Workloads。

    3. 在「設定檔內容」欄位中,輸入要套用至代理程式的設定。

      如要瞭解代理程式支援的 Redis 工作負載設定參數,請參閱「設定參數」。

    4. 按一下 [完成]

  8. 選用:如要將政策推出範圍限制在必要 VM,請按照下列步驟操作:

    1. 按一下「新增標籤」,然後加入可識別必要 VM 的標籤。
    2. 按一下 [完成]
  9. 點選「建立」

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:介於 065535 的整數,用於定義政策的優先順序。數字越小越優先。預設值為 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

  1. 建立與運算執行個體的 SSH 連線。

  2. 檢查代理程式套件的狀態:

    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

  1. 建立與運算執行個體的 SSH 連線。

  2. 檢查代理程式套件的狀態:

    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

  1. 建立與運算執行個體的 SSH 連線。

  2. 檢查代理程式套件的狀態:

    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

  1. 使用遠端桌面協定與運算執行個體建立連線。

    如要瞭解如何執行這項操作,請參閱「使用 RDP 連線至 Windows VM」一文。

  2. 以管理員身分從 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

String

如要設定代理程式的記錄層級,請設定必要值。可用的記錄層級如下:

  • DEBUG
  • INFO
  • WARNING
  • ERROR

預設記錄層級為 INFO。除非 Cloud Customer Care 指示您變更記錄層級,否則請勿擅自更動。

log_to_cloud

Boolean

如要將代理程式記錄重新導向至 Cloud Logging,請指定 true。預設值為 true

agent_properties.log_usage_metrics

Boolean

如要啟用代理程式健康狀態指標的記錄功能,請將值設為 true。預設值為 false

common_discovery.collection_frequency

Duration

以秒為單位指定代理程式工作負載探索服務的執行頻率。預設值為 10800s

請確認這個參數的值是以小寫 s 結尾。

redis_configuration.enabled

Boolean

如要讓代理程式從 Redis 執行個體收集指標,請將值設為 true。預設值為 false

redis_configuration.connection_parameters.username

String

指定代理程式用來查詢 Redis 執行個體的使用者帳戶。

redis_configuration.connection_parameters.password

String

指定代理程式用來查詢 Redis 執行個體的使用者帳戶純文字密碼。

建議您使用 secret.namesecret.project_id 參數,而非指定純文字密碼。

如要進行驗證,代理程式會依下列偏好順序使用參數:如果已指定 secret 參數集,則優先使用該參數集,而非 password 參數。建議您只在代理程式的設定檔中設定一個驗證選項。

redis_configuration.connection_parameters.secret.secret_name

String

選用。如要安全地提供使用者帳戶的密碼,供代理程式查詢 Redis 執行個體,請指定包含密碼的 Secret Manager 密鑰名稱。

如要進行驗證,代理程式會依下列偏好順序使用參數:如果已指定 secret 參數集,則優先使用該參數集,而非 password 參數。建議您只在代理程式的設定檔中設定一個驗證選項。

redis_configuration.connection_parameters.secret.project_id

String

選用。如要使用 secret.secret_name 參數驗證指定的使用者帳戶,請指定 Google Cloud 專案的專案 ID,其中儲存了 Secret Manager 密鑰。

如果密鑰和工作負載位於同一個 Google Cloud 專案,請將這個參數的值設為空字串 ("")。

redis_configuration.connection_parameters.host

String

指定 Redis 主機名稱。

redis_configuration.connection_parameters.port

Int

指定 Redis 執行個體接受查詢的通訊埠。

後續步驟