本文档介绍了如何在 Compute Engine 实例上安装适用于计算工作负载的代理,以及如何配置该代理以连接到在该计算实例上运行的 Redis 工作负载。
准备工作
在安装和配置适用于 Compute Workloads 的代理之前,您需要确保满足以下前提条件:
- 您已在计算实例上部署 Redis 工作负载。
- 您已向附加到计算实例的服务账号授予所需的 IAM 角色。
- 您已启用对 Cloud API 的访问权限。
所需 IAM 角色
适用于计算工作负载的代理使用附加到计算实例的服务账号进行身份验证并访问 Google Cloud 资源。
为了提高安全性,我们建议您使用单用途服务账号,而不是使用 Compute Engine 默认服务账号。
为确保服务账号具有让 Agent for Compute Workloads 向Google Cloud 进行身份验证并访问 Google Cloud 资源所需的权限,请让您的管理员为服务账号授予项目的以下 IAM 角色:
-
Compute Viewer (
roles/compute.viewer
):用于从 Compute 实例中收集指标。 -
Workload Manager Insights Writer (
roles/workloadmanager.insightWriter
):用于将数据写入 Workload Manager 数据仓库。 -
(推荐)日志写入者 (
roles/logging.logWriter
): 用于将代理日志发送到 Cloud Logging。 -
(可选)Secret Manager Secret Accessor (
roles/secretmanager.secretAccessor
):如果您使用 Secret Manager 存储用于连接到 Redis 实例的密码。
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
您的管理员还可以通过自定义角色或其他预定义角色向服务账号授予所需的权限。
启用对 Cloud API 的访问权限
Compute Engine 建议将实例配置为允许针对所有 Cloud API 的所有访问权限范围,并且仅使用实例服务账号的 IAM 权限来控制对Google Cloud 资源的访问权限。如需了解详情,请参阅创建使用用户管理的服务账号的虚拟机。
如果您限制对 Cloud API 的访问权限,则 Agent for Compute Workloads 要求主机计算实例至少具有以下 Cloud API 访问权限范围:
https://www.googleapis.com/auth/cloud-platform
如需了解详情,请参阅范围最佳实践。
如果您是在没有外部 IP 地址的计算实例上运行 Redis 应用,则需要对该实例的子网启用专用 Google 访问通道,以便 Agent for 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-agent
的systemd
服务。 - 启用并启动
google-cloud-workload-agent
服务。
如需在基于 RHEL 的 Compute 实例上安装和配置 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 与计算实例建立连接。
如需了解如何执行此操作,请参阅使用 RDP 连接到 Windows 虚拟机。
以管理员身份从 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
与您的计算实例建立 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 与计算实例建立连接。
如需了解如何执行此操作,请参阅使用 RDP 连接到 Windows 虚拟机。
以管理员身份从 PowerShell 运行以下命令:
$(Get-Service -Name 'google-cloud-workload-agent' -ErrorAction Ignore).Status
如果代理按预期运行,您会看到状态为
Running
。
示例配置文件
以下是一个示例配置,可让 Compute Workloads 代理与 Redis 实例建立连接。对于身份验证,系统会使用存储在 Redis 实例运行的同一 Google Cloud 项目中的 Secret Manager Secret。
{
"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
}
}
}
配置参数
下表介绍了支持 Redis 工作负载评估的 Agent for Compute Workloads 的配置参数:
参数 | |
---|---|
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 Secret 的名称。 对于身份验证,代理会按以下优先顺序使用参数:如果指定了 |
redis_configuration.connection_parameters.secret.project_id |
可选。如需使用 如果 Secret 和工作负载位于同一 Google Cloud 项目中,则将此形参的值设置为空字符串 ( |
redis_configuration.connection_parameters.host |
指定 Redis 主机名。 |
redis_configuration.connection_parameters.port |
指定 Redis 实例接受查询的端口。 |