为 Oracle 工作负载设置代理

本文档介绍了如何在运行 Oracle 数据库工作负载的 Compute Engine 实例上安装、配置和验证 Agent for Compute Workloads。

代理通过查询 Oracle 数据库性能视图(例如 V$DATABASE、V$INSTANCE 和 V$DATAGUARD_STATS)和数据字典视图(例如 DBA_DATA_FILES 和 DBA_FREE_SPACE)来收集各种 Oracle 指标。然后,这些指标会被发送到 Cloud Monitoring,您可以在其中直观呈现和分析这些指标。请参阅支持的指标。

准备工作

在安装 Agent for Compute Workloads 以监控 Oracle 数据库工作负载之前,请确保满足以下前提条件:

查看系统要求

下表列出了可使用的 Oracle 版本和支持的操作系统版本:

操作系统 Oracle 版本 Oracle 版本
  • Red Hat Enterprise Linux 版本 7、8 和 9
  • Oracle Linux 版本 7、8 和 9
  • Oracle Database 19c
  • Oracle Database 23ai*
  • 企业版
  • 标准版
  • Express(免费)版

向服务账号授予 IAM 角色

Compute Workloads Agent 使用附加到计算实例的服务账号进行身份验证并访问 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 地址的计算实例上运行 Oracle 工作负载,则需要对该实例的子网启用专用 Google 访问通道,以便 Agent for Compute Workloads 可以访问 Google API 和服务。如需了解如何启用专用 Google 访问通道,请参阅配置专用 Google 访问通道。

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

本部分介绍如何使用软件包管理器在计算实例上安装 Agent for Compute Workloads,并将其配置为与 Oracle 实例连接。

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

  1. 创建仓库配置文件。

    sudo tee /etc/yum.repos.d/google-cloud-workload-agent.repo << EOM
    [google-cloud-workload-agent]
    name=Google Cloud Workload Agent
    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
    
  2. 更新软件包管理器的元数据:

    sudo yum makecache
    
  3. 安装 google-cloud-workload-agent rpm 软件包:

    sudo yum install google-cloud-workload-agent
    

安装适用于 Oracle 工作负载的代理后,请验证代理的安装。

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

本部分介绍如何使用虚拟机扩展管理器在虚拟机群组中安装和管理 Compute 工作负载代理。

借助虚拟机扩展程序管理器政策,您可以执行以下任务:

  • 在整个舰队范围内安装:在以下项上安装 Agent for Compute Workloads:
    • Google Cloud 项目中的所有虚拟机,或通过标签标识的虚拟机子集。
    • 可用区内的所有虚拟机,或由标签标识的部分虚拟机。
  • 配置管理:将自定义配置应用于政策管理的所有虚拟机上的代理。

如需详细了解虚拟机扩展程序管理器,请参阅虚拟机扩展程序管理器简介。

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

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

在一组虚拟机上安装和配置代理

如需使用虚拟机扩展程序管理器政策在虚拟机群组上安装最新版本的 Agent for Compute Workloads,请参阅相应部分:

在 Google Cloud 项目中的虚拟机上安装和配置代理

如需使用虚拟机扩展程序管理器政策在 Google Cloud 项目中的所有虚拟机上或通过标签标识的虚拟机子集上安装代理,请完成以下步骤:

控制台

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

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

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

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

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

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

  6. 在范围部分,选择全球发布。

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

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

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

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

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

    4. 点击完成。

    5. 在发布字段中,选择要使用的发布方案选项:缓慢发布(推荐)或快速发布。

      如需了解发布计划,请参阅发布计划简介。

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

    1. 点击添加标签,并添加用于标识所需虚拟机的标签。
    2. 点击完成。
  9. 点击创建。

gcloud

在终端或 Cloud Shell 中,运行 gcloud compute global-vm-extension-policies create 命令:

gcloud compute global-vm-extension-policies create POLICY_NAME \
    --project=PROJECT_ID \
    --extensions=google-cloud-workload-extension  \
    --rollout-predefined-plan=ROLL_OUT_SPEED \
    [--description="<var>DESCRIPTION</var>" \]
    [--inclusion-labels=KEY1=VALUE1,KEY2=VALUE2 \]
    [--config-from-file=google-cloud-workload-extension="CONFIG_FILE_PATH" \]
    [--priority=PRIORITY]

替换以下内容:

  • POLICY_NAME:虚拟机扩展程序政策的唯一名称。
  • PROJECT_ID:您要为其创建政策的Google Cloud 项目的项目 ID
  • ROLL_OUT_SPEED:您希望以多快的速度推出政策。支持的值包括 slow_rollout(推荐)和 fast_rollout。如需了解详情,请参阅发布计划简介。

  • 或者,您也可以通过指定 --rollout-custom-plan 选项来使用自定义发布计划。如需了解详情,请参阅发布计划简介。

  • 您可以使用 --rollout-predefined-plan 或 --rollout-custom-plan,但不能在同一命令中同时使用这两者。

  • DESCRIPTION:政策的可选说明。

  • CONFIG_FILE_PATH:包含 Agent for Compute Workloads 配置的 JSON 文件的本地路径。

    • 或者,如需以内嵌字符串的形式提供配置,请使用 --config 标志,而不是 --config-from-file。例如 --config=google-cloud-workload-extension="CONFIG"。
    • 您可以使用 --config-from-file 或 --config,但不能在同一命令中同时使用这两者。
    • 如需了解代理支持的配置参数,请参阅配置参数。
  • KEY_1=VALUE_1:一个逗号分隔列表,其中包含用于定义政策定位虚拟机的标签的键值对。

    • 如需让虚拟机成为政策的目标,该虚拟机必须具有所有指定的标签。
    • 如果您多次指定 --inclusion-labels,则政策会以与所提供的任何选择器匹配的虚拟机为目标(逻辑 OR)。如果您省略此标志,则政策会以项目中的所有虚拟机为目标。
  • PRIORITY:一个介于 0 到 65535 之间的整数,用于定义政策的优先级。数字越小,优先级越高。默认值为 1000。如需了解详情,请参阅政策优先级和冲突解决。

在特定可用区内的虚拟机上安装和配置代理

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

控制台

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

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

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

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

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

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

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

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

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

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

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

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

    4. 点击完成。

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

    1. 点击添加标签,并添加用于标识所需虚拟机的标签。
    2. 点击完成。
  9. 点击创建。

gcloud

gcloud 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:JSON 文件的本地路径,该文件包含 Agent for Compute Workloads 与 Oracle 工作负载连接的配置。

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

  • KEY_1=VALUE_1:一个逗号分隔列表,其中包含用于定义政策定位虚拟机的标签的键值对。

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

示例:

以下命令会在名为 test-project 的Google Cloud 项目中创建名为 test-agent-policy 的政策,该政策会在可用区 us-centrail-f 中部署的所有虚拟机上安装最新版本的 Agent for Compute Workloads。agent-config.json 中指定的配置会应用于代理。

gcloud 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"

管理一组虚拟机上的代理

如需更改虚拟机扩展程序管理器政策管理 Compute Workloads Agent 的方式,请更新该政策。更新政策时,虚拟机扩展程序管理器通常会在一分钟内将更改发布到所有适用的虚拟机。如果您修改了包含标签,则系统可能会在新虚拟机上安装 Agent for Compute Workloads,或根据虚拟机是否与更新后的标签匹配,从现有虚拟机中卸载该代理。

以下部分介绍了如何管理 Agent for Compute Workloads,以执行以下操作:

在一组虚拟机上修改代理配置

如需修改您使用虚拟机扩展程序管理器政策在虚拟机群组上安装的 Agent for Compute Workloads 实例的配置,您必须修改相应政策。

如需修改虚拟机群组中的代理配置,请完成以下步骤:

控制台

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

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

  2. 点击要修改的政策。

  3. 在延期政策详情页面中,点击修改。

  4. 在管理扩展程序部分,切换用于计算工作负载的 Google Cloud 扩展程序。

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

    如需了解代理支持的配置参数,请参阅配置参数

  6. 点击完成。

  7. 点击保存。

gcloud

如需修改虚拟机群组中 Agent for Compute Workloads 的配置,请运行 gcloud compute zone-vm-extension-policies update 命令。使用 gcloud 更新政策时,相应请求会完全替换现有政策。您省略的所有可选字段都会恢复为默认值,而不是保留修改后的政策中的现有值。

如需修改代理配置,请执行以下操作:

gcloud compute zone-vm-extension-policies update POLICY_NAME \
    --zone=ZONE \
    --extensions=google-cloud-workload-extension \
    --config-from-file=google-cloud-workload-extension="CONFIG_FILE_PATH" \
    [--inclusion-labels=KEY_1=VALUE_1 \]
    [--inclusion-labels=KEY_2=VALUE_2,KEY_3=VALUE_3 \]
    [--priority=PRIORITY_NUMBER \]
    [--description="DESCRIPTION"]

替换以下内容:

  • POLICY_NAME:您要修改的虚拟机扩展程序政策的名称。
  • ZONE:政策适用的 Google Cloud 可用区。
  • CONFIG_FILE_PATH:包含 Agent for Compute Workloads 配置的 JSON 文件的本地路径。

    • 您还可以使用 --config 标志(而非 --config-from-file)以内嵌字符串的形式提供代理配置。例如 --config=google-cloud-workload-extension="CONFIG"。 Google Cloud 建议您使用 --config-from-file。
    • 您可以使用 --config-from-file 或 --config,但不能在同一命令中同时使用这两者。
    • 如需了解代理支持的配置参数,请参阅配置参数
  • KEY_1=VALUE_1:逗号分隔列表,用于定义政策定位虚拟机的标签。

    • 如需让虚拟机成为政策的目标,该虚拟机必须具有所有指定的标签。
    • 如果您多次指定 --inclusion-labels,则政策会以与所提供的任何选择器匹配的虚拟机为目标(逻辑 OR)。如果您省略此标志,则政策会以指定可用区中的所有虚拟机为目标。
  • PRIORITY_NUMBER:您要为政策设置的优先级。您可以指定一个介于 0 到 65535 之间的整数。

  • DESCRIPTION:虚拟机扩展程序政策的说明。

更新全局政策以纳入新可用区

在创建并推出全局政策后,如果您在新可用区中创建虚拟机,虚拟机扩展程序管理器不会自动将该政策应用于新可用区中的虚拟机。如需将虚拟机纳入新可用区,您必须重新开始全球政策发布。

如需重新开始全球政策发布,请完成以下步骤:

  • 在终端或 Cloud Shell 中,运行 gcloud compute global-vm-extension-policies update 命令并提供 --rollout-entry-uuid 选项,如下所示:

    gcloud compute global-vm-extension-policies update POLICY_NAME \
        --project=PROJECT_ID \
        --extensions=google-cloud-workload-extension  \
        --rollout-predefined-plan=ROLL_OUT_SPEED \
        --config-from-file=google-cloud-workload-extension="CONFIG_FILE_PATH" \
        --rollout-retry-uuid=UUID
    

    替换以下内容:

    • UUID:用于标识重试请求的通用唯一标识符 (UUID)。您可以使用任何 UUID 生成器来创建 UUID。 如需了解详情,请参阅重试发布。
    • ROLL_OUT_SPEED:您希望以多快的速度推出政策。支持的值包括 slow_rollout(推荐)和 fast_rollout。如需了解详情,请参阅发布计划简介。

    • 或者,您也可以通过指定 --rollout-custom-plan 选项来使用自定义发布计划。如需了解详情,请参阅发布计划简介。

    • 您可以使用 --rollout-predefined-plan 或 --rollout-custom-plan,但不能在同一命令中同时使用这两者。

更新全局政策以排除可用区

如需更新全球政策以排除可用区,请完成以下步骤:

  • 在终端或 Cloud Shell 中,运行 gcloud compute global-vm-extension-policies update 命令,并提供指定应用政策的可用区的自定义发布计划:

    gcloud compute global-vm-extension-policies update POLICY_NAME \
        --project=PROJECT_ID \
        --extensions=google-cloud-workload-extension  \
        --rollout-custom-plan=projects/PROJECT_ID/locations/global/rolloutPlans/NEW_CUSTOM_PLAN_NAME \
        --rollout-retry-uuid=UUID
    

    替换以下内容:

    • NEW_CUSTOM_PLAN_NAME:新自定义发布方案的名称,用于标识应用政策的可用区。如需了解如何创建自定义发布计划,请参阅发布计划简介。
    • UUID:用于标识重试请求的通用唯一标识符 (UUID)。您可以使用任何 UUID 生成器来创建 UUID。 如需了解详情,请参阅重试发布。

从一组虚拟机中卸载代理

如需从虚拟机群组中卸载 Agent for Compute Workloads,您必须删除管理该虚拟机群组的虚拟机扩展程序管理器政策。

删除政策时,如果另一项有效的较低优先级政策应用于某个虚拟机并声明了 Agent for Compute Workloads,则该代理会根据较低优先级政策继续安装在该虚拟机上。

虚拟机扩展程序管理器会在政策删除后一分钟内从所有可访问的虚拟机中移除代理。如果由于客机代理被移除或虚拟机被删除而导致虚拟机无法访问,则虚拟机扩展程序管理器会跳过 Agent for Compute Workloads 的删除操作。如果此类虚拟机再次可用,则虚拟机扩展程序管理器会在此时移除 Agent for Compute Workloads。

如需从虚拟机舰队中卸载 Agent for Compute Workloads,请完成以下步骤:

控制台

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

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

  2. 点击用于管理虚拟机群组中 Agent for Compute Workloads 的政策。

  3. 在扩展程序政策详情页面中,点击删除并确认删除。

gcloud

gcloud compute zone-vm-extension-policies delete POLICY_NAME \
    --project=PROJECT_ID \
    --zone=ZONE

替换以下内容:

  • POLICY_NAME:您要删除的虚拟机扩展程序政策的名称。
  • PROJECT_ID:政策所在 Google Cloud 项目的 ID。
  • ZONE:该政策所在的 Google Cloud 可用区。

验证代理安装

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

  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

    配置参数

    Agent for Compute Workloads 支持以下针对 Oracle 的配置参数:

    参数 说明
    log_level

    String

    如需设置代理的日志记录级别,请添加日志级别。 可用的日志级别如下:
    • DEBUG
    • INFO
    • WARNING
    • ERROR
    默认值为 INFO。
    log_to_cloud

    Boolean

    如需将代理的日志重定向到 Cloud Logging,请指定 true。默认值为 true。

    oracle_configuration.enabled

    Boolean

    可选。确定 Oracle 服务是否处于活跃状态。如果设置为 true,或者未设置但存在工作负载,您可以配置发现和指标收集。如果设置为 false,则 Oracle 服务及其相关功能会被停用。

    仅当您指定 oracle_configuration.enabled: true 时,以下子参数才适用。
    oracle_configuration.oracle_discovery.enabled

    Boolean

    可选。确定 Oracle 发现是否处于活跃状态。

    默认值为 true。

    oracle_configuration.oracle_discovery.update_frequency

    Int

    可选。指定采样时间间隔(以秒为单位),用于确定 Agent for Compute Workloads 运行发现流程的频率。默认值为 3,600 秒(1 小时)。

    请确保该值以小写字母“s”结尾,表示秒。例如:30s。

    oracle_configuration.oracle_metrics.enabled

    Boolean

    可选。如需启用 Agent for Compute Workloads 以收集 Oracle 监控指标,请指定 true。默认值为 false。

    仅当您指定 oracle_metrics.enabled: true 时,以下子参数才适用。

    oracle_configuration.oracle_metrics.collection_frequency

    Int

    可选。指定采样时间间隔(以秒为单位),用于确定 Agent for Compute Workloads 查询 Oracle 数据库实例以收集 Oracle 监控指标的频率。默认值为 60 秒。

    请确保该值以小写字母“s”结尾,表示秒。例如:30s。

    oracle_configuration.oracle_metrics.query_timeout

    String

    可选。指定对 Oracle 数据库实例执行的每个查询的超时时间。默认值为 10 秒。

    请确保该值以小写字母“s”结尾,表示秒。例如:30s。

    oracle_configuration.oracle_metrics.connection_parameters.username

    String

    指定用于查询 Oracle 数据库实例的用户账号。

    确保此用户具有读取 Oracle 数据库中的性能视图所需的权限。

    oracle_configuration.oracle_metrics.connection_parameters.host

    String

    指定托管数据库实例的本地机器的标识符。

    oracle_configuration.oracle_metrics.connection_parameters.port

    Int

    指定 Oracle 数据库实例接收查询的端口。

    oracle_configuration.oracle_metrics.connection_parameters.service_name

    String

    指定您希望代理监控的 Oracle 数据库实例的服务名称。

    oracle_configuration.oracle_metrics.connection_parameters.secret.project_id

    String

    指定 Secret Manager 的项目 ID,以检索向数据库发出查询的用户的密码。

    oracle_configuration.oracle_metrics.connection_parameters.secret.secret_name

    String

    指定 Secret Manager 中存储用户账号密码的 Secret 的名称。

    收集和查看 Oracle 指标

    您可以为 Oracle 数据库工作负载启用指标收集功能。请参阅支持的指标。

    启用指标收集

    如需启用使用 Agent for Compute Workloads 收集 Oracle 指标的功能,请执行以下操作:

    1. 使用 SSH 连接到您的虚拟机实例。

    2. 以 Oracle 操作系统用户身份运行 oraenv 工具,以设置环境变量。我们假设您已在 /etc/oratab 文件中定义了 oracle 用户和 ORACLE_SID。

      sudo su - oracle
      export PATH=$PATH:/usr/local/bin
      . oraenv
      sqlplus / as sysdba
      
    3. 以 SYSDBA 或 SYSOPER 用户身份在 Oracle 数据库中创建一个用于监控的用户,并为其设置与您在前提条件中创建的 Secret 相匹配的密码。

      CREATE USER wlmagent IDENTIFIED BY password;
      
    4. 以 SYSDBA 或 SYSOPER 用户身份,向监控用户授予以下权限,以便其查询性能视图:

      • SESSION
      • SELECT_CATALOG_ROLE
      • SYSDG
      GRANT CREATE SESSION,SELECT_CATALOG_ROLE,SYSDG TO wlmagent;
      
    5. 退出 sqlplus 和 oracle 用户。

    6. 以根用户身份,使用您偏好的编辑器修改代理的配置文件。

      sudo nano /etc/google-cloud-workload-agent/configuration.json
      
    7. 在配置文件中,修改 oracle_metrics 部分以进行以下更新:

      1. 将参数 enabled 设置为 true。
      2. 设置 service_name 参数以指定您希望代理监控的 Oracle 实例的服务名称。
      3. 指定代理连接到数据库所用的 Oracle 用户名。
      4. 设置 host 和 port 参数,以便代理连接到您的数据库。
      5. 设置 secret 参数,以便代理检索以下用户名的密码:
        • project_id:包含 Secret Manager 数据的项目的 ID。
        • secret_name:Secret Manager 中的 Secret 名称。

      以下是一个配置文件示例:

      {
        "log_level": "INFO",
        "common_discovery": {"collection_frequency": "3600s" },
        "oracle_configuration": {
          "enabled": true,
          "oracle_metrics": {
            "enabled": true,
            "collection_frequency": "30s",
            "connection_parameters": [
              {
                "host": "localhost",
                "port": 1521,
                "service_name": "orcl",
                "username": "wlmagent",
                "secret": {
                  "project_id": "my-project",
                  "secret_name": "wlmagent_password"
                }
              }
            ]
          }
        }
      }
      
    8. 保存配置文件。

    9. 重启代理以使新设置生效。

    查看指标

    您可以使用 Metrics Explorer 或导入自定义信息中心来查看收集的指标,并监控 Oracle 性能和状态。

    在 Metrics Explorer 中查看指标

    如需在 Metrics Explorer 中查看 Oracle 指标,请执行以下操作:

    1. 在 Google Cloud 控制台中,前往 Monitoring。
    2. 点击 Metrics Explorer。
    3. 在查找资源类型和指标下,执行以下操作:
      1. 在资源类型部分,选择虚拟机实例。
      2. 对于指标,选择要查看的 Oracle 指标。

    您可以查看所选 Oracle 指标的实时数据和历史数据,并根据需要使用过滤条件和聚合。

    导入自定义信息中心

    如需查看代理收集的 Oracle 指标,您可以按照创建和管理自定义信息中心中的说明创建自定义 Cloud Monitoring 信息中心。

    我们提供了一个示例信息中心 oracle-status-overview.json 以及有关如何导入该信息中心的说明。oracle-status-overview.json 信息中心显示了以下 Oracle 指标图表:

    • 数据库时间细分
    • 数据库内存用量
    • 按等待类划分的平均活跃会话数
    • 磁盘 I/O
    • CPU 利用率
    • 网络流量

    如需导入 oracle-status-overview.json 信息中心,请执行以下操作:

    1. 验证 gcloud CLI 是否已安装且为最新版本。如需查看相关说明,请参阅安装 gcloud CLI。

    2. 从 Agent for Compute Workloads GitHub 代码库下载 oracle-status-overview.json 信息中心:

      $ curl -H "Accept: application/vnd.github.v3.raw" -o oracle-status-overview.json https://api.github.com/repos/GoogleCloudPlatform/workloadagent/contents/observability/dashboards/oracle-status-overview.json
      
    3. 运行以下命令以导入信息中心:

      gcloud alpha monitoring dashboards create --config-from-file=oracle-status-overview.json
      

      运行命令后,系统会在 Cloud Monitoring 中创建自定义信息中心。如需了解如何查看信息中心,请参阅查找和查看信息中心。

    支持的指标

    Agent for Compute Workloads 收集的所有 Oracle 指标都位于 workload.googleapis.com/oracle 路径下。

    以下是受支持的 Oracle 指标及其对应的 Cloud Monitoring 路径的列表:

    • 进程内存

      • 进程 (PGA) 内存用量(以字节为单位)。

        process/pga_memory/total_used_size

      • 已分配的进程 (PGA) 内存(以字节为单位)

        process/pga_memory/total_allocated_size

    • 共享内存

      • 共享内存 (SGA) 项的大小(以字节为单位)

        process/sga_memory/size

    • 系统等待事件

      • 注册的等待类的总等待次数

        sys_wait/count

      • 此等待类别的总等待时间(以秒为单位)

        sys_wait/time

      • 相应等待类别的总前台等待次数

        sys_wait/foreground/count

      • 相应等待类别的累计前台等待时间(以秒为单位)

        sys_wait/foreground/time

    • 系统已用时间

      • 执行数据库用户级调用的已用时间(以秒为单位)

        sys_time/db_time

      • 在数据库用户级调用上花费的 CPU 时间(以秒为单位)

        sys_time/db_cpu

      • SQL 语句的执行时长

        sys_time/sql_execute_elapsed_time

      • 解析 SQL 语句所花费的已用时间量

        sys_time/parse_time_elapsed

      • 运行 PL/SQL 解释器所花费的已用时间

        sys_time/pl_sql_execution_elapsed_time

      • 数据库后台进程消耗的已用时间(以秒为单位)

        sys_time/background_elapsed_time

    • I/O 统计信息

      • 读取操作(小规模 + 大规模)的总次数

        iostat/read_ops_count

      • 写入操作(小规模 + 大规模)的总次数

        iostat/write_ops_count

      • 读取的总字节数

        iostat/read_bytes_count

      • 写入的总字节数

        iostat/write_bytes_count

      • 每次 I/O 操作的平均延迟时间

        iostat/average_latency_seconds

    • 数据文件

      • 数据文件的分配大小(以字节为单位)

        data_files/total_bytes

      • 数据文件空间用量(以字节为单位)

        data_files/bytes_used

      • 数据文件可用空间(以字节为单位)

        data_files/available_bytes

      • 数据文件自动扩展限制(以字节为单位)

        data_files/max_bytes

      • 所用数据文件的百分比

        data_files/percent_used

    • 数据库实例

      • 实例正常运行时间(以秒为单位)

        instance/uptime

      • 实例状态

        instance/status

        此指标可具有以下值:

        UNKNOWN 0
        STARTED 1
        MOUNTED 2
        OPEN 3
        OPEN MIGRATE 4
      • 开放模式

        instance/db_open_mode

        此指标可具有以下值:

        UNKNOWN 0
        MOUNTED 1
        READ WRITE 2
        READ ONLY 3
        READ ONLY WITH APPLY 4
    • Oracle Data Guard

      • 重做应用延迟时间(以秒为单位)

        dataguard/apply_lag

      • 重做传输延迟(以秒为单位)

        dataguard/transport_lag

    管理代理

    重启代理

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

    1. 使用 SSH 连接到虚拟机实例。
    2. 运行以下命令:

      sudo systemctl restart google-cloud-workload-agent

    检查代理的版本

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

    1. 使用 SSH 连接到虚拟机实例。
    2. 运行以下命令:

      yum info google-cloud-workload-agent
      

    检查更新

    1. 使用 SSH 连接到虚拟机实例。
    2. 运行以下命令:

      sudo yum check-update google-cloud-workload-agent

    更新代理

    为确保您使用的是最新版本的代理,请定期检查更新并更新代理:

    1. 使用 SSH 连接到虚拟机实例。
    2. 运行以下命令:

      sudo yum --nogpgcheck update google-cloud-workload-agent

    查看代理日志

    Agent for Compute Workloads 日志位于 /var/log/google-cloud-workload-agent.log。

    日志详细程度由 log_level 参数控制。设置 DEBUG 日志级别会包含更多信息,以便排查特定问题,但会生成明显更大的日志。

    默认情况下,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. 使用 SSH 连接到您的虚拟机实例。

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

      /etc/google-cloud-workload-agent/configuration.json
    3. 对于 log_to_cloud 属性,将值更新为 false。

    4. 保存配置文件。

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

    问题排查

    以下部分介绍了与使用 Oracle 数据库工作负载代理相关的常见问题及其原因和解决方法。

    IAM 权限不足

    问题:Agent for Compute Workloads 日志显示 IAM 权限不足错误。

    googleapi: Error 403: The client is not authorized to make this request.
    

    原因:代理使用的服务账号没有访问 Google Cloud API 所需的 IAM 权限,或者 Secret Manager 中没有 Oracle 用户的密码。

    解决方法:如需解决此问题,请确保虚拟机服务账号具有前提条件中提及的 IAM 角色和权限。

    身份验证范围不足

    问题:Agent for Compute Workloads 日志显示身份验证范围不足。

    googleapi: Error 403: Request had insufficient authentication scopes.
    

    原因:代理使用的服务账号没有所需的访问权限范围。

    解决方法:如需解决此问题,请将虚拟机的访问权限范围配置为 cloud-platform。

    指标未显示在 Cloud Monitoring 中

    问题:Cloud Monitoring 中未显示来自 Agent for Compute Workloads 的指标。

    原因:

    以下是导致此问题的可能原因:

    • Agent for Compute Workloads 使用的服务账号缺少必要的 IAM 权限。
    • 代理使用的 Oracle 用户没有足够的权限来查询性能视图。
    • 代理的配置存在错误。

    解决方法:

    • 如需解决服务账号权限不足的问题,请执行以下操作:

      1. 在 Google Cloud 控制台中,前往虚拟机实例详情页面,然后记下运行代理的实例所使用的服务账号。
      2. 前往 IAM 和管理页面,确保服务账号拥有前提条件中提及的所有必需角色和权限。向服务账号授予任何所需的缺失角色。
    • 如需解决 Oracle 用户权限不足的问题,请执行以下操作:

      1. 验证 Oracle 用户是否拥有以下查询性能视图所需的权限:

        • SESSION
        • SELECT_CATALOG_ROLE
        • SYSDG
      2. 运行以下 SQL 命令,授予所有缺失的权限:

        -- Grant the "wlmagent" user the required permissions
        GRANT CREATE SESSION,SELECT_CATALOG_ROLE,SYSDG TO USERNAME;
        
    • 如需解决代理配置错误的问题,请执行以下操作:

      1. 使用 SSH 连接到您的虚拟机实例。
      2. 查看代理的日志,以确定是否存在任何错误或问题导致无法收集指标。您可以在 /var/log/google-cloud-workload-agent.log 中找到日志。

        查找权限错误、配置错误或连接问题。

      3. 纠正所有错误。

      4. 重启代理,并检查指标收集是否已开始。

    未能加载配置文件

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

    "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"
    

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