SAP 解决方案的 Workload Manager 使用 Google Cloud's Agent for SAP 来检测和收集元数据,以评估您的 SAP 系统 配置。在运行 SAP 系统的所有虚拟机实例上,都需要安装 Agent for SAP 和 SAP Host Agent,以便支持和监控在 Google Cloud上运行的 SAP 系统, 包括 SAP NetWeaver、SAP HANA、SAP ASE 和 SAP MaxDB。
准备工作
在安装和配置 Google Cloud的 Agent for SAP 之前,您 需要确保满足以下前提条件:
- 您已在一个或多个计算实例上部署 SAP 工作负载。
- 您已查看可以创建 Workload Manager 评估的受支持区域 。
- 您的管理员已授予您 创建和运行 Workload Manager 评估所需的 IAM 角色。
- 您已授予代理所需的 IAM 角色。
- 您已启用对 Cloud API 的访问权限。
代理所需的 IAM 角色
Agent for SAP 使用附加到计算 实例的服务帐号进行身份验证并访问 Google Cloud 资源。
为了提高安全性,我们建议您使用 专用服务账号 ,而不是使用Compute Engine 默认服务账号。
如需确保服务帐号具有让 Agent for SAP 向进行身份验证并访问资源所需的权限,请让您的管理员为服务帐号授予项目的以下 IAM 角色:Google Cloud Google Cloud
如果未能向正确的正文授予这些角色,可能会导致权限错误。-
从计算实例收集指标:
Compute Viewer (
roles/compute.viewer) -
将数据写入 Workload Manager 数据仓库:
Workload Manager Insights Writer (
roles/workloadmanager.insightWriter) -
将代理日志发送到 Cloud Logging:
Logs Writer (
roles/logging.logWriter) -
如果您使用 Secret Manager 存储用于连接到 SAP 工作负载的密码:
Secret Manager Secret Accessor (
roles/secretmanager.secretAccessor)
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
您的管理员还可以通过自定义角色或其他预定义角色向服务帐号授予所需的权限。
启用对 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 Compute Workloads 可以访问 Google API 和服务。如需了解如何启用 专用 Google 访问通道,请参阅 配置专用 Google 访问通道。
使用软件包管理器安装和配置代理
本部分介绍如何使用软件包管理器在计算实例上安装 Agent for SAP,并将其配置为与 SAP 工作负载连接。
如果您想在一组虚拟机上安装和配置代理,则可以使用虚拟机扩展程序管理器政策。如需了解详情, 请参阅 使用虚拟机扩展程序管理器在一组虚拟机上安装和管理代理。
安装代理
如果尚未安装,请在运行 SAP 工作负载的所有计算实例上安装 Google Cloud的 Agent for SAP :
如需在 Compute Engine 实例上安装代理,请按照以下步骤操作:
- 与您的计算实例建立 SSH 连接。
- 在您的终端中,通过运行特定于您的操作系统的命令来安装此代理:
- (推荐)如需安装代理 3.13 版(最新版),请运行以下命令:
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。
- (推荐)如需安装代理 3.13 版(最新版),请运行以下命令:
配置 Workload Manager 评估指标收集
安装 Agent for SAP 后,您需要配置代理以收集 Workload Manager 评估指标。
如需配置 Google Cloud的 Agent for SAP,请完成以下 步骤:
如需让代理收集 Workload Manager 评估指标,请运行以下命令:
sudo /usr/bin/google_cloud_sap_agent configure -feature=workload_evaluation -enable
可选:如需在 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:指定用于对为hana_db_user指定的用户进行身份验证的hdbuserstore密钥 。如果您指定了
hdbuserstore_key,则可以跳过指定hostname和port参数。
如需了解这些参数,请参阅 配置参数。
以下示例是的 Google Cloud's 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 } }
重启代理以使新设置生效:
sudo systemctl restart google-cloud-sap-agent
代理成功重启后,代理会开始将 Workload Manager 评估指标发送到 Workload Manager。
使用虚拟机扩展程序管理器在一组虚拟机上安装和管理代理
本部分介绍如何使用虚拟机扩展程序管理器在一组虚拟机上安装和管理 Agent for SAP。
设置虚拟机扩展程序管理器
如需设置虚拟机扩展程序管理器,请完成以下步骤:
- 在虚拟机扩展程序管理器文档中,查看 准备工作部分。
设置创建和管理虚拟机扩展程序管理器政策所需的 IAM 角色。如需了解详情,请参阅以下内容:
在一组虚拟机上安装和配置代理
如需使用虚拟机扩展程序管理器政策在特定可用区内的一组虚拟机上安装最新版本的 Agent for SAP,请完成以下步骤:
控制台
在 Google Cloud 控制台中,前往虚拟机扩展程序政策页面。
点击创建扩展程序政策 。
在名称字段中,输入政策的名称。
可选:在说明字段中,输入政策的说明。
在优先级 字段中,指定优先级编号以解决政策之间的冲突。数字越小,优先级越高。默认值为
1000。使用区域 和可用区 列表,选择您要应用此政策的可用区。
在 Extensions 部分中,点击 Add extension ,然后执行以下操作:
- 从 Extension 列表中,选择 Google Cloud's Extension for Compute Workloads。
将 Version 字段留空。
这会指示政策安装最新版本的 Google Cloud's Agent for SAP。
在 Configuration file content 字段中,输入您要应用于代理的配置。
如需了解代理支持的 SAP 工作负载的配置参数,请参阅 配置参数。
点击完成 。
可选:如需将政策推出限制为所需的虚拟机,请执行以下操作:
- 点击添加标签 ,并添加用于标识所需虚拟机的标签。
- 点击完成 。
点击创建。
gcloud
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 文件的本地路径,该文件包含 Agent for 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"
验证代理版本
Google Cloud 建议您安装最新版本的 Agent for SAP,以便准确评估 SAP 工作负载,因为定期发布的 Agent for SAP 版本可能会添加或更改用于评估的指标。
为了确保您使用的是最新版本的 Google Cloud's Agent for SAP,您需要定期检查更新并相应更新该 代理。
检查更新
选择您的操作系统,然后按照以下步骤操作:
RHEL
- 与您的实例建立 SSH 连接。
- 运行以下命令:
sudo yum check-update google-cloud-sap-agent
SLES
- 与您的实例建立 SSH 连接。
- 运行以下命令:
sudo zypper list-updates -r google-cloud-sap-agent
安装更新
选择您的操作系统,然后按照以下步骤操作:
RHEL
- 与您的实例建立 SSH 连接。
- 更新您的代理实例:
- (推荐)如需更新到代理 3.13 版(最新版)
,请运行以下命令:
sudo yum --nogpgcheck update google-cloud-sap-agent
- 如需更新到代理的特定版本,请运行以下命令:
sudo yum install google-cloud-sap-agent-VERSION_NUMBER.x86_64
将
VERSION_NUMBER替换为您要安装的代理的版本号,例如3.1-606637668。如需了解您可以安装的代理版本,请参阅列出代理的所有可用版本。
- (推荐)如需更新到代理 3.13 版(最新版)
,请运行以下命令:
SLES
- 与您的实例建立 SSH 连接。
- 更新您的代理实例:
- (推荐)如需更新到代理 3.13 版(最新版)
,请运行以下命令:
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。如需了解您可以安装的代理版本,请参阅列出代理的所有可用版本。
- (推荐)如需更新到代理 3.13 版(最新版)
,请运行以下命令:
验证 Workload Manager 评估指标收集功能的设置
您可以通过运行代理的 status 命令,验证自己是否已进行了正确的 Google Cloud 设置,以便收集 Workload Manager 评估指标。此命令从代理 3.7 版开始受支持。
如需验证 Google Cloud 设置,请完成以下步骤:
- 与您的 Compute Engine 实例建立 SSH 连接。
- 运行以下命令:
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) ... - 如果输出表明缺少某些设置,请查看前面部分中提供的
信息,执行所需的操作,
然后重新运行
status命令以重新验证设置。
示例配置文件
以下示例是的 Google Cloud's 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 支持的配置参数,请参阅 配置参数。
后续步骤
- 详细了解工作负载评估