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

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

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

事前準備

安裝及設定 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 位址的運算執行個體上執行 MySQL 應用程式,則需要在執行個體的子網路上啟用私人 Google 存取權,這樣 Agent for Compute Workloads 才能存取 Google API 和服務。如要瞭解如何啟用私人 Google 存取權,請參閱「設定私人 Google 存取權」。

使用套件管理員安裝及設定代理程式

本節說明如何使用套件管理員,在運算執行個體上安裝 Agent for Compute Workloads,並設定該代理程式與 MySQL 執行個體連線。

如要安裝 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. 在「設定檔內容」欄位中,輸入要套用至代理程式的設定。

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

    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 的設定,可與 MySQL 工作負載連線。

    • 如要以內嵌字串形式提供設定,請使用 --config 旗標,而非 --config-from-file。例如:--config=google-cloud-workload-extension="CONFIG"。Google Cloud 建議使用 --config-from-file
    • 您可以選擇使用 --config-from-file--config,但不能在同一個指令中同時使用兩者。
    • 如要瞭解 MySQL 工作負載代理程式支援的設定參數,請參閱「設定參數」。
  • DESCRIPTION:政策的選用說明。

  • KEY_1=VALUE_1:以半形逗號分隔的鍵/值組合清單,定義政策用來指定 VM 的標籤。

    • 如要讓 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 連線至 MySQL 執行個體。驗證時會使用 Secret Manager 密碼,該密碼儲存在執行 MySQL 執行個體的相同 Google Cloud 專案中。

{
  "log_level": "INFO",
  "common_discovery": {
    "collection_frequency": "10800s"
  },
  "mysql_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 的設定參數,這些參數支援 MySQL 工作負載的評估:

參數
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 結尾。

mysql_configuration.enabled

Boolean

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

mysql_configuration.connection_parameters.username

String

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

mysql_configuration.connection_parameters.password

String

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

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

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

mysql_configuration.connection_parameters.secret.secret_name

String

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

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

mysql_configuration.connection_parameters.secret.project_id

String

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

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

mysql_configuration.connection_parameters.host

String

指定 MySQL 主機名稱。

mysql_configuration.connection_parameters.port

Int

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

後續步驟