適用于 SAP 解決方案的新版本 Azure VM 擴充功能

必要條件

注意

一般支援聲明:透過 SAP 支援通道提供適用于 SAP 的 Azure 擴充功能支援。 如果您需要適用于 SAP 解決方案的 Azure VM 擴充功能協助,請向 SAP 支援開啟支援案例

注意

請務必先卸載 VM 擴充功能,再切換標準與新版本的 Azure Extension for SAP。

注意

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. 執行下列 PowerShell Cmdlet。 如需可用環境的清單,請執行 Cmdlet Get-AzEnvironment 。 如果您想要使用全域 Azure,您的環境是 AzureCloud 。 針對由 21Vianet 運作的 Microsoft Azure,選取 [AzureChinaCloud ]。

    SAP 的 VM 擴充功能支援設定擴充功能應該用來連線到外部資源的 Proxy,例如 Azure Resource Manager API。 請使用參數 -ProxyURI 來設定 Proxy。

    $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 主機代理程式時重新開機。 在 VM 擴充功能重新開機之前,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 擴充功能支援設定擴充功能應該用來連線到外部資源的 Proxy,例如 Azure Resource Manager API。 請使用參數 --proxy-uri 來設定 Proxy。

    az vm aem set -g <resource-group-name> -n <vm name> --install-new-extension
    
  7. 重新開機 SAP 主機代理程式

    登入已啟用 SAP VM 擴充功能的虛擬機器,並在已安裝 SAP 主機代理程式時重新開機。 在 VM 擴充功能重新開機之前,SAP 主機代理程式不會使用 VM 擴充功能。 它目前無法偵測到擴充功能在啟動之後已安裝。

手動設定 SAP 解決方案的 Azure VM 擴充功能

如果您想要使用 Azure Resource Manager、Terraform 或其他工具來部署適用于 SAP 的 VM 擴充功能,您也可以手動部署適用于 SAP 的 VM 擴充功能,亦即不使用專用的 PowerShell 或 Azure CLI 命令。

在部署適用于 SAP 的 VM 擴充功能之前,請務必將使用者或系統指派的受控識別指派給虛擬機器。 如需詳細資訊,請參閱下列指南:

將身分識別指派給虛擬機器之後,請為 VM 提供與虛擬機器相關聯的資源群組或個別資源的讀取權限(VM、網路介面、OS 磁片和資料磁片)。 建議使用內建讀者角色來授與這些資源的存取權。 您也可以將 VM 身分識別新增至已具有必要資源讀取權限的 Microsoft Entra 群組,以授與此存取權。 如果您使用使用者指派的身分識別具有必要許可權的使用者指派身分識別,則在部署 SAP 的 VM 擴充功能時,不再需要擁有擁有者許可權。

有不同方式可以手動部署 SAP 的 VM 擴充功能。 請在下一章中找到一些範例。

延伸模組目前支援下列組態金鑰。 在下列範例中,會顯示msi_res_id。

  • msi_res_id:擴充功能應該用來取得 VM 及其資源所需資訊的使用者指派身分識別識別碼
  • proxy:擴充功能應該用來連線到網際網路的 Proxy 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 識別碼和識別碼。


# 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 應用程式內出現的所有效能計量都是由適用于 SAP 的基礎 Azure 擴充功能所提供。

在 Windows VM 上執行整備檢查

  1. 登入 Azure 虛擬機器(不需要使用系統管理員帳戶)。
  2. 開啟網頁瀏覽器並流覽至 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. 檢查 Provider Health Description 元素的值 。 如果值不 正常 ,請遵循健康情況檢查 一章 中的指示。

在 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\增強型 監視存取 計量是否為 true

如果您已安裝 SAP NetWeaver ABAP 應用程式伺服器,請開啟交易 ST06 並檢查是否已啟用監視。

如果上述任一檢查失敗,以及有關如何重新部署擴充功能的詳細資訊,請參閱 Windows 疑難排解或 Linux 疑難排解

健康狀態檢查

如果某些基礎結構資料未正確傳遞,如整備檢查 中所述 的測試所指示,請執行本章所述的健康情況檢查,以檢查 Azure 基礎結構和適用于 SAP 的 Azure 擴充功能是否已正確設定。

使用 PowerShell 進行健康情況檢查

  1. 請確定您已安裝最新版的 Azure PowerShell Cmdlet,如部署 Azure PowerShell Cmdlet 中所述

  2. 執行下列 PowerShell Cmdlet。 如需可用環境的清單,請執行 Cmdlet Get-AzEnvironment 。 若要使用全域 Azure,請選取 AzureCloud 環境。 針對由 21Vianet 運作的 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. 腳本會測試您所選取虛擬機器的組態。

確定每個健康狀態檢查的結果都 [確定]。 如果某些檢查未顯示 [確定 ],請執行更新 Cmdlet,如 使用 Azure CLI 設定 SAP 解決方案的 Azure VM 擴充功能或使用 PowerShell 設定 SAP 解決方案的 Azure VM 擴充功能中所述。 重複整備檢查和本章中所述 的檢查 。 如果檢查仍然指出某些或所有計數器有問題,請參閱 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> 
    

腳本會測試您所選取虛擬機器的組態。

確定每個健康狀態檢查的結果都 [確定]。 如果某些檢查未顯示 [確定 ],請執行更新 Cmdlet,如 使用 Azure CLI 設定 SAP 解決方案的 Azure VM 擴充功能或使用 PowerShell 設定 SAP 解決方案的 Azure VM 擴充功能中所述。 重複整備檢查和本章中所述 的檢查 。 如果檢查仍然指出某些或所有計數器有問題,請參閱 Linux 疑難排解或 Windows 疑難排解。

Windows 疑難排解

Azure 效能計數器完全不會顯示

AzureEnhancedMonitoring 程式會收集 Azure 中的效能計量。 如果進程未在您的 VM 中執行,則無法收集任何效能計量。

適用於 SAP 的 Azure 延伸模組的安裝目錄是空的

問題

安裝目錄 C:\Packages\Plugins\Microsoft.AzureCAT.AzureEnhancedMonitoring.MonitorX64Windows\ < version > 是空的。

解決方案

未安裝擴充功能。 判斷這是否為 Proxy 問題 (如先前所述)。 您可能需要重新開機電腦,或再次安裝 VM 擴充功能。

遺漏一些 Azure 效能計數器

AzureEnhancedMonitoring Windows 程式會收集 Azure 中的效能計量。 此程式會從數個來源取得資料。 某些組態資料會收集到本機,而某些效能計量會從 Azure 監視器讀取。

如果使用 SAP 附注 進行疑難排解1999351 無法解決問題,請在 Linux 虛擬機器的 BC-OP-NT-AZR 元件 BC-OP-NT-AZR 上開啟 SAP 客戶支援訊息。 請將記錄檔 C:\Packages\Plugins\Microsoft.AzureCAT.AzureEnhancedMonitoring.MonitorX64Windows\ < version > \logapp.txt 附加至事件。

Linux 疑難排解

Azure 效能計數器完全不會顯示

精靈會收集 Azure 中的效能計量。 如果精靈未執行,則無法收集任何效能計量。

適用於 SAP 的 Azure 延伸模組的安裝目錄是空的

問題

目錄 /var/lib/waagent/ 沒有適用于 SAP 的 Azure 擴充功能子目錄。

解決方案

未安裝擴充功能。 判斷這是否為 Proxy 問題 (如先前所述)。 您可能需要重新開機電腦和/或再次安裝 VM 擴充功能。

遺漏一些 Azure 效能計數器

Azure 中的效能計量由精靈收集,精靈會從數個來源取得資料。 某些組態資料會收集到本機,而某些效能計量會從 Azure 監視器讀取。 如需已知問題的完整和最新清單,請參閱 SAP 附注 1999351 ,其中包含適用于 SAP 的 Azure 擴充功能的其他疑難排解資訊。 如果使用 SAP 附注 進行 疑難排解1999351無法解決問題,請再次安裝擴充功能,如設定適用于 SAP 的 Azure 擴充功能中所述 。 若問題持續發生,請在元件 BC-OP-NT-AZR (Windows) 或 BC-OP-LNX-AZR (Linux 虛擬機器) 上開啟 SAP 客戶支援訊息。 請將記錄檔 /var/lib/waagent/Microsoft.AzureCAT.AzureEnhancedMonitoring.MonitorX64Linux-version <> /logapp.txt 附加至事件。

Azure 擴充功能錯誤碼

所有錯誤識別碼都有 a-# 格式的唯一標記,其中 # 是數位。 它可讓您快速搜尋特定錯誤和可能的解決方案。

錯誤識別碼 錯誤描述 方案
a-0116 無驗證權杖 其他資訊:
延伸模組無法取得驗證權杖,以存取 Azure 監視器中的 VM 計量。 若要傳遞 VM 計量,它需要存取 VM 資源,例如 VM 本身、所有磁片和連結至 VM 的所有 NIC
解決方案:
請啟用 VM 受控識別,並為 VM 資源群組提供讀者角色。 當您使用安裝腳本時,腳本會為您執行此動作。 通常您不需要手動啟用和指派 VM 受控識別。

下一步