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

适用于 SAP 解决方案的 Azure VM 扩展新版本

先决条件

注意

一般支持声明:对适用于 SAP 的 Azure 扩展的支持是通过 SAP 支持渠道提供的。 如果需要有关适用于 SAP 解决方案的 Azure VM 扩展的帮助,请向 SAP 支持部门提交支持案例

注意

在适用于 SAP 的 Azure 扩展标准版与新版本之间切换之前,请确保卸载 VM 扩展。

注意

VM 扩展有两种版本。 本文介绍适用于 SAP 的 Azure VM 扩展新版本。 有关如何安装标准版的指导,请参阅适用于 SAP 解决方案的 Azure VM 扩展标准版

  • 请务必使用 SAP 主机代理 7.21 PL 47 或更高版本。
  • 确保要启用该扩展的虚拟机能够访问 management.azure.com。

部署 Azure PowerShell cmdlet

按照安装 Azure PowerShell 模块一文中所述的步骤进行操作

请经常检查 PowerShell cmdlet 的更新,通常每月都会更新。 按照这篇文章中所述的步骤进行操作。 除非 SAP 说明 1928533 或 SAP 说明 2015553 中另有规定,否则建议使用最新版本的 Azure PowerShell cmdlet。

要检查计算机上安装的 Azure PowerShell cmdlet 的版本,请运行以下 PowerShell 命令:

(Get-Module Az.Compute).Version

部署 Azure CLI

按照安装 Azure CLI 模块一文中所述的步骤进行操作

请经常检查 Azure CLI 的更新,通常每月都会更新。

要检查计算机上安装的 Azure CLI 的版本,请运行以下命令:

az --version

使用 PowerShell 配置适用于 SAP 解决方案的 Azure VM 扩展

适用于 SAP 的新 VM 扩展使用分配给 VM 的托管标识来访问 VM 的监视和配置数据。 要使用 PowerShell 来安装适用于 SAP 的 新 Azure 扩展,首先必须将此类标识分配给 VM,并向该标识授予对该 VM 使用的所有资源(例如磁盘和网络接口)的访问权限。

注意

以下步骤要求拥有对资源组或单一资源(虚拟机、数据磁盘和网络接口)的“所有者”特权

  1. 请务必使用 SAP 主机代理 7.21 PL 47 或更高版本。

  2. 请务必卸载适用于 SAP 的 VM 扩展标准版。 不支持在同一虚拟机上同时安装适用于 SAP 的 VM 扩展的两个版本。

  3. 确保已安装最新版本的 Azure PowerShell cmdlet(最低为 4.3.0)。 有关详细信息,请参阅部署 Azure PowerShell cmdlet

  4. 运行以下 Azure PowerShell cmdlet。 要获得可用环境的列表,请运行 cmdlet Get-AzEnvironment。 如果想要使用全局 Azure,则环境是 AzureCloud。 对于由世纪互联运营的 Microsoft Azure,请选择 “AzureChinaCloud”。

    适用于 SAP 的 VM 扩展支持配置一个代理,该扩展应使用此代理连接到外部资源,例如 Azure 资源管理器 API。 请使用参数 -ProxyURI 设置此代理。

    $env = Get-AzEnvironment -Name <name of the environment>
    Connect-AzAccount -Environment $env
    Set-AzContext -SubscriptionName <subscription name>
    
    Set-AzVMAEMExtension -ResourceGroupName <resource group name> -VMName <virtual machine name> -InstallNewExtension
    
  5. 重启 SAP 主机代理

    登录到启用了适用于 SAP 的 VM 扩展的虚拟机,如果已安装 SAP 主机代理,请重启该代理。 SAP 主机代理在重启 VM 扩展之前不使用该扩展。 它目前无法检测到扩展在启动后是否已安装。

使用 Azure CLI 配置适用于 SAP 解决方案的 Azure VM 扩展

适用于 SAP 的新版 VM 扩展使用分配给 VM 的托管标识来访问 VM 的监视和配置数据。

注意

以下步骤要求拥有对资源组或单一资源(虚拟机、数据磁盘等)的“所有者”特权

  1. 确保使用 SAP 主机代理 7.21 PL 47 或更高版本。

  2. 确保卸载适用于 SAP 的 VM 扩展的当前版本。 不能在同一 VM 上同时安装适用于 SAP 的 VM 扩展的两个版本。

  3. 安装最新版本的 Azure CLI 2.0(2.19.1 或更高版本)。

  4. 使用 Azure 帐户进行登录:

    az login
    
  5. 安装 Azure CLI AEM 扩展。 确保使用 0.2.2 或更高版本。

    az extension add --name aem
    
  6. 启用新扩展:

    适用于 SAP 的 VM 扩展支持配置一个代理,该扩展应使用此代理连接到外部资源,例如 Azure 资源管理器 API。 请使用参数 --proxy-uri 设置此代理。

    az vm aem set -g <resource-group-name> -n <vm name> --install-new-extension
    
  7. 重启 SAP 主机代理

    登录到启用了适用于 SAP 的 VM 扩展的虚拟机,如果已安装 SAP 主机代理,请重启该代理。 SAP 主机代理在重启 VM 扩展之前不使用该扩展。 它目前无法检测到扩展在启动后是否已安装。

手动配置适用于 SAP 解决方案的 Azure VM 扩展

如果想要使用 Azure 资源管理器、Terraform 或其他工具部署 SAP 的 VM 扩展,还可以通过手动方式(即不使用专用的 PowerShell 或 Azure CLI 命令)部署 SAP 的 VM 扩展。

在为 SAP 部署 VM 扩展之前,请确保将用户或系统分配的托管标识分配给虚拟机。 有关详细信息,请阅读以下指南:

为虚拟机分配标识后,请授予 VM 读取资源组或与虚拟机关联的单个资源(VM、网络接口、OS 磁盘和数据磁盘)的权限。 建议使用内置的读取者角色来授予对这些资源的访问权限。 还可以通过将 VM 标识添加到已具有对所需资源的读取访问权限的 Microsoft Entra 组来授予此访问权限。 如果你使用某个已具有所需权限的用户分配的标识,则在部署适用于 SAP 的 VM 扩展时不再需要具有所有者权限。

可通过不同的方式手动部署适用于 SAP 的 VM 扩展。 请在接下来的章节中查找一些示例。

该扩展目前支持以下配置键。 在下面的示例中,显示了 msi_res_id。

  • msi_res_id:用户分配的标识的 ID,扩展应该使用它来获取有关 VM 及其资源的所需信息
  • proxy:扩展应该用来连接到 Internet 以执行特定操作(例如检索有关虚拟机及其资源的信息)的代理的 URL。

使用 Azure PowerShell 进行手动部署

以下代码包含四个示例。 它演示如何使用系统或用户分配的标识在 Windows 和 Linux 上部署扩展。 请确保替换示例中的资源组名称、位置和 VM 名称。

# Windows VM - user assigned identity
Set-AzVMExtension -Publisher "Microsoft.AzureCAT.AzureEnhancedMonitoring" -ExtensionType "MonitorX64Windows" -ResourceGroupName "<rg name>" -VMName "<vm name>" `
   -Name "MonitorX64Windows" -TypeHandlerVersion "1.0" -Location "<location>" -SettingString '{"cfg":[{"key":"msi_res_id","value":"<user assigned resource id>"}]}'

# Windows VM - system assigned identity
Set-AzVMExtension -Publisher "Microsoft.AzureCAT.AzureEnhancedMonitoring" -ExtensionType "MonitorX64Windows" -ResourceGroupName "<rg name>" -VMName "<vm name>" `
   -Name "MonitorX64Windows" -TypeHandlerVersion "1.0" -Location "<location>" -SettingString '{"cfg":[]}'

# Linux VM - user assigned identity
Set-AzVMExtension -Publisher "Microsoft.AzureCAT.AzureEnhancedMonitoring" -ExtensionType "MonitorX64Linux" -ResourceGroupName "<rg name>" -VMName "<vm name>" `
   -Name "MonitorX64Linux" -TypeHandlerVersion "1.0" -Location "<location>" -SettingString '{"cfg":[{"key":"msi_res_id","value":"<user assigned resource id>"}]}'

# Linux VM - system assigned identity
Set-AzVMExtension -Publisher "Microsoft.AzureCAT.AzureEnhancedMonitoring" -ExtensionType "MonitorX64Linux" -ResourceGroupName "<rg name>" -VMName "<vm name>" `
   -Name "MonitorX64Linux" -TypeHandlerVersion "1.0" -Location "<location>" -SettingString '{"cfg":[]}'

使用 Azure CLI 进行手动部署

以下代码包含四个示例。 它演示如何使用系统或用户分配的标识在 Windows 和 Linux 上部署扩展。 请确保替换示例中的资源组名称、位置和 VM 名称。

# Windows VM - user assigned identity
az vm extension set --publisher "Microsoft.AzureCAT.AzureEnhancedMonitoring" --name "MonitorX64Windows" --resource-group "<rg name>" --vm-name "<vm name>" \
   --extension-instance-name "MonitorX64Windows" --settings '{"cfg":[{"key":"msi_res_id","value":"<user assigned resource id>"}]}'

# Windows VM - system assigned identity
az vm extension set --publisher "Microsoft.AzureCAT.AzureEnhancedMonitoring" --name "MonitorX64Windows" --resource-group "<rg name>" --vm-name "<vm name>" \
   --extension-instance-name "MonitorX64Windows" --settings '{"cfg":[]}'
   
# Linux VM - user assigned identity
az vm extension set --publisher "Microsoft.AzureCAT.AzureEnhancedMonitoring" --name "MonitorX64Linux" --resource-group "<rg name>" --vm-name "<vm name>" \
   --extension-instance-name "MonitorX64Linux" --settings '{"cfg":[{"key":"msi_res_id","value":"<user assigned resource id>"}]}'

# Linux VM - system assigned identity
az vm extension set --publisher "Microsoft.AzureCAT.AzureEnhancedMonitoring" --name "MonitorX64Linux" --resource-group "<rg name>" --vm-name "<vm name>" \
   --extension-instance-name "MonitorX64Linux" --settings '{"cfg":[]}'

使用 Terraform 进行手动部署

以下清单包含四个示例。 它演示如何使用系统或用户分配的标识在 Windows 和 Linux 上部署扩展。 请确保替换示例中 VM 的 ID 和用户分配的标识的 ID。


# Windows VM - user assigned identity

resource "azurerm_virtual_machine_extension" "example" {
  name                 = "MonitorX64Windows"
  virtual_machine_id   = "<vm id>"
  publisher            = "Microsoft.AzureCAT.AzureEnhancedMonitoring"
  type                 = "MonitorX64Windows"
  type_handler_version = "1.0"
  auto_upgrade_minor_version = true

  settings = <<SETTINGS
{
    "cfg":[
        {
            "key":"msi_res_id",
            "value":"<user assigned resource id>"
        }
    ]
}
SETTINGS
}

# Windows VM - system assigned identity

resource "azurerm_virtual_machine_extension" "example" {
  name                 = "MonitorX64Windows"
  virtual_machine_id   = "<vm id>"
  publisher            = "Microsoft.AzureCAT.AzureEnhancedMonitoring"
  type                 = "MonitorX64Windows"
  type_handler_version = "1.0"
  auto_upgrade_minor_version = true

  settings = <<SETTINGS
{
    "cfg":[
    ]
}
SETTINGS
}

# Linux VM - user assigned identity

resource "azurerm_virtual_machine_extension" "example" {
  name                 = "MonitorX64Linux"
  virtual_machine_id   = "<vm id>"
  publisher            = "Microsoft.AzureCAT.AzureEnhancedMonitoring"
  type                 = "MonitorX64Linux"
  type_handler_version = "1.0"
  auto_upgrade_minor_version = true

  settings = <<SETTINGS
{
    "cfg":[
        {
            "key":"msi_res_id",
            "value":"<user assigned resource id>"
        }
    ]
}
SETTINGS
}

# Linux VM - system assigned identity

resource "azurerm_virtual_machine_extension" "example" {
  name                 = "MonitorX64Linux"
  virtual_machine_id   = "<vm id>"
  publisher            = "Microsoft.AzureCAT.AzureEnhancedMonitoring"
  type                 = "MonitorX64Linux"
  type_handler_version = "1.0"
  auto_upgrade_minor_version = true

  settings = <<SETTINGS
{
    "cfg":[
    ]
}
SETTINGS
}

适用于 SAP 的 VM 扩展的版本

如果要禁用 VM 扩展的自动更新,或者要部署扩展的特定版本,可以使用 Azure CLI 或 Azure PowerShell 检索可用版本。

Azure PowerShell

# Windows
Get-AzVMExtensionImage -Location westeurope -PublisherName Microsoft.AzureCAT.AzureEnhancedMonitoring -Type MonitorX64Windows
# Linux
Get-AzVMExtensionImage -Location westeurope -PublisherName Microsoft.AzureCAT.AzureEnhancedMonitoring -Type MonitorX64Linux

Azure CLI

# Windows
az vm extension image list --location westeurope --publisher Microsoft.AzureCAT.AzureEnhancedMonitoring --name MonitorX64Windows
# Linux
az vm extension image list --location westeurope --publisher Microsoft.AzureCAT.AzureEnhancedMonitoring --name MonitorX64Linux

就绪情况检查

通过此项检查,可以确认底层适用于 SAP 的 Azure 扩展是否能够提供 SAP 应用程序中显示的所有性能指标。

在 Windows VM 上运行就绪状态检查

  1. 登录到 Azure 虚拟机(不需要使用管理员帐户)。
  2. 打开 Web 浏览器并导航到 http://127.0.0.1:11812/azure4sap/metrics
  3. 浏览器应显示或下载包含虚拟机的监视数据的 XML 文件。 如果没有,请确保已安装适用于 SAP 的 Azure 扩展。
  4. 检查 XML 文件的内容。 你可以在 http://127.0.0.1:11812/azure4sap/metrics 访问该 XML文件,其中包含适用于 SAP 的所有 Azure 性能计数器(已填充)。 还包含适用于 SAP 的 Azure 扩展状态的摘要和运行状况指示符。
  5. 检查“提供程序健康状况描述”元素的值。 如果值不是 OK,请按照运行状况检查一章中的说明进行操作。

在 Linux VM 上运行就绪状态检查

  1. 使用 SSH 连接到 Azure 虚拟机。
  2. 检查以下命令的输出
    curl http://127.0.0.1:11812/azure4sap/metrics
    
    预期结果:返回一个 XML 文档,其中包含虚拟机及其磁盘和网络接口的监视信息。

如果前面的检查未成功,请运行以下额外的检查:

  1. 确保已安装并启用了 waagent。

    a. sudo ls -al /var/lib/waagent/运行

    预期结果:列出 waagent 目录的内容。

    b. ps -ax | grep waagent运行

    预期结果:显示一个类似于以下内容的条目:python /usr/sbin/waagent -daemon

  2. 确保适用于 SAP 的 Azure 扩展已安装且正常运行。

    a. sudo sh -c 'ls -al /var/lib/waagent/Microsoft.AzureCAT.AzureEnhancedMonitoring.MonitorX64Linux-*/'运行

    预期结果:列出适用于 SAP 的 Azure 扩展目录的内容。

    b. ps -ax | grep AzureEnhanced运行

    预期结果:显示一个类似于以下内容的条目:/var/lib/waagent/Microsoft.AzureCAT.AzureEnhancedMonitoring.MonitorX64Linux-1.0.0.82/AzureEnhancedMonitoring -monitor

  3. 如 SAP 说明 1031096 中所述安装 SAP 主机代理,并检查 saposcol 的输出。

    a. /usr/sap/hostctrl/exe/saposcol -d运行

    b. dump ccm运行

    c. 检查 Virtualization_Configuration\Enhanced Monitoring Access 度量值是否为 true

如果已安装 SAP NetWeaver ABAP 应用程序服务器,请打开事务 ST06,并检查是否已启用监视。

如果其中的任一检查失败,并且你要详细了解如何重新部署该扩展,请参阅适用于 Windows 的故障排除方法适用于 Linux 的故障排除方法

运行状况检查

如果就绪情况检查中所述的测试指出未正确提供某些基础结构数据,请运行本章中所述的运行状况检查,以检查是否正确配置了 Azure 基础结构和适用于 SAP 的 Azure 扩展。

使用 PowerShell 进行运行状况检查

  1. 确保已根据部署 Azure PowerShell cmdlet 中所述安装了最新版本的 Azure PowerShell cmdlet。

  2. 运行以下 Azure PowerShell cmdlet。 若要获得可用环境的列表,请运行 cmdlet Get-AzEnvironment。 若要使用全局 Azure,请选择 AzureCloud 环境。 对于由世纪互联运营的 Microsoft Azure,请选择 “AzureChinaCloud”。

    $env = Get-AzEnvironment -Name <name of the environment>
    Connect-AzAccount -Environment $env
    Set-AzContext -SubscriptionName <subscription name>
    Test-AzVMAEMExtension -ResourceGroupName <resource group name> -VMName <virtual machine name>
    
  3. 脚本将测试你选择的虚拟机的配置。

请确保每个运行状况检查结果都是 OK。 如果某些检查未显示 OK,请按照使用 Azure CLI 配置适用于 SAP 解决方案的 Azure VM 扩展使用 PowerShell 配置适用于 SAP 解决方案的 Azure VM 扩展中所述运行 update cmdlet。 重复就绪情况检查和本章中所述的检查。 如果检查仍然指出部分或所有计数器存在问题,请参阅适用于 Linux 的故障排除方法适用于 Windows 的故障排除方法

使用 Azure CLI 进行运行状况检查

若要使用 Azure CLI 对适用于 SAP 的 Azure VM 扩展进行运行状况检查,请执行以下操作:

  1. 安装 Azure CLI 2.0。 确保至少使用 2.19.1 或更高版本(使用最新版本)。

  2. 使用 Azure 帐户进行登录:

    az login
    
  3. 安装 Azure CLI AEM 扩展。 确保使用 0.2.2 或更高版本。

    az extension add --name aem
    
  4. 验证扩展的安装:

    az vm aem verify -g <resource-group-name> -n <vm name> 
    

脚本将测试你选择的虚拟机的配置。

请确保每个运行状况检查结果都是 OK。 如果某些检查未显示 OK,请按照使用 Azure CLI 配置适用于 SAP 解决方案的 Azure VM 扩展使用 PowerShell 配置适用于 SAP 解决方案的 Azure VM 扩展中所述运行 update cmdlet。 重复就绪情况检查和本章中所述的检查。 如果检查仍然指出部分或所有计数器存在问题,请参阅适用于 Linux 的故障排除方法适用于 Windows 的故障排除方法

适用于 Windows 的故障排除方法

Azure 性能计数器根本未显示

AzureEnhancedMonitoring 进程在 Azure 中收集性能度量值。 如果该进程未在 VM 中运行,则无法收集任何性能度量值。

适用于 SAP 的 Azure 扩展的安装目录为空

问题

安装目录 C:\Packages\Plugins\Microsoft.AzureCAT.AzureEnhancedMonitoring.MonitorX64Windows\<version> 为空。

解决方案

未安装该扩展。 确定这是否为代理问题(如前文所述)。 可能需要重新启动计算机或重新安装 VM 扩展。

缺少某些 Azure 性能计数器

AzureEnhancedMonitoring Windows 进程在 Azure 中收集性能度量值。 该进程从多个来源获取数据。 某些配置数据是从本地收集的,某些性能度量值是从 Azure Monitor 读取的。

如果使用 SAP Note 1999351 进行故障排除不能解决该问题,请在组件 BC-OP-NT-AZR(对于 Windows)或 BC-OP-LNX-AZR(对于 Linux 虚拟机)中打开 SAP 客户支持消息。 请将日志文件 C:\Packages\Plugins\Microsoft.AzureCAT.AzureEnhancedMonitoring.MonitorX64Windows\<version>\logapp.txt 附加到事件。

适用于 Linux 的故障排除方法

Azure 性能计数器根本未显示

Azure 中的性能度量值是由某个守护程序收集的。 如果该守护程序未运行,则无法收集任何性能度量值。

适用于 SAP 的 Azure 扩展的安装目录为空

问题

/var/lib/waagent/ 目录未包含适用于 SAP 的 Azure 扩展的子目录。

解决方案

未安装该扩展。 确定这是否为代理问题(如前文所述)。 可能需要重新启动计算机且/或重新安装 VM 扩展。

缺少某些 Azure 性能计数器

Azure 中的性能度量值是由某个守护程序收集的,该守护程序从多个来源获取数据。 某些配置数据是从本地收集的,某些性能度量值是从 Azure Monitor 读取的。 有关已知问题的完整最新列表,请参阅 SAP 说明 1999351,其中包含有关适用于 SAP 的 Azure 扩展的其他故障排除信息。 如果使用 SAP 说明 1999351 进行故障排除没有解决问题,请按照配置适用于 SAP 的 Azure 扩展中所述,重新安装扩展。 如果问题依然存在,请为 Windows 虚拟机组件 BC-OP-NT-AZR 或 Linux 虚拟机组件 BC-OP-LNX-AZR 创建一条 SAP 客户支持消息。 请将日志文件/var/lib/waagent/Microsoft.AzureCAT.AzureEnhancedMonitoring.MonitorX64Linux-<version>/logapp.txt 附加到事件。

Azure 扩展错误代码

所有错误 ID 具有 a-# 形式的唯一标记,其中 # 是一个数字。 使用该标记可以快速搜索特定的错误和可能的解决方法。

错误 ID 错误说明 解决方案
a-0116 无身份验证令牌 详细信息:
扩展无法获取用于访问 Azure Monitor 中的 VM 指标的身份验证令牌。 若要提供 VM 指标,该扩展需要访问 VM 资源,例如 VM 本身、所有磁盘以及附加到 VM 的所有 NIC
解决方案:
请启用 VM 托管标识,并为其提供对 VM 资源组的读取者角色。 如果使用安装脚本,该脚本会代你执行这些操作。 通常不需要手动启用和分配 VM 托管标识。

后续步骤