为 SAP 工作负载设置代理

SAP 解决方案的 Workload Manager 使用 Google Cloud的 Agent for SAP 来检测和收集元数据,以评估 SAP 系统配置。如需支持并监控在 Google Cloud上运行的 SAP 系统(包括 SAP NetWeaver、SAP HANA、SAP ASE 和 SAP MaxDB),所有运行 SAP 系统的虚拟机实例上都需要安装 Agent for SAP 和 SAP Host Agent。

准备工作

在安装和配置 Google Cloud的 Agent for SAP 之前,您需要确保满足以下前提条件:

代理所需的 IAM 角色

Agent for SAP 使用附加到计算实例的服务账号进行身份验证并访问 Google Cloud 资源。

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

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

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

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

启用对 Cloud API 的访问权限

Compute Engine 建议将实例配置为允许针对所有 Cloud API 的所有访问权限范围。如需控制对 Google Cloud资源的访问权限,请仅使用实例服务账号的 IAM 权限。如需了解详情,请参阅创建使用用户管理的服务账号的虚拟机。

如果您限制了对 Cloud API 的访问权限,则 Agent for SAP 要求主机计算实例至少具有以下 Cloud API 访问权限范围:

https://www.googleapis.com/auth/cloud-platform

如需了解详情,请参阅范围最佳实践。

如果您是在没有外部 IP 地址的计算实例上运行 SAP 应用,则需要对该实例的子网启用专用 Google 访问通道,以便 Agent for SAP 可以访问 Google API 和服务。如需了解如何启用专用 Google 访问通道,请参阅配置专用 Google 访问通道。

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

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

如果您想在一组虚拟机上安装和配置代理,则可以改为使用虚拟机扩展程序管理器政策。如需了解详情,请参阅使用虚拟机扩展程序管理器在虚拟机舰队上安装和管理代理。

安装代理

如果尚未安装,请在运行 SAP 工作负载的所有计算实例上安装 Google Cloud的 Agent for SAP:

如需在 Compute Engine 实例上安装代理,请按照以下步骤操作:

  1. 与您的计算实例建立 SSH 连接。
  2. 在您的终端中,通过运行特定于您的操作系统的命令来安装此代理:
    • (推荐)如需安装代理 3.15 版(最新版),请运行以下命令:

      RHEL

      sudo tee /etc/yum.repos.d/google-cloud-sap-agent.repo << EOM
      [google-cloud-sap-agent]
      name=Google Cloud Agent for SAP
      baseurl=https://packages.cloud.google.com/yum/repos/google-cloud-sap-agent-el$(cat /etc/redhat-release | cut -d . -f 1 | tr -d -c 0-9)-x86_64
      enabled=1
      gpgcheck=1
      repo_gpgcheck=0
      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-sap-agent

      SLES15

      sudo zypper addrepo --refresh https://packages.cloud.google.com/yum/repos/google-cloud-sap-agent-sles15-x86_64 google-cloud-sap-agent
      sudo zypper install google-cloud-sap-agent

      SLES 12

      sudo zypper addrepo --refresh https://packages.cloud.google.com/yum/repos/google-cloud-sap-agent-sles12-x86_64 google-cloud-sap-agent
      sudo zypper install google-cloud-sap-agent
    • 如需安装代理的特定版本,请运行以下命令:

      RHEL

      sudo tee /etc/yum.repos.d/google-cloud-sap-agent.repo << EOM
      [google-cloud-sap-agent]
      name=Google Cloud Agent for SAP
      baseurl=https://packages.cloud.google.com/yum/repos/google-cloud-sap-agent-el$(cat /etc/redhat-release | cut -d . -f 1 | tr -d -c 0-9)-x86_64
      enabled=1
      gpgcheck=1
      repo_gpgcheck=0
      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-sap-agent-VERSION_NUMBER.x86_64

      SLES15

      sudo zypper addrepo --refresh https://packages.cloud.google.com/yum/repos/google-cloud-sap-agent-sles15-x86_64 google-cloud-sap-agent
      sudo zypper install google-cloud-sap-agent-VERSION_NUMBER.x86_64

      SLES 12

      sudo zypper addrepo --refresh https://packages.cloud.google.com/yum/repos/google-cloud-sap-agent-sles12-x86_64 google-cloud-sap-agent
      sudo zypper install google-cloud-sap-agent-VERSION_NUMBER.x86_64

      将 VERSION_NUMBER 替换为您要安装的代理的版本号,例如 3.1-606637668。如需了解您可以安装的代理版本,请参阅列出代理的所有可用版本。

      如需了解如何将代理降级到特定版本,请参阅降级 Google Cloud的 Agent for SAP。

配置 Workload Manager 评估指标收集

安装 Agent for SAP 后,您需要配置代理以收集 Workload Manager 评估指标。

如需配置 Google Cloud的 Agent for SAP,请完成以下步骤:

  1. 如需让代理收集 Workload Manager 评估指标,请运行以下命令:

    sudo /usr/bin/google_cloud_sap_agent configure -feature=workload_evaluation -enable

  2. 可选:如需在 Workload Manager 中启用“SAP HANA 数据分析”和“SAP HANA 安全最佳实践”指标收集功能,请在代理的配置文件中于 collect_workload_validation_metrics 之后添加 workload_validation_db_metrics_config 部分,然后指定以下参数:

    • hana_db_user:指定用于查询 SAP HANA 实例的用户账号。
    • hostname:指定托管 SAP HANA 实例的机器(本地或远程)的标识符。
    • port:指定 SAP HANA 实例接收查询的端口。
    • hana_db_password_secret_name:指定 Secret Manager 中用来存储用户账号密码的 Secret 的名称。

      作为 Secret 的替代方案,您可以使用 hdbuserstore_key 配置参数。

    • hdbuserstore_key:指定 hdbuserstore 密钥,它用于对您为 hana_db_user 指定的用户进行身份验证

      如果您指定 hdbuserstore_key,则跳过指定 hostname 和 port 参数。

    如需了解这些参数,请参阅配置参数。

    以下示例是Google Cloud的 Agent for SAP 的已完成配置文件,该代理在Compute Engine 实例上运行,其中启用了 Workload Manager 评估指标收集功能。

    对于 SAP HANA 身份验证,代理会按以下优先顺序使用参数:如果指定了 hdbuserstore_key 配置参数,则优先使用该参数,而不是 hana_db_password 参数,后者优先于 hana_db_password_secret_name 参数。我们建议您在配置文件中仅设置一个身份验证选项。

    • 以下示例使用安全用户存储区 (hdbuserstore) 中的密钥进行 SAP HANA 身份验证:
      {
        "provide_sap_host_agent_metrics": true,
        "bare_metal": false,
        "log_level": "INFO",
        "log_to_cloud": true,
        "collection_configuration": {
          "collect_workload_validation_metrics": true,
          "workload_validation_db_metrics_frequency": 3600,
          "workload_validation_db_metrics_config": {
            "hana_db_user": "system",
            "sid": "DEH",
            "hdbuserstore_key": "user_store_key"
          },
          "collect_process_metrics": false
        },
        "discovery_configuration": {
          "enable_discovery": true,
          "enable_workload_discovery": true
        },
        "hana_monitoring_configuration": {
          "enabled": false
        }
      }
    • 以下示例使用用户名和 Secret Manager 中的 Secret 进行 SAP HANA 身份验证:
      {
        "provide_sap_host_agent_metrics": true,
        "bare_metal": false,
        "log_level": "INFO",
        "log_to_cloud": true,
        "collection_configuration": {
          "collect_workload_validation_metrics": true,
          "workload_validation_db_metrics_frequency": 3600,
          "workload_validation_db_metrics_config": {
            "hana_db_user": "system",
            "sid": "DEH",
            "hana_db_password_secret_name": "instance-id-hana-db-password-secret",
            "hostname": "localhost",
            "port": "30015"
          },
          "collect_process_metrics": false
        },
        "discovery_configuration": {
          "enable_discovery": true,
          "enable_workload_discovery": true
        },
        "hana_monitoring_configuration": {
          "enabled": false
        }
      }
    • 以下示例使用用户名和密码进行 SAP HANA 身份验证。我们建议您改用 Secret Manager 中的 Secret 或安全用户存储区 (hdbuserstore) 中的密钥进行 SAP HANA 身份验证。
      {
        "provide_sap_host_agent_metrics": true,
        "bare_metal": false,
        "log_level": "INFO",
        "log_to_cloud": true,
        "collection_configuration": {
          "collect_workload_validation_metrics": true,
          "workload_validation_db_metrics_frequency": 3600,
          "workload_validation_db_metrics_config": {
            "hana_db_user": "system",
            "sid": "DEH",
            "hana_db_password": "TempPa55word",
            "hostname": "localhost",
            "port": "30015"
          },
          "collect_process_metrics": false
        },
        "discovery_configuration": {
          "enable_discovery": true,
          "enable_workload_discovery": true
        },
        "hana_monitoring_configuration": {
          "enabled": false
        }
      }

  3. 重启代理以使新设置生效:

    sudo systemctl restart google-cloud-sap-agent

    代理成功重启后,便会开始将 Workload Manager 评估指标发送给 Workload Manager。

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

本部分介绍如何使用虚拟机扩展程序管理器在虚拟机群组中安装和管理 Agent for SAP。

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

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

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

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

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

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

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

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

控制台

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

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

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

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

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

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

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

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

    1. 从扩展程序列表中,选择 Google Cloud 的 SAP 扩展程序。
    2. 将版本字段选择保留为原样。

      此命令会指示政策在您的虚拟机群中安装最新版本的Google Cloud的 Agent for SAP。

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

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

    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-sap-extension  \
    --rollout-predefined-plan=ROLLOUT_PLAN_OPTION \
    [--description="<var>DESCRIPTION</var>" \]
    [--inclusion-labels=KEY1=VALUE1,KEY2=VALUE2 \]
    [--config-from-file=google-cloud-sap-extension="CONFIG_FILE_PATH" \]
    [--priority=PRIORITY]

替换以下内容:

  • POLICY_NAME:虚拟机扩展程序政策的唯一名称。
  • PROJECT_ID:您要为其创建政策的Google Cloud 项目的项目 ID
  • ROLLOUT_PLAN_OPTION:您要应用于全局政策的发布选项。支持的值包括 slow_rollout(推荐)和 fast_rollout。

    • 或者,您也可以通过指定 --rollout-custom-plan 选项来使用自定义发布计划。如需了解详情,请参阅发布计划简介。
    • 您可以使用 --rollout-predefined-plan 或 --rollout-custom-plan,但不能在同一命令中同时使用这两者。
  • DESCRIPTION:政策的可选说明。

  • CONFIG_FILE_PATH:包含 SAP 代理配置的 JSON 文件的本地路径。

    • 或者,如需以内嵌字符串的形式提供配置,请使用 --config 标志,而不是 --config-from-file。例如 --config=google-cloud-sap-extension="CONFIG"。
    • 您可以使用 --config-from-file 或 --config,但不能在同一命令中同时使用这两者。
    • 如需了解代理支持的配置参数,请参阅配置参数。

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

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

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

如需使用虚拟机扩展程序管理器政策在特定可用区内的虚拟机群上安装最新版本的 Agent for SAP,请完成以下步骤:

控制台

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

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

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

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

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

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

  6. 在范围部分中,选择可用区级发布,然后选择要应用此政策的区域和可用区。

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

    1. 从扩展程序列表中,选择 Google Cloud 的 SAP 扩展程序。
    2. 将版本字段留空。

      这会指示政策安装最新版本的Google Cloud的 Agent for SAP。

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

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

    4. 点击完成。

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

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

gcloud

在终端或 Cloud Shell 中,运行 gcloud 计算可用区-vm-extension-policies create 命令:

gcloud compute zone-vm-extension-policies create POLICY_NAME \
    --zone=ZONE \
    --extensions=google-cloud-sap-extension \
    --config-from-file=google-cloud-sap-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 文件的本地路径,其中包含代理连接到 SAP 工作负载所需的 SAP 配置。

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

  • 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-sap-extension \
    --config-from-file=google-cloud-sap-extension="/usr/agent-config.json"

管理一组虚拟机上的代理

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

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

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

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

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

控制台

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

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

  2. 如需更新地区级政策,请前往地区级政策标签页。

  3. 点击要修改的政策。

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

  5. 在管理扩展程序部分中,执行以下操作:

    1. 选择 Google Cloud 的 SAP 扩展程序。
    2. 在配置文件内容字段中,输入要应用于代理的配置。

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

  6. 点击完成。

  7. 点击保存。

gcloud

可用区级

如需修改特定可用区内虚拟机上 SAP 代理的配置,请运行 gcloud compute zone-vm-extension-policies update 命令。使用 gcloud 更新政策时,相应请求会完全替换现有政策。您省略的任何可选字段都会恢复为默认值,而不是保留修改后的政策中的现有值。

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

gcloud compute zone-vm-extension-policies update POLICY_NAME \
  --zone=ZONE \
  --extensions=google-cloud-sap-extension \
  --config-from-file=google-cloud-sap-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:包含 SAP 代理配置的 JSON 文件的本地路径。

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

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

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

全球

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

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

gcloud compute global-vm-extension-policies update POLICY_NAME \
  --project=PROJECT_ID \
  --extensions=google-cloud-sap-extension \
  --rollout-predefined-plan=ROLLOUT_PLAN_OPTION \
  --config-from-file=google-cloud-sap-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:您要修改的虚拟机扩展程序政策的名称。
  • PROJECT_ID:政策所在 Google Cloud 项目的 ID。
  • ROLLOUT_PLAN_OPTION:您要应用于全局政策的发布选项。支持的值包括 slow_rollout(推荐)和 fast_rollout。

    • 或者,您也可以通过指定 --rollout-custom-plan 选项来使用自定义发布计划。如需了解详情,请参阅发布计划简介。
    • 您可以使用 --rollout-predefined-plan 或 --rollout-custom-plan,但不能在同一命令中同时使用这两者。
  • CONFIG_FILE_PATH:包含 SAP 代理配置的 JSON 文件的本地路径。

    • 您还可以使用 --config 标志(而非 --config-from-file)以内嵌字符串的形式提供代理配置。例如 --config=google-cloud-sap-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-sap-extension  \
        --rollout-predefined-plan=ROLLOUT_PLAN_OPTION \
        --config-from-file=google-cloud-sap-extension="CONFIG_FILE_PATH" \
        --rollout-retry-uuid=UUID
    

    替换以下内容:

    • UUID:用于标识重试请求的通用唯一标识符 (UUID)。您可以使用任何 UUID 生成器来创建 UUID。 如需了解详情,请参阅重试发布。
    • ROLLOUT_PLAN_OPTION:您要应用于全局政策的发布选项。支持的值包括 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-sap-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 SAP,您必须删除管理该虚拟机舰队的虚拟机扩展程序管理器政策。

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

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

如需从虚拟机群组中卸载 Agent for SAP,请完成以下步骤:

控制台

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

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

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

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

gcloud

可用区级

如需删除区域级虚拟机扩展程序管理器政策,请使用 gcloud compute zone-vm-extension-policies delete 命令:

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

替换以下内容:

  • POLICY_NAME:您要删除的区域政策的名称。
  • PROJECT_ID:政策所在 Google Cloud 项目的 ID。
  • ZONE:该政策所在的 Google Cloud 可用区。

全球

如需删除全局虚拟机扩展程序管理器政策,请使用 gcloud compute global-vm-extension-policies delete 命令:

gcloud compute global-vm-extension-policies delete POLICY_NAME \
  --project=PROJECT_ID \
  --rollout-predefined-plan=ROLLOUT_PLAN_OPTION

替换以下内容:

  • POLICY_NAME:您要删除的区域政策的名称。
  • PROJECT_ID:政策所在 Google Cloud 项目的 ID。
  • ROLLOUT_PLAN_OPTION:您要应用于全局政策的发布选项。支持的值包括 slow_rollout(推荐)和 fast_rollout。

    • 或者,您也可以通过指定 --rollout-custom-plan 选项来使用自定义发布计划。如需了解详情,请参阅发布计划简介。
    • 您可以使用 --rollout-predefined-plan 或 --rollout-custom-plan,但不能在同一命令中同时使用这两者。

验证代理版本

Google Cloud 建议您安装最新版本的 Agent for SAP,以便准确评估 SAP 工作负载,因为定期发布的 Agent for SAP 版本可能会添加或更改用于评估的指标。

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

检查更新

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

RHEL

  1. 与您的实例建立 SSH 连接。
  2. 运行以下命令:
    sudo yum check-update google-cloud-sap-agent

SLES

  1. 与您的实例建立 SSH 连接。
  2. 运行以下命令:
    sudo zypper list-updates -r google-cloud-sap-agent

安装更新

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

RHEL

  1. 与您的实例建立 SSH 连接。
  2. 更新您的代理实例:
    • (推荐)如需更新到代理 3.15 版(最新版),请运行以下命令:
      sudo yum --nogpgcheck update google-cloud-sap-agent
    • 要更新到代理的特定版本,请运行以下命令:
      sudo yum install google-cloud-sap-agent-VERSION_NUMBER.x86_64

      将 VERSION_NUMBER 替换为您要安装的代理的版本号,例如 3.1-606637668。如需了解您可以安装的代理版本,请参阅列出代理的所有可用版本。

SLES

  1. 与您的实例建立 SSH 连接。
  2. 更新您的代理实例:
    • (推荐)如需更新到代理 3.15 版(最新版),请运行以下命令:
      sudo zypper --no-gpg-checks update google-cloud-sap-agent
    • 要更新到代理的特定版本,请运行以下命令:
      sudo zypper install google-cloud-sap-agent-VERSION_NUMBER.x86_64

      将 VERSION_NUMBER 替换为您要安装的代理的版本号,例如 3.1-606637668。如需了解您可以安装的代理版本,请参阅列出代理的所有可用版本。

验证 Workload Manager 评估指标收集功能的设置

您可以通过运行代理的 status 命令,验证自己是否已进行了正确的 Google Cloud 设置,以便收集 Workload Manager 评估指标。此命令从代理 3.7 版开始受支持。

如需验证 Google Cloud 设置,请完成以下步骤:

  1. 与您的 Compute Engine 实例建立 SSH 连接。
  2. 运行以下命令:
    sudo /usr/bin/google_cloud_sap_agent status -f="workload_manager,sap_discovery"

    如果您为 Workload Manager 评估指标收集功能进行了正确的 Google Cloud 设置,则输出将包含以下内容。您的配置可能具有 default 之外的其他值。

        Agent Status:
            ...
            Systemd Service Enabled: True
            Systemd Service Running: True
            Cloud API Full Scopes: True
            Configuration File: /etc/google-cloud-sap-agent/configuration.json
            Configuration Valid: True
        ...
        ----------------------------------------------------------------------------
        System Discovery: Enabled
            Status: Fully Functional
            IAM Permissions: All granted
            Configuration:
                enable_discovery:                  true  (default)
                enable_workload_discovery:         true  (default)
                sap_instances_update_frequency:    60    (default)
                system_discovery_update_frequency: 14400 (default)
        ----------------------------------------------------------------------------
        Workload Manager Evaluation: Enabled
            Status: Fully Functional
            IAM Permissions: All granted
            Configuration:
                collect_workload_validation_metrics:      true       (default)
                config_target_environment:                PRODUCTION (default)
                fetch_latest_config:                      true       (default)
                workload_validation_db_metrics_frequency: 3600       (default)
                workload_validation_metrics_frequency:    300        (default)
        ...
        
  3. 如果输出表明缺少某些设置,请查看前面部分中提供的信息,执行所需的操作,然后重新运行 status 命令以重新验证设置。

示例配置文件

以下示例是Google Cloud的 Agent for SAP 的已完成配置文件,该代理在Compute Engine 实例上运行,其中启用了 Workload Manager 评估指标收集功能。

对于 SAP HANA 身份验证,代理会按以下优先顺序使用参数:如果指定了 hdbuserstore_key 配置参数,则优先使用该参数,而不是 hana_db_password 参数,后者优先于 hana_db_password_secret_name 参数。我们建议您在配置文件中仅设置一个身份验证选项。

  • 以下示例使用安全用户存储区 (hdbuserstore) 中的密钥进行 SAP HANA 身份验证:
    {
      "provide_sap_host_agent_metrics": true,
      "bare_metal": false,
      "log_level": "INFO",
      "log_to_cloud": true,
      "collection_configuration": {
        "collect_workload_validation_metrics": true,
        "workload_validation_db_metrics_frequency": 3600,
        "workload_validation_db_metrics_config": {
          "hana_db_user": "system",
          "sid": "DEH",
          "hdbuserstore_key": "user_store_key"
        },
        "collect_process_metrics": false
      },
      "discovery_configuration": {
        "enable_discovery": true,
        "enable_workload_discovery": true
      },
      "hana_monitoring_configuration": {
        "enabled": false
      }
    }
  • 以下示例使用用户名和 Secret Manager 中的 Secret 进行 SAP HANA 身份验证:
    {
      "provide_sap_host_agent_metrics": true,
      "bare_metal": false,
      "log_level": "INFO",
      "log_to_cloud": true,
      "collection_configuration": {
        "collect_workload_validation_metrics": true,
        "workload_validation_db_metrics_frequency": 3600,
        "workload_validation_db_metrics_config": {
          "hana_db_user": "system",
          "sid": "DEH",
          "hana_db_password_secret_name": "instance-id-hana-db-password-secret",
          "hostname": "localhost",
          "port": "30015"
        },
        "collect_process_metrics": false
      },
      "discovery_configuration": {
        "enable_discovery": true,
        "enable_workload_discovery": true
      },
      "hana_monitoring_configuration": {
        "enabled": false
      }
    }
  • 以下示例使用用户名和密码进行 SAP HANA 身份验证。我们建议您改用 Secret Manager 中的 Secret 或安全用户存储区 (hdbuserstore) 中的密钥进行 SAP HANA 身份验证。
    {
      "provide_sap_host_agent_metrics": true,
      "bare_metal": false,
      "log_level": "INFO",
      "log_to_cloud": true,
      "collection_configuration": {
        "collect_workload_validation_metrics": true,
        "workload_validation_db_metrics_frequency": 3600,
        "workload_validation_db_metrics_config": {
          "hana_db_user": "system",
          "sid": "DEH",
          "hana_db_password": "TempPa55word",
          "hostname": "localhost",
          "port": "30015"
        },
        "collect_process_metrics": false
      },
      "discovery_configuration": {
        "enable_discovery": true,
        "enable_workload_discovery": true
      },
      "hana_monitoring_configuration": {
        "enabled": false
      }
    }

如需了解 Agent for SAP 支持的配置参数,请参阅配置参数。

后续步骤