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

为 Azure Monitor for SAP Solutions 配置 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 系统收集其他信息的功能。 它仅作为 Azure Monitor for SAP Solutions 的一部分提供。

可以使用 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) 重启服务。 右键单击每个实例。 然后选择“所有任务”>“重启服务”。 MMC 控制台的屏幕截图,其中显示了要选择的“重启服务”选项。

    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 SAPKB74006-SAPKB74025 - 版本 755(截至 SAPK-75502INSAPBASIS)。 有关特定支持包版本,请参阅 SAP 说明 - SAP 说明 2246160
      2. 如果指标收集不适用于上一条说明,请尝试 - SAP 说明 3268727
  2. 启用安全通信

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

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

    1. 转到事务 RZ10。
    2. 打开默认配置文件,选择“扩展维护”并选择“更改”。
    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:SOAPApiConnectionError

    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. 批处理作业指标

    如果在工作簿的“应用程序性能 - 批处理作业(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) 的时间已同步。

后续步骤