【SAP On Azure】Azure Monitoring Extension for SAPをインストールしてみた

遂にSAP On Azureが認定されましたので、久しぶりにSAP関連の内容を書きたいと思います。
【速報】SAP on Microsoft Azure 稼働認定OK! - SAP技術ブログ | SAPソリューションのREALTECH Japan(リアルテックジャパン)




Azure Monitoring Extension for SAP

以下のノートにもあるように、Azure上で稼働するSAPシステムに対してフルサポートを受けるためには「Azure Monitoring Extension for SAP」というツールをAzure上のVMに導入する必要がありそうです。
2015553 - SAP on Microsoft Azure: Support prerequisites


この「Azure Monitoring Extension for SAP」についてはガイド(SAP on Azure VMs)に詳しく記載があります。

「Azure Monitoring Extension for SAP」とは何か

SAP NetWeaver on Microsoft Azure Virtual Machine Services – Planning and Implementation Guide
「9.1 Azure Monitoring Solution for SAP」
に記載があります

「Azure Monitoring Extension for SAP」の導入方法

SAP NetWeaver on Microsoft Azure Virtual Machine Services – Deployment Guide
「4.5 Configure Azure Monitoring Extension for SAP」
に記載があります



Azure Monitoring Extension for SAPの導入メモ

早速導入してみたので手順を残しておきます。


事前準備

Azure VM Agent(BGInfo)のインストール

Azureで作成したマシンなら作成時に自動インストールできます。

オンプレミスで作成した仮想マシンをAzureにUploadした場合などは、以下のURLからダウンロードしてインストールします。
http://go.microsoft.com/fwlink/?LinkId=394789


正常にインストールできている場合は、デスクトップにマシンの情報が表示されるはずです。


PowerShellのインストール

まずは設定作業を行うマシン(インストール先はサーバでなくクライアントPCでもOKです)にPowerShellを導入します。ガイドに記載されているダウンロードリンクはこちらです。

http://go.microsoft.com/?linkid=9811175&clcid=0x409

記事を書いている時点では「WindowsAzurePowerShell.3f.3f.3fnew.exe」というバージョンのPowerShellがダウンロードできます。




SAP設定用PowerShellモジュールの準備

Azure Monitoring Extension for SAPの導入には、saponazure.psm1というモジュールが必要なのですが、探してみたところ、以下のMSのScript Centerからダウンロードできました。
http://gallery.technet.microsoft.com/scriptcenter/Azure-Enhanced-extension-16ac0960
※正規のダウンロードリンクが見つからなかったので見つかり次第追記します。


SAP設定用モジュールのインポート

Import-Moduleコマンドレットでダウンロードしたsaponazure.psm1ファイルをインポートします。

PS > Import-Module .\saponazure\saponazure.psm1

インポート結果はGet-Moduleコマンドレットで確認できます。

PS > Get-Module saponazure

ModuleType Version    Name                                ExportedCommands
---------- -------    ----                                ----------------
Script     0.0        saponazure                          {Enable-ProvisionGuestAgent, Enable-ProvisionGuestAgent_GU...

 
 
 

設定実行

Azure Monitoring Extension for SAPの設定実行

まずUpdate-VMConfigForSAP_GUIコマンドを実行します。

PS C:\> Update-VMConfigForSAP_GUI

コマンドを実行するとすぐにMicrosoftアカウントでのログオン画面が出てきまので、Azureサブスクリプションが紐付いているアカウントでログオンします。


ログオンしたMicrosoftアカウントに紐付くサブスクリプションが列挙されます。設定を行いたい仮想マシンが紐付くサブスクリプションの数字を入力します。

[1] sub01
[2] sub02
Select Subscription [1-2]: 1


次に選択したサブスクリプション内の仮想マシンから、設定を行う仮想マシンを指定します。最初に仮想マシン名聞かれます。ここで入力した値でフィルタリングされた仮想マシンが列挙されます。


以下の例の場合だとSAPという文字列を含む仮想マシンが列挙されています。列挙された仮想マシンから設定を行いたい仮想マシンの番号を入力すると、設定が動き出します。

Please enter the name of the VM or a filter you want to use to select the VM: SAP   
警告: No deployment found in service: 'SAP'.
        Retrieving information about virtual machines in your subscription. Please wait...
[1] SAPVM01
[2] SAPVM02
[2] SAPVM03
Select Virtual Machine [1-3]: 1
[INFO] Adding configuration for OS disk
[INFO] Enabling Storage Account Metrics for storage account  MyStorageAccount
[INFO] Adding Storage Account Metric information for storage account  MyStorageAccount
[INFO] Enabling Windows Azure Diagnostics for VM SAPVM01
[INFO] Updating Azure Enhanced Monitoring Extension for SAP configuration - Please wait...
[INFO] Azure Enhanced Monitoring Extension for SAP configuration updated. It can take up to 15 Minutes for the
g data to appear in the SAP system.
[INFO] You can check the configuration of a virtual machine by calling the Test-VMConfigForSAP_GUI commandlet.

 



実行中にAzure Portalを見ると拡張機能のインストールが動いているのがわかります。


インストールされたモジュールは「AzureEnhancedMonitoring」というWindowsサービスで動いています。このサービスが動いていない場合はインストールに失敗している可能性があります。


デフォルトのインストールフォルダはこちらです。

C:\Packages\Plugins\Microsoft.AzureCAT.AzureEnhancedMonitoring.AzureCATExtensionHandler\\drop

インストールフォルダを見てみると、azmon4sap.exeというモジュールがインストールされています。





Azure Monitoring Extension for SAPの設定チェック

インストール後に、正常にツールが設定されているかをチェックしたい場合は「Test-VMConfigForSAP_GUIというコマンドレットを利用します。


使い方は「Update-VMConfigForSAP_GUI」とほとんど同じです。実行時のメッセージを確認して全てのチェック項目がOKになっていることを確認します。

メッセージ例は以下のようになります。

PS C:\> Test-VMConfigForSAP_GUI
[1] sub01
[2] sub02
Select Subscription [1-2]: 1
Please enter the name of the VM or a filter you want to use to select the VM: SAPVM01
警告: No deployment found in service: 'SAPVM01'.
        Retrieving information about virtual machines in your subscription. Please wait...
[1] SAPVM01
Select Virtual Machine [1-1]: 1
VM Existance check for SAPVM01 ...OK
VM Guest Agent check...OK
Azure Enhanced Monitoring Extension for SAP Installation check...OK
Storage Metrics check...
        Storage Metrics check for rtjsapejp ...
                Storage Metrics configuration check for rtjsapejp ... OK
                Storage Metrics data check for rtjsapejp ... OK
Azure Enhanced Monitoring Extension for SAP public configuration check...
        Azure Enhanced Monitoring Extension for SAP public configuration check: VM Size ...OK
        Azure Enhanced Monitoring Extension for SAP public configuration check: VM Role Name ...OK
        Azure Enhanced Monitoring Extension for SAP public configuration check: VM Memory ...OK
        Azure Enhanced Monitoring Extension for SAP public configuration check: VM CPU ...OK
        Azure Enhanced Monitoring Extension for SAP public configuration check: Deployment ID ...OK
        Azure Enhanced Monitoring Extension for SAP public configuration check: Script Version ...OK
        Azure Enhanced Monitoring Extension for SAP public configuration check: WAD name ...OK
        Azure Enhanced Monitoring Extension for SAP public configuration check: WAD URI ...OK
        Azure Enhanced Monitoring Extension for SAP public configuration check: VM OS disk URI Key ...OK
        Azure Enhanced Monitoring Extension for SAP public configuration check: VM OS disk URI Value ...OK
        Azure Enhanced Monitoring Extension for SAP public configuration check: VM OS disk URI Name ...OK
        Azure Enhanced Monitoring Extension for SAP public configuration check: VM OS disk name ...OK
        Azure Enhanced Monitoring Extension for SAP public configuration check: VM Data Disks OK
Windows Azure Diagnostics check...
        Windows Azure Diagnostics configuration check...OK
        Windows Azure Diagnostics performance counters check...
                Windows Azure Diagnostics performance counters \Processor(_Total)\% Processor Time check...OK
                Windows Azure Diagnostics performance counters \Processor Information(_Total)\Processor Frequency check...OK
                Windows Azure Diagnostics performance counters \Memory\Available Bytes check...OK
                Windows Azure Diagnostics performance counters \TCPv6\Segments Retransmitted/sec check...OK
                Windows Azure Diagnostics performance counters \TCPv4\Segments Retransmitted/sec check...OK
                Windows Azure Diagnostics performance counters \Network Interface(*)\Bytes Sent/sec check...OK
                Windows Azure Diagnostics performance counters \Network Interface(*)\Bytes Received/sec check...OK
        Windows Azure Diagnostics data check...OK


 
 
 

警告メッセージについて

今まで書いてきたコマンドを実行していると以下のような警告メッセージが表示されることがあります。

警告: Could not extract endpoint information from Azure Sage Account. Using default windows.net

 
 

原因究明のためPowerShellモジュールの中を調べたところ、どうやらストレージアカウントのエンドポイントを確認するための正規表現を「http」としていることが原因のようです。同様の方法(Get-AzureStorageAccount)で取得するとエンドポイントは「https」となるため正規表現にマッチせずに上記の警告メッセージが出ているようでした。この警告は無視できそうです。

function Get-Endpoint
{
    param
    (
        $StorageAccountName
    )

    $storage = Get-AzureStorageAccount -StorageAccountName $StorageAccountName
    $tableendpoint = ($storage.Endpoints | where { $_ -like "*table*" })

    #↓ここでhttpでmatchかけているからだと思います
    if ($tableendpoint -match "http://.*?\.table\.core\.(.*)/") #test-cint.azure-test.net
    {
        $azureTableEndpoint = $Matches[1]
    }
    else
    {
        Write-Warning "Could not extract endpoint information from Azure Storage Account. Using default $AzureEndpoint"
        $azureTableEndpoint = $AzureEndpoint
    }
    return  $azureTableEndpoint
}