版本 2:Google Cloud 的 Agent for SAP 问题排查指南

本指南介绍如何解决 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 说明:

问题:Google Cloud 的 Agent for SAP 安装失败

问题:执行软件包管理器安装命令(yumzyppergooget)时,代理安装失败。

原因:代理安装失败,因为运行代理的主机服务器是在没有公共 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 证书。

解决方法:要解决此问题,请按以下步骤操作:

  1. 对于要使用 Google Cloud's Agent for SAP 监控的 SAP HANA 实例,您必须切换为使用主题备用名称 (SAN) SSL 证书,而不是使用通用名称 (CN) 指定的 SSL 证书。

  2. 与主机虚拟机实例或裸金属解决方案服务器建立 SSH 连接。

  3. 打开 Google Cloud 的 Agent for SAP 的配置文件:

    /etc/google-cloud-sap-agent/configuration.json
  4. hana_monitoring_configuration 部分中,将参数 enabled 设置为 true

  5. hana_monitoring_configuration.hana_instances 部分中,对使用 TLS/SSL 协议进行安全通信的每个 SAP HANA 实例执行以下操作:

    1. 指定参数 enable_ssl 并将其值设置为 true

    2. 指定参数 host_name_in_certificate,并将 TLS/SSL 证书中指定的 SAP HANA 主机名设置为其值。

    3. 指定参数 tls_root_ca_file,并将 TLS/SSL 证书的存储路径设置为其值。

  6. 保存配置文件。

  7. 重启 Google Cloud's Agent for SAP,以使新设置生效:

    sudo systemctl restart google-cloud-sap-agent
  8. 验证代理是否正在收集 SAP HANA 监控指标。如需查看相关说明,请参阅查看其他指标

  9. 卸载 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 不会自行启动。

如需验证代理是否正在运行,请执行以下步骤:

  1. 连接到您的主机虚拟机实例或裸金属解决方案服务器。
  2. 运行以下命令:

    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 无法自行启动。

解决方法:如需解决此问题,请执行以下步骤:

  1. 连接到您的主机虚拟机实例或裸金属解决方案服务器。
  2. 运行以下命令:

    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
  3. 验证代理正在运行:

    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 诊断信息