为 Microsoft SQL Server 工作负载设置代理

本文档介绍了如何在 Compute Engine 实例上安装适用于计算工作负载的代理,以及如何配置该代理以连接到在这些计算实例上运行的 Microsoft SQL Server 工作负载。

安装并配置代理后,该代理会从 SQL Server 工作负载和底层计算实例收集指标,并将其发送到 Workload Manager。然后,您可以使用 Workload Manager 评估扫描 SQL Server 工作负载,以检测基础设施、操作系统和工作负载配置是否偏离最佳实践。

准备工作

在安装和配置适用于 Compute Workloads 的代理之前,您需要确保满足以下前提条件:

代理所需的 IAM 角色

适用于计算工作负载的代理使用附加到计算实例的服务账号进行身份验证并访问 Google Cloud 资源。

为了提高安全性,我们建议您使用单用途服务账号,而不是使用 Compute Engine 默认服务账号

为确保服务账号具有让 Agent for Compute Workloads 向Google Cloud 进行身份验证并访问 Google Cloud 资源所需的权限,请让您的管理员为服务账号授予项目的以下 IAM 角色:

如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限

您的管理员还可以通过自定义角色或其他预定义角色向服务账号授予所需的权限。

启用对 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 地址的计算实例上运行 SQL Server 应用,则需要在该实例的子网上启用专用 Google 访问通道,以便 Agent for Compute Workloads 可以访问 Google API 和服务。如需了解如何启用专用 Google 访问通道,请参阅配置专用 Google 访问通道

SQL Server 上所需的权限

使用以下脚本为代理中配置的用户账号分配所需权限。

    USE [master]
    GO 
GRANT VIEW SERVER STATE TO [user_name] GRANT VIEW ANY DEFINITION TO [user_name]
-- Adds db_datareader role to the user EXEC sp_MSForEachDB ' USE ? IF NOT EXISTS(SELECT * FROM sys.database_principals WHERE name = ''user_name'') BEGIN CREATE USER [user_name] FOR LOGIN [user_name] END EXEC sp_addrolemember ''db_datareader'', ''user_name'' '

使用软件包管理器安装和配置代理

本部分介绍如何使用软件包管理器在计算实例上安装适用于计算工作负载的代理,并将其配置为与 SQL Server 实例连接。

如需安装适用于 Compute 工作负载的代理,请完成以下步骤:

Windows

在 Windows 上,您可以使用 googet 软件包管理命令安装 Agent for Compute Workloads。此命令可完成以下任务:

  • 下载最新版本的代理。
  • 创建名为 google-cloud-workload-agent 的 Windows 服务。
  • 创建每分钟运行一次的计划任务,以检查服务是否正在运行,并在必要时重启服务。

如需在基于 Windows 的计算实例上安装和配置 Agent for Compute Workloads,请完成以下步骤:

  1. 使用 RDP 与计算实例建立连接。

    如需了解如何执行此操作,请参阅使用 RDP 连接到 Windows 虚拟机

  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

在 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. 重启代理以使更改生效。

使用虚拟机扩展程序管理器在一组虚拟机上安装和管理代理

设置虚拟机扩展程序管理器

如需设置虚拟机扩展程序管理器,请完成以下步骤:

在一组虚拟机上安装代理

如需使用虚拟机扩展管理器政策在特定可用区内的虚拟机群上安装最新版本的 Compute 工作负载代理,请完成以下步骤:

控制台

  1. 在 Google Cloud 控制台中,前往虚拟机扩展政策页面。

    前往“虚拟机扩展程序政策”页面

  2. 点击创建扩展程序政策

  3. 名称字段中,输入政策的名称。

  4. 可选:在说明字段中,输入政策的说明。

  5. 优先级字段中,指定一个优先级编号,以解决政策之间的冲突。数字越小,优先级越高。默认值为 1000

  6. 使用区域可用区列表,选择您要应用此政策的可用区。

  7. 扩展程序部分中,点击添加扩展程序,然后执行以下操作:

    1. 扩展程序列表中,选择 Google Cloud 的计算工作负载扩展程序
    2. 版本字段留空。

      这会指示政策安装最新版本的 Agent for Compute Workloads。

    3. 配置文件内容字段中,输入要应用于代理的配置。

      如需了解代理为 SQL Server 工作负载支持的配置参数,请参阅配置参数

    4. 点击完成

  8. 可选:如需将政策发布限制为仅针对所需的虚拟机,请执行以下操作:

    1. 点击添加标签,然后添加用于标识所需虚拟机的标签。
    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:虚拟机扩展政策的名称。

    如果相应政策已存在于该可用区中,则该命令会失败。

  • ZONE:您要应用此政策的地区。

  • CONFIG_FILE_PATH:本地路径,指向包含 Compute Workloads 代理配置的 JSON 文件,该配置用于将该代理与 SQL Server 工作负载相关联。

    • 或者,如需以内嵌字符串的形式提供配置,请使用 --config 标志,而不是 --config-from-file。例如 --config=google-cloud-workload-extension="CONFIG"。 Google Cloud 建议您使用 --config-from-file
    • 您可以使用 --config-from-file--config,但不能在同一命令中同时使用这两者。
    • 如需了解代理为 SQL Server 工作负载支持的配置参数,请参阅配置参数
  • DESCRIPTION:政策的可选说明。

  • KEY_1=VALUE_1:以英文逗号分隔的键值对列表,用于定义政策定位虚拟机的标签。

    • 如需让虚拟机成为政策的目标对象,该虚拟机必须具有所有指定的标签。
    • 如果您多次指定 --inclusion-labels,则政策会针对与所提供的任意选择器匹配的虚拟机(逻辑 OR)。如果您省略此标志,则政策会针对指定可用区中的所有虚拟机。
  • PRIORITY:一个介于 065535 之间的整数,用于定义政策的优先级。数字越小,优先级越高。默认值为 1000

示例

以下命令会在名为 test-project 的Google Cloud 项目中创建一个名为 test-agent-policy 的政策,该政策会在部署在可用区 us-centrail-f 中的所有虚拟机上安装最新版本的 Compute 工作负载代理。 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"

验证代理安装

如需验证代理是否按预期运行,请完成以下步骤:

Windows

  1. 使用 RDP 与计算实例建立连接。

    如需了解如何执行此操作,请参阅使用 RDP 连接到 Windows 虚拟机

  2. 以管理员身份从 PowerShell 运行以下命令:

    $(Get-Service -Name 'google-cloud-workload-agent' -ErrorAction Ignore).Status
    

    如果代理按预期运行,您会看到状态为 Running

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

配置参数

下表介绍了代理的配置文件的参数。

参数
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 结尾。

sqlserver_configuration.enabled

Boolean

如需在代理中启用 SQL Server 指标收集功能,请将该值设置为 true。 默认值为 false

sqlserver_configuration.collection_configuration.collect_guest_os_metrics

Boolean

如需启用操作系统指标收集,请将该值设置为 true。 默认值为 true
除非有 Cloud Customer Care 的指导,否则请勿将 sqlserver_configuration.collection_configuration.collect_guest_os_metrics 设置为 false

sqlserver_configuration.collection_configuration.collect_sql_metrics

Boolean

如需启用 SQL Server 指标收集功能,请指定 true。 默认值为 true
除非有 Cloud Customer Care 的指导,否则请勿将 sqlserver_configuration.collection_configuration.collect_sql_metrics 设置为 false

sqlserver_configuration.collection_configuration.collection_frequency

Duration

Agent for Compute Workloads 指标收集频率(以秒为单位)。 默认值为 3600s。 您可以更新收集频率。不过,我们建议您保留默认值。

sqlserver_configuration.credential_configurations[].connection_parameters[].host

String

SQL Server 主机名。

sqlserver_configuration.credential_configurations[].connection_parameters[].username

String

指定用于查询 SQL Server 实例的用户账号。 如需配置账号权限,请查看 权限脚本中所需的权限,并根据您的内部政策授予这些权限。

注意:如果您使用的是 Windows 身份验证,请务必指定以下格式的用户名: domain-name\\user-name

sqlserver_configuration.credential_configurations[].connection_parameters[].secret.project_id

String

存储 Secret 的项目的 ID。如果 Secret 和主机虚拟机实例位于同一 Google Cloud 项目中,请将其设置为空字符串 ("")。

sqlserver_configuration.credential_configurations[].connection_parameters[].secret.secret_name

String

为了安全地提供代理用于查询 SQL Server 的数据库用户账号的密码,请指定 Secret Manager 中包含数据库用户账号的安全凭证的 Secret 的名称。

注意:Secret 和主机虚拟机实例必须存在于同一 Google Cloud 项目中。

sqlserver_configuration.credential_configurations[].connection_parameters[].port

Int

指定 SQL Server 实例接收查询的端口。

sqlserver_configuration.credential_configurations[].remote_win.connection_parameters.host

String

远程 Windows 虚拟机的 IP 地址或 FQDN

sqlserver_configuration.credential_configurations[].remote_win.connection_parameters.username

String

指定用于远程连接到 Windows 虚拟机的用户账号。

sqlserver_configuration.credential_configurations[].remote_win.connection_parameters.secret.secret_name

String

为了安全地提供代理用于远程连接到虚拟机的 Windows 用户账号的密码,请指定 Secret Manager 中包含数据库用户账号的安全凭据的 Secret 的名称。

注意:Secret 和主机虚拟机实例必须存在于同一 Google Cloud 项目中。

sqlserver_configuration.credential_configurations[].local_collection

Boolean

指定 true 以表明代理正在进行本地数据收集。 默认值为 true

sqlserver_configuration.credential_configurations[].remote_linux.connection_parameters.host

String

远程 Linux 虚拟机的 IP 地址或 FQDN。

sqlserver_configuration.credential_configurations[].remote_linux.connection_parameters.username

String

指定用于远程连接到 Linux 虚拟机的用户账号。

sqlserver_configuration.credential_configurations[].remote_linux.connection_parameter.port

Int

为远程 Linux 虚拟机指定 SSH 端口号。

sqlserver_configuration.credential_configurations[].remote_linux.linux_ssh_private_key_path

String

指定 SSH 私钥文件的路径。

sqlserver_configuration.credential_configurations[].vm_properties.instance_name

String

指定 Compute Engine 虚拟机实例的名称。

注意:对于本地合集,此属性为可选属性。

sqlserver_configuration.credential_configurations[].vm_properties.instance_id

String

指定 Compute Engine 虚拟机实例的 ID。

注意:对于本地合集,此属性为可选属性。

sqlserver_configuration.collection_timeout

Duration

指标收集的超时时间(以秒为单位)。默认值为 `10s`。

sqlserver_configuration.max_retries

Int

发生收集失败时的重试次数上限。 默认值为 `3`。

sqlserver_configuration.retry_frequency

Duration

指定代理在收集失败时应重试的频率。 默认值为 `3600s`。

sqlserver_configuration.remote_collection

Boolean

指定 true 以表明代理正在进行远程数据收集。 默认值为 false

示例配置文件

以下是一个示例配置,可让 Agent for Compute Workloads 连接到 SQL Server 实例:

本地收集

{
"log_level": "INFO",
"common_discovery": {
    "collection_frequency": "10800s"
},
"sqlserver_configuration": {
    "enabled": true,
    "collection_configuration": {
        "collect_guest_os_metrics": true,
        "collect_sql_metrics": true,
        "collection_frequency": "60s"
    },
    "credential_configurations": [
        {
            "connection_parameters": [
                {
                    "host": ".",
                    "username": "db_user_name",
                    "secret": {
                        "project_id": "",
                        "secret_name": "idb_pwd_secret_name"
                    },
                    "port": 1433
                }
            ],
            "local_collection": true
        }
    ],
    "collection_timeout": "60s",
    "max_retries": 5,
    "retry_frequency": "3600s"
}
}

远程收集

{
"log_level": "INFO",
"common_discovery": {
    "collection_frequency": "10800s"
},
"sqlserver_configuration": {
    "enabled": true,
    "collection_configuration": {
        "collect_guest_os_metrics": true,
        "collect_sql_metrics": true,
        "collection_frequency": "60s"
    },
    "credential_configurations": [
        {
            "connection_parameters": [
                {
                    "host": "sql_server_instance",
                    "username": "db_user_name",
                    "secret": {
                        "project_id": "",
                        "secret_name": "db_pwd_secret_name"
                    },
                    "port": 1433
                }
            ],
            "remote_win": {
                "connection_parameters": {
                    "host": "sql_server_instance",
                    "username": "user_name",
                    "secret": {
                        "project_id": "",
                        "secret_name": "pwd_secret_name"
                    }
                }
            },
            "vm_properties": {
                "instance_name": "db01",
                "instance_id": "9999999999999999999"
            }
        },
        {
            "connection_parameters": [
                {
                    "host": "sql_server_instance",
                    "username": "db_user_name",
                    "secret": {
                        "project_id": "",
                        "secret_name": "db_pwd_secret_name"
                    },
                    "port": 1433
                }
            ],
            "remote_linux": {
                "connection_parameters": {
                    "host": "sql_server_instance",
                    "username": "user_name",
                    "secret": {
                        "project_id": "",
                        "secret_name": "pwd_secret_name"
                    },
                    "port": 22
                },
                "linux_ssh_private_key_path": "path of the private key"
            },
            "vm_properties": {
                "instance_name": "db02",
                "instance_id": "9999999999999999999"
            }
        }
    ],
    "collection_timeout": "10s",
    "max_retries": 3,
    "retry_frequency": "3600s",
    "remote_collection": true
}
}

检查代理的版本

如需查看代理的版本,请完成以下步骤:

Windows

  1. 使用 RDP 连接到宿主机。
  2. 以管理员身份从 PowerShell 运行以下命令:
    googet installed google-cloud-workload-agent

RHEL

  1. 使用 SSH 连接到宿主机。
  2. 运行以下命令:
    yum info google-cloud-workload-agent

SUSE

  1. 使用 SSH 连接到宿主机。
  2. 运行以下命令:
    zypper info google-cloud-workload-agent

Debian

  1. 使用 SSH 连接到宿主机。
  2. 运行以下命令:
    dpkg -s google-cloud-workload-agent | grep version

重启代理

如果 Agent for Compute Workloads 停止运行或您要更新其配置,请重启该代理。

选择您的操作系统,然后按照以下步骤操作:

Windows

  1. 使用 RDP 连接到宿主机。
  2. 以管理员身份从 PowerShell 运行以下命令:
    Restart-Service -Name 'google-cloud-workload-agent' -Force

Linux

  1. 使用 SSH 连接到宿主机。
  2. 运行以下命令:
    sudo systemctl restart google-cloud-workload-agent

更新代理

为了确保您使用的是最新版本的代理,您需要定期检查更新并相应更新该代理。

检查更新

选择您的操作系统,然后按照以下步骤操作:

Windows

  1. 使用 RDP 连接到宿主机。
  2. 以管理员身份从 PowerShell 运行以下命令:
    googet latest google-cloud-workload-agent

RHEL

  1. 使用 SSH 连接到宿主机。
  2. 运行以下命令:
    sudo yum check-update google-cloud-workload-agent

SLES

  1. 使用 SSH 连接到宿主机。
  2. 运行以下命令:
    sudo zypper list-updates -r google-cloud-workload-agent

Debian

  1. 使用 SSH 连接到宿主机。
  2. 运行以下命令:
    sudo apt list google-cloud-workload-agent

安装更新

选择您的操作系统,然后按照以下步骤操作:

Windows

  1. 使用 RDP 连接到宿主机。
  2. 以管理员身份从 PowerShell 运行以下命令:
    googet install google-cloud-workload-agent

RHEL

  1. 使用 SSH 连接到宿主机。
  2. 运行以下命令:
    sudo yum --nogpgcheck update google-cloud-workload-agent

SLES

  1. 使用 SSH 连接到宿主机。
  2. 运行以下命令:
    sudo zypper --no-gpg-checks update google-cloud-workload-agent

Debian

  1. 使用 SSH 连接到宿主机。
  2. 运行以下命令:
    sudo apt-get install google-cloud-workload-agent

在 Cloud Logging 中查看该代理的日志

默认情况下,Agent for Compute Workloads 的日志会从虚拟机实例重定向到 Cloud Logging

如需在 Logging 中查看代理的日志,请按以下步骤操作:

  1. 在 Google Cloud 控制台中,前往 Logs Explorer 页面。

    转到日志浏览器

  2. 转到查询窗格。

  3. 资源下拉菜单中选择全局,然后点击应用

  4. 在查询编辑器中,输入 google-cloud-workload-agent

  5. 点击运行查询

    您应该会看到在所有虚拟机实例上运行的代理实例生成的日志。如需过滤特定机器的日志,请使用界面中提供的过滤条件。

在 Cloud Logging 中停用代理的日志

如需停用将代理日志默认重定向到 Cloud Logging 的功能,请按以下步骤操作:

  1. 与主机虚拟机实例建立 RDP 或 SSH 连接。

  2. 打开代理的配置文件:

    Windows

    %ProgramFiles%\Google\google-cloud-workload-agent\conf\configuration.json

    Linux

    /etc/google-cloud-workload-agent/configuration.json

  3. 对于 log_to_cloud 属性,将值更新为 false

  4. 保存配置文件。

  5. 重启代理以使此更改生效。

问题排查

以下部分介绍了与使用 Compute Workloads 代理相关的常见问题及其原因和解决方法。

身份验证范围不足

问题:如果您限制主机虚拟机实例的访问权限范围,则 Agent for Compute Workloads 日志可能会显示 IAM 权限不足错误。

  googleapi: Error 403: Request had insufficient authentication scopes.
  Details:
  [
    {
      "@type": "type.googleapis.com/google.rpc.ErrorInfo",
      "domain": "googleapis.com",
      "metadata": {
        "method": "google.cloud.workloadmanager.datawarehouse.v1.DataCollectService.WriteInsight",
        "service": "workloadmanager.googleapis.com"
      },
      "reason": "ACCESS_TOKEN_SCOPE_INSUFFICIENT"
    }
  ]

More details: Reason: insufficientPermissions, Message: Insufficient Permission

原因:Agent for Compute Workloads 要求主机虚拟机实例具有最小 Cloud API 访问权限范围。

解决方法:如需解决此问题,请启用所需的访问范围

未能加载配置文件

问题:如果配置文件包含无效值,您会看到以下错误。

"Failed to load configuration","pid":3524,"error":"proto: (line 19:42): unknown
field "{field_name}"

解决方法:如需解决此问题,请使用配置参数中的详细信息更新配置文件。

未能初始化数据收集

问题:安装代理后,如果未更新配置文件,您会看到以下错误:

"Failed to initialize guest collection","pid":2112,"error":"invalid value for "user_name" "secret_name"

解决方法:如需解决此问题,请使用配置参数初始化凭据配置。

后续步骤