你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

为适用于 SAP 解决方案的 Azure Monitor 配置 SAP NetWeaver

本操作指南将介绍如何配置 SAP NetWeaver 提供程序以便与 Azure Monitor for SAP Solutions 配合使用。

配置 SAP Netweaver 提供程序以从 SAP 系统收集信息时,用户可以在两种连接类型之间进行选择。 使用以下方式收集指标

  • SAP Control - SAP 启动服务提供了许多服务,其中包括监视 SAP 系统。 两个 Azure Monitor for SAP Solutions 版本都使用 SAPControl,这一 SOAP Web 服务接口可公开这些功能。 SAP Control 接口可区分受保护和不受保护的 Web 服务方法。 务必取消保护某些方法才能将 Azure Monitor for SAP Solutions 与 NetWeaver 配合使用。
  • SAP RFC - Azure Monitor for SAP Solutions 还提供使用标准 SAP RFC 从 SAP 系统收集其他信息的功能。 它仅作为适用于 SAP 解决方案的 Azure Monitor 的一部分提供。

可以使用 SAP NetWeaver 提供程序收集以下指标

  • SAP 系统和应用程序服务器可用性(例如调度程序、ICM、网关、消息服务器、排队服务器、IGS 监视器的实例进程可用性)(SAP Control)
  • 工作进程使用情况统计信息和趋势 (SAP Control)
  • 排队锁统计信息和趋势 (SAP Control)
  • 队列使用情况统计信息和趋势 (SAP Control)
  • SMON 指标 (transaction code - /SDF/SMON) (RFC)
  • SWNC 工作负载、内存、事务、用户、RFC 使用情况(事务代码 - St03n)(RFC)
  • 短转储(事务代码 - ST22)(RFC)
  • 对象锁定(事务代码 - SM12)(RFC)
  • 更新失败(事务代码 - SM13)(RFC)
  • 系统日志分析(事务代码 - SM21)(RFC)
  • 批处理作业统计信息(事务代码 - SM37)(RFC)
  • 出站队列(事务代码 - SMQ1)(RFC)
  • 入站队列(事务代码 - SMQ2)(RFC)
  • 交易 RFC(事务代码 - SM59)(RFC)
  • STMS 更改传输系统指标(事务代码 - STMS)(RFC)

先决条件

为 Azure Monitor for SAP Solutions 配置 SAP NetWeaver

若要为当前 Azure Monitor for SAP Solutions 版本配置 NetWeaver 提供程序,需要:

  1. 先决条件 - 取消保护指标的方法
  2. 启用 RFC 指标的先决条件
  3. 添加 NetWeaver 提供程序

请参阅“故障排除”部分以解决添加 SAP NetWeaver 提供程序时遇到的任何问题。

先决条件 - 取消保护指标的方法

配置 SAP NetWeaver 提供程序时,必须执行此步骤。 若要提取特定指标,需取消保护每个 SAP 实例中的一些方法:

  1. 打开与 SAP 服务器的 SAP GUI 连接。

  2. 使用管理帐户登录。

  3. 执行事务 RZ10。

  4. 选择适当的配置文件(建议的实例配置文件)。

  5. 依次选择“扩展维护”>“更改” 。

  6. 选择配置文件参数 service/protectedwebmethods

  7. 将值更改为:

    SDEFAULT -GetQueueStatistic -ABAPGetWPTable -EnqGetStatistic -GetProcessList -GetEnvironment -ABAPGetSystemWPTable
    
  8. 选择“复制”。

  9. 选择“配置文件”>“保存”以保存更改。

  10. 在 SAP 系统中的每个实例上重启 SAPStartSRV 服务。 重启服务时,不会使整个系统重启。 此过程只会重启 SAPStartSRV(在 Windows 上)或守护进程(在 Unix 或 Linux 上)。

    必须在 SAP 系统的每个实例上重启 SAPStartSRV 才能取消保护 SAP Control Web 方法。 NetWeaver 提供程序需要只读 SOAP API 才能从 SAP 系统提取指标数据。 未能取消保护这些方法会导致 NetWeaver 指标工作簿上的空或缺失可视化效果。

    1. 在 Windows 系统上,使用 SAP Microsoft 管理控制台 (MMC) 或 SAP 管理控制台 (MC) 重启服务。 右键单击每个实例。 然后选择“所有任务”>“重启服务”。 Screenshot of the MMC console, showing the Restart Service option being selected.

    2. 在 Linux 系统上,使用以下命令重启主机。 将 <instance number> 替换为 SAP 系统的实例编号。

    sapcontrol -nr <instance number> -function RestartService
    
    1. 对每个实例配置文件(或)重复上述步骤,可以在较低环境中重启 SAP 系统作为另一个选项。

用于取消保护 Web 方法的 PowerShell 脚本

可以参考链接来取消保护 SAP Windows 虚拟机中的 Web 方法。

启用 RFC 指标的先决条件

RFC 指标仅适用于 AS ABAP 应用程序 ,不适用于 SAP JAVA 系统。 选择的连接类型为 SOAP+RFC 时,此步骤是必需的。 作为启用 RFC 的前提条件,需要执行以下步骤

  1. 在 SAP NW ABAP 系统中创建或上载角色。 Azure Monitor for SAP Solutions 需要该角色连接到 SAP。 该角色使用最低特权访问。 下载并解压缩 Z_AMS_NETWEAVER_MONITORING.zip

    1. 登录到 SAP 系统。
    2. 使用事务代码 PFCG,然后在菜单中选择“角色上传”。
    3. 从 ZIP 文件上传 Z_AMS_NETWEAVER_MONITORING.SAP 文件。
    4. 选择“执行”以生成角色。 (确保配置文件也作为角色上载的一部分生成)

    传输以导入 SAP 系统中的角色

    还可以参考链接以在 PFCG 中导入角色,并生成配置文件,以便为 SAP 系统成功配置 Netweaver 提供程序。

  2. 创建新的 RFC 用户并为其授权

    1. 创建 RFC 用户。
    2. 将 Z_AMS_NETWEAVER_MONITORING 角色分配给用户。 这是你在上一部分中上传的角色。
  3. 启用 SICF 服务以便通过 SAP Internet 通信框架 (ICF) 访问 RFC

    1. 转到事务代码“SICF”。
    2. 转到服务路径 /default_host/sap/bc/soap/
    3. 激活服务 wsdl、wsdl11 和 RFC。

还建议检查是否启用了 ICF 端口。

  1. SMON - 启用 SMON 以监视系统性能。确保 ST-PI 的版本为 SAPK-74005INSTPI。
    未配置工作簿时,你将看到工作簿中包含空白可视化效果。

    1. 为系统启用 SDF/SMON 快照服务。 启用每日监视。 有关说明,请参阅 SAP 说明 2651881
    2. 将 SDF/SMON 指标配置为每分钟聚合一次。
    3. 建议每隔一分钟将 SDF/SMON 安排为目标 SAP 客户端中的后台作业。
    4. 如果在工作簿选项卡“系统性能 - CPU 和内存(/SDF/SMON)”中注意到空可视化效果,请应用以下 SAP 说明:
      1. 版本 740 SAP知识库(KB)74006-SAP知识库(KB)74025 - 版本 755 直到 SAPK-75502INSAPBASIS。 有关特定支持包版本,请参阅 SAP 说明。- SAP 说明2246160
      2. 如果指标集合不适用于上述说明,请尝试 - SAP 说明3268727
  2. 启用安全通信

    要使用 SAP NetWeaver 提供程序启用 TLS 1.2 或更高版本,请执行此 SAP 文档中提到的步骤

    检查 SAP 系统是否已配置为使用 TLS 1.2 或更高版本进行安全通信

    1. 转到事务 RZ10。
    2. 打开 DEFAULT 配置文件,选择“扩展维护”并单击“更改”。
    3. 以下配置适用于 TLS1.2,位掩码将为 544:PFS。 如果 TLS 版本更高,则位掩码将大于 544。

    tlsimage1

    检查在创建提供过程中要提供的 HTTPS 端口

    1. 转到事务 SMICM。
    2. 从菜单 GOTO -> 服务中进行选择。
    3. 验证 HTTPS 协议是否处于活动状态。

    tlsimage2

添加 NetWeaver 提供程序

确保所有先决条件都成功完成。 添加 NetWeaver 提供程序:

  1. 登录 Azure 门户

  2. 转到 Azure Monitor for SAP Solutions 服务页。

  3. 选择“创建”以打开资源创建页面。

  4. 输入“基本信息”选项卡的信息。

  5. 选择“提供程序”选项卡,然后选择“添加提供程序”。

  6. 配置新的提供程序:

    1. 对于“类型”,选择“SAP NetWeaver” 。

    2. 对于“名称”,为提供程序提供一个唯一名称

    3. 对于“系统 ID (SID)”,输入三个字符的 SAP 系统标识符。

    4. 对于“应用程序服务器”,请输入要监视的 SAP NetWeaver 系统的 IP 地址或完全限定的域名 (FQDN) 。 例如 sapservername.contoso.com,其中 sapservername 是主机名,contoso.com 是域。 如果使用主机名,请确保从用于创建 Azure Monitor for SAP Solutions 资源的虚拟网络建立连接。

    5. 对于“实例编号”,请指定 SAP NetWeaver 的实例编号 (00-99)

    6. 对于“连接类型”,根据收集的指标选择“SOAP + RFC”或“SOAP”(有关详细信息,请参阅上一节)

    7. 对于“SAP 客户端 ID”,请提供 SAP 客户端标识符。

    8. 对于“SAP ICM HTTP 端口”,请输入 ICM 正在使用的端口,例如 80(NN),其中 (NN) 是实例编号。

    9. 对于“SAP 用户名”,输入为连接到 SAP 系统而创建的用户名。

    10. 对于“SAP 密码”,输入用户的密码。

    11. 对于“主机文件条目”,请提供与 SID 关联的所有 SAP VM 的 DNS 映射,并在“主机文件条目”中输入所有 SAP 应用程序服务器和 ASC 主机文件条目。 输入主机文件映射(采用逗号分隔格式)。 每个条目的预期格式是 IP 地址、FQDN、主机名。 例如:192.X.X.X sapservername.contoso.com sapservername,192.X.X.X sapservername2.contoso.com sapservername2。 若要确定与 SID 关联的所有 SAP 主机名,请使用 sidadm 用户登录到 SAP 系统。 然后,运行以下命令(或)可以利用下面的脚本生成主机文件条目。

      用于查找与给定 SID 关联的实例列表的命令

          /usr/sap/hostctrl/exe/sapcontrol -nr <instancenumber>  -function GetSystemInstanceList
      

    用于生成主机文件条目的脚本

    强烈建议按照链接中的详细说明生成主机文件条目。 这些条目对于成功为 SAP 系统创建 Netweaver 提供程序至关重要。

SAP Netweaver 提供程序故障排除

添加 Netweaver 提供程序时的常见问题。

  1. 无法访问 SAP 主机名。 ErrorCode:SOAPApi连接ionError

    1. 检查提供的主机名、实例编号和主机文件映射。

    2. 按照说明确定 主机文件条目 “主机文件条目”部分。

    3. 确保 NSG/防火墙未阻止端口 – 5XX13 或 5XX14。 (XX - SAP 实例编号)

    4. 检查 AMS 和 SAP VM 是否位于同一 vNet 中,或使用 vNet 对等互连附加。

      如果未附加,请参阅以下 链接 以连接 vNet:

  2. 检查未受保护的更新规则。 ErrorCode:SOAPWebMethodsValidationFailed

    重启 SAP 服务后,请检查更新的规则是否应用于每个实例。

    1. 以 . 身份 sidadm登录到 SAP 系统时。 运行以下命令。 将 <instance number> 替换为系统的实例编号。

      sapcontrol -nr <instance number> -function ParameterValue service/protectedwebmethods
      
    2. 以非 SIDADM 用户身份登录时。 运行以下命令,将 <instance number> 替换为系统的实例号,将 <admin user> 替换为管理员用户名,将 <admin password> 替换为密码。

      sapcontrol -nr <instance number> -function ParameterValue service/protectedwebmethods -user "<admin user>" "<admin password>"
      
    3. 查看输出。 确保在输出中看到方法 的名称 GetQueueStatistic ABAPGetWPTable EnqGetStatistic GetProcessList GetEnvironment ABAPGetSystemWPTable

    4. 对每个实例配置文件重复上述步骤。

    若要验证规则,请针对 Web 方法运行测试查询。 将 <hostname> 替换为主机名,将 <instance number> 替换为 SAP 实例编号,将方法名称替换为适当的方法。

    $SAPHostName = "<hostname>"
    $InstanceNumber = "<instance number>"
    $Function = "ABAPGetWPTable"
    [System.Net.ServicePointManager]::ServerCertificateValidationCallback = {$true}
    $sapcntrluri = "https://" + $SAPHostName + ":5" + $InstanceNumber + "14/?wsdl"
    $sapcntrl = New-WebServiceProxy -uri $sapcntrluri -namespace WebServiceProxy -class sapcntrl
    $FunctionObject = New-Object ($sapcntrl.GetType().NameSpace + ".$Function")
    $sapcntrl.$Function($FunctionObject)
    
  3. 确保 Internet 通信框架端口已打开。 ErrorCode:RFCSoapApiNotEnabled

    1. 登录 SAP 系统

    2. 转到事务代码“SICF”。

    3. 导航到服务路径 /default_host/sap/bc/soap/

    4. 右键单击 ping 服务,然后选择“测试服务”。 SAP 将启动默认浏览器。

    5. 如果无法访问端口或测试失败,请在 SAP VM 中打开端口。

      1. 对于 Linux,请运行以下命令。 将 <your port> 替换为配置的端口。

        sudo firewall-cmd --permanent --zone=public --add-port=<your port>/TCP
        
        sudo firewall-cmd --reload
        
      2. 对于 Windows,请从“开始”菜单打开Windows Defender 防火墙。 在侧菜单中选择“高级设置”,然后选择“入站规则”。 若要打开端口,请选择“新建规则”。 添加端口并将协议设置为 TCP。

指标收集的常见问题和可能的解决方案

  1. SMON 指标

    请参阅先决条件中的 SMON 部分

  2. Batch 作业指标

    如果在工作簿选项卡“应用程序性能 -Batch 作业(SM37)”中注意到空可视化效果,请在 SAP 系统中应用以下 SAP 说明 SAP 说明 2469926

    应用此 OSS 注释后,需要执行 RFC 函数模块 - BAPI_XMI_LOGON_WS具有以下参数:

    此函数模块的参数与BAPI_XMI_LOGON相同,但将它们存储在表 BTCOPTIONS 中。

    INTERFACE = XBP VERSION = 3.0 EXTCOMPANY = TESTC EXTPRODUCT = TESTP

  3. SWNC 指标

    若要确保成功检索 SWNC 指标,必须确认 SAP 系统和操作系统(OS)都同步了时间。

后续步骤