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

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

事前準備

安裝及設定 Agent for 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 存取權」。

安裝及設定代理程式

如要在運算執行個體上安裝 Agent for Compute Workloads,並設定與 Redis 執行個體連線,請完成下列步驟:

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. 使用遠端桌面協定與運算執行個體建立連線。

    如需相關資訊,請參閱「使用遠端桌面協定連線至 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. 重新啟動代理程式,讓變更生效。

驗證代理程式安裝

如要確認代理程式是否正常運作,請完成下列步驟:

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. 使用遠端桌面協定與運算執行個體建立連線。

    如需相關資訊,請參閱「使用遠端桌面協定連線至 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 執行個體接受查詢的通訊埠。

後續步驟