本指南介绍如何解决 Google Cloud 的 Agent for SAP 版本 2 的问题。
日志记录
检查特定于您的操作系统的目录中的日志。
如需查看 Google Cloud 的 Agent for SAP 的日志,请转到以下路径:
Linux
/var/log/google-cloud-sap-agent.log
Windows
C:\Program Files\Google\google-cloud-sap-agent\logs\google-cloud-sap-agent.log
常见问题
问题:IAM 权限不足
问题:Google Cloud 的 Agent for SAP 日志显示 IAM 权限不足错误。
原因:服务账号没有访问 Cloud Monitoring API 所需的 IAM 权限。
解决方法:在 Google Cloud 控制台的“虚拟机实例详情”页面上,记下虚拟机服务账号的名称。例如:sap-example@example-project-123456.iam.gserviceaccount.com
。在“IAM 和管理”首页上,确保服务账号具有以下 IAM 角色:
功能 | 所需 IAM 角色 |
---|---|
SAP Host Agent 指标收集 | |
Process Monitoring 指标收集 |
|
Workload Manager 评估指标收集 |
|
SAP HANA 监控指标收集 |
|
如需详细了解 Google Cloud 的 Agent for SAP 所需的身份验证,请参阅身份验证和访问权限。
如需确认 Cloud Monitoring 代理所需的权限,请参阅以下 Monitoring 文档:
问题:虚拟机服务账号的访问权限范围不正确
问题:如果您限制主机虚拟机实例的访问权限范围,则 Google Cloud 的 Agent for SAP 日志可能会显示 IAM 权限不足错误。
原因:Google Cloud 的 Agent for SAP 要求主机虚拟机实例具有最小 Cloud API 访问权限范围。当服务账号没有所需的访问权限范围时,会发生此错误。
解决方法:访问权限范围是为虚拟机实例指定权限的传统方法。Compute Engine 建议将虚拟机实例配置为允许对所有 Cloud API 的所有访问权限范围,并且仅使用虚拟机服务账号的 IAM 权限来控制对 Google Cloud 资源的访问。
如需解决此问题,最佳实践是对虚拟机实例设置所有 cloud-platform
访问权限范围,然后使用 IAM 角色安全地限制服务账号的 API 访问权限。例如:
https://www.googleapis.com/auth/cloud-platform
如果您限制了虚拟机实例的访问权限范围,则必须确保主机虚拟机实例具有以下访问权限范围:
https://www.googleapis.com/auth/source.read_write
https://www.googleapis.com/auth/compute
https://www.googleapis.com/auth/servicecontrol
https://www.googleapis.com/auth/service.management.readonly
https://www.googleapis.com/auth/logging.admin
https://www.googleapis.com/auth/monitoring
https://www.googleapis.com/auth/trace.append
https://www.googleapis.com/auth/devstorage.full_control
如果您已启用进程监控指标、Workload Manager 评估指标或 SAP HANA 监控指标的收集,则主机虚拟机实例的访问权限范围还必须具有将指标数据发布到 Google Cloud 项目的写入权限:
https://www.googleapis.com/auth/monitoring.write
如需更改访问权限范围,您需要停止虚拟机实例,进行更改,然后重启虚拟机实例。如需查看相关说明,请参阅 Compute Engine 文档。您无需针对此问题对 IAM 角色的权限进行任何更改。
问题:SAP Host Agent 缺失或不正确
问题:Google Cloud 的 Agent for SAP 日志显示 SAP Host Agent 缺失或不正确错误。
原因:未安装 SAP Host Agent 或 SAP Host Agent 所需的最低级别的补丁。为了使 Google Cloud 的 Agent for SAP 正常运行,SAP 系统必须安装 SAP Host Agent,并保持 Host Agent 所需的最低补丁级别。
解决方法:如需解决此问题,请安装所需的 SAP Host Agent 版本。如需了解如何安装 SAP Host Agent,请参阅 SAP 文档。
如需了解 SAP Host Agent 的版本要求,请参阅以下 SAP 说明:
- Linux:SAP 说明 2460297 - Google Cloud Platform 上的 Linux 系统的 SAP:增强监控
- Windows:SAP 说明 1409604 - Windows 系统的虚拟化:增强监控
问题:Google Cloud 的 Agent for SAP 安装失败
问题:执行软件包管理器安装命令(yum
、zypper
或 googet
)时,代理安装失败。
原因:代理安装失败,因为运行代理的主机服务器是在没有公共 IP 地址的情况下创建的。
解决方法:如需解决此问题,请设置一个 NAT 网关,以授予主机服务器对互联网的出站访问权限。如需了解如何设置 NAT 网关,请参阅你的 SAP 系统对应的部署指南。例如,对于 SAP NetWeaver,请参阅:
问题:收集 SAP HANA 监控指标失败
问题:在从适用于 SAP HANA 的监控代理升级时,安装 Google Cloud's Agent for SAP 后,您会看到类似于以下内容的错误消息:
tls: failed to verify certificate: x509: certificate relies on legacy Common Name field, use SANs instead
原因:Google Cloud's Agent for SAP 无法开始收集 SAP HANA 监控指标,因为目标 SAP HANA 实例使用通过通用名称 (CN) 指定的 SSL 证书。
解决方法:要解决此问题,请按以下步骤操作:
对于要使用 Google Cloud's Agent for SAP 监控的 SAP HANA 实例,您必须切换为使用主题备用名称 (SAN) SSL 证书,而不是使用通用名称 (CN) 指定的 SSL 证书。
与主机虚拟机实例或裸金属解决方案服务器建立 SSH 连接。
打开 Google Cloud 的 Agent for SAP 的配置文件:
/etc/google-cloud-sap-agent/configuration.json
在
hana_monitoring_configuration
部分中,将参数enabled
设置为true
。在
hana_monitoring_configuration.hana_instances
部分中,对使用 TLS/SSL 协议进行安全通信的每个 SAP HANA 实例执行以下操作:指定参数
enable_ssl
并将其值设置为true
。指定参数
host_name_in_certificate
,并将 TLS/SSL 证书中指定的 SAP HANA 主机名设置为其值。指定参数
tls_root_ca_file
,并将 TLS/SSL 证书的存储路径设置为其值。
保存配置文件。
重启 Google Cloud's Agent for SAP,以使新设置生效:
sudo systemctl restart google-cloud-sap-agent
验证代理是否正在收集 SAP HANA 监控指标。如需查看相关说明,请参阅查看其他指标。
卸载 SAP HANA 监控代理。
问题:连接遭拒错误
问题:SAP Host Agent 日志显示连接遭拒错误。
原因:Google Cloud 的 Agent for SAP 无法启动,因为端口 18181
不可用。Google Cloud 的 Agent for SAP 监听端口 18181
上的请求。此端口必须可用,代理才能启动。
解决方法:如需解决此问题,请确保端口 18181
可用于 Google Cloud 的 Agent for SAP。如果其他服务正在使用端口 18181
,则您可能需要重启该服务,或将其重新配置为使用其他端口。
问题:对于操作系统映像 SLES 15 SP4 for SAP 及更高版本,Google Cloud 的 Agent for SAP 不运行
问题:当您使用 SLES“for SAP”操作系统映像时,系统会为您预安装 Google Cloud 的 Agent for SAP。但是,对于操作系统映像 SLES 15 SP4 for SAP 及更高版本,预安装的 Agent for SAP 不会自行启动。
如需验证代理是否正在运行,请执行以下步骤:
- 连接到您的主机虚拟机实例或裸金属解决方案服务器。
运行以下命令:
systemctl status google-cloud-sap-agent
如果代理未在运行,则输出包含
inactive (dead)
。例如:google-cloud-sap-agent.service - Google Cloud Agent for SAP Loaded: loaded (/usr/lib/systemd/system/google-cloud-sap-agent.service; disabled; vendor preset: disabled) Active: inactive (dead)
原因:由于操作系统打包存在问题,Agent for SAP 无法自行启动。
解决方法:如需解决此问题,请执行以下步骤:
- 连接到您的主机虚拟机实例或裸金属解决方案服务器。
运行以下命令:
sudo sed -i 's~ /usr/sap~ -/usr/sap~g' /usr/lib/systemd/system/google-cloud-sap-agent.service sudo systemctl restart google-cloud-sap-agent
验证代理正在运行:
systemctl status google-cloud-sap-agent
您应该会看到类似于如下内容的输出:
google-cloud-sap-agent.service - Google Cloud Agent for SAP Loaded: loaded (/usr/lib/systemd/system/google-cloud-sap-agent.service; disabled; vendor preset: disabled) Active: active (running) since Wed 2023-07-12 03:07:23 UTC; 7s ago Main PID: 6117 (google_cloud_sa) Tasks: 6 Memory: 8.8M (max: 1.0G limit: 1.0G available: 1015.1M) CGroup: /system.slice/google-cloud-sap-agent.service └─ 6117 /usr/bin/google_cloud_sap_agent startdaemon
获取 Google Cloud 的 Agent for SAP 支持
如果您在解决 Google Cloud 的 Agent for SAP 的问题时需要帮助,请收集所需的诊断信息并与 Cloud Customer Care 联系。如需了解详情,请参阅版本 2:Google Cloud 的 Agent for SAP 诊断信息。