次の方法で共有


Windows 仮想マシン (クラシック) の Azure Monitor メトリック データベースにゲスト OS メトリックを送信する

Azure Az PowerShell モジュールを使用して Azure と対話することをお勧めします。 作業を始めるには、「Azure PowerShell をインストールする」を参照してください。 Az PowerShell モジュールへの移行方法については、Migrate Azure PowerShell from AzureRM to Az を参照してください。

Azure Monitor 診断拡張機能 ("WAD" または "診断" と呼ばれます) を使用すると、仮想マシン、クラウド サービス、または Service Fabric クラスターの一部として実行されているゲスト オペレーティング システム (ゲスト OS) からメトリックとログを収集できます。 この拡張機能は、さまざまな場所にテレメトリを送信できます。

この記事では、Windows 仮想マシン (クラシック) のゲスト OS パフォーマンス メトリックを Azure Monitor メトリック データベースに送信するプロセスについて説明します。 診断バージョン 1.11 以降では、標準のプラットフォーム メトリックが既に収集されている Azure Monitor メトリック ストアにメトリックを直接書き込むことができます。

この場所に格納すると、プラットフォーム メトリックの場合と同じアクションにアクセスできます。 アクションには、ほぼリアルタイムのアラート、グラフ作成、ルーティング、REST API からのアクセスなどが含まれます。 以前は、診断拡張機能は Azure Storage に書き込みますが、Azure Monitor データ ストアには書き込まれていません。

この記事で説明するプロセスは、Windows オペレーティング システムを実行している従来の仮想マシンでのみ機能します。

[前提条件]

クラシック仮想マシンとストレージ アカウントを作成する

  1. Azure portal を使用してクラシック VM を作成します。

    クラシック VM の作成

  2. この VM を作成するときは、新しいクラシック ストレージ アカウントを作成するオプションを選択します。 このストレージ アカウントは、後の手順で使用します。

  3. Azure portal で、[ ストレージ アカウント ] リソース ウィンドウに移動します。 [ キー] を選択し、ストレージ アカウント名とストレージ アカウント キーを書き留めます。 この情報は、後の手順で必要になります。

    ストレージ アクセス キー

サービス プリンシパルを作成する

「サービス プリンシパルの作成」の手順に従って、Microsoft Entra テナントに サービス プリンシパルを作成します。 このプロセスを実行する際は、次の点に注意してください。

メトリックを出力するリソースに対して、このアプリの 監視メトリック パブリッシャー のアクセス許可を付与します。 リソース グループまたはサブスクリプション全体を使用できます。

診断拡張機能では、サービス プリンシパルを使用して Azure Monitor に対する認証を行い、クラシック VM のメトリックを出力します。

診断拡張機能の構成の作成

  1. 診断拡張機能の構成ファイルを準備します。 このファイルは、診断拡張機能がクラシック VM 用に収集する必要があるログとパフォーマンス カウンターを指定します。 次に例を示します。

    <?xml version="1.0" encoding="utf-8"?>
    <DiagnosticsConfiguration xmlns="http://schemas.microsoft.com/ServiceHosting/2010/10/DiagnosticsConfiguration">
    <PublicConfig xmlns="http://schemas.microsoft.com/ServiceHosting/2010/10/DiagnosticsConfiguration">
        <WadCfg>
        <DiagnosticMonitorConfiguration overallQuotaInMB="4096" sinks="applicationInsights.errors">
            <DiagnosticInfrastructureLogs scheduledTransferLogLevelFilter="Error" />
            <Directories scheduledTransferPeriod="PT1M">
                <IISLogs containerName="wad-iis-logfiles" />
                <FailedRequestLogs containerName="wad-failedrequestlogs" />
            </Directories>
            <PerformanceCounters scheduledTransferPeriod="PT1M">
                <PerformanceCounterConfiguration counterSpecifier="\Processor(*)\% Processor Time" sampleRate="PT15S" />
                <PerformanceCounterConfiguration counterSpecifier="\Memory\Available Bytes" sampleRate="PT15S" />
                <PerformanceCounterConfiguration counterSpecifier="\Memory\Committed Bytes" sampleRate="PT15S" />
                <PerformanceCounterConfiguration counterSpecifier="\Memory\% Committed Bytes" sampleRate="PT15S" />
                <PerformanceCounterConfiguration counterSpecifier="\LogicalDisk(*)\Disk Read Bytes/sec" sampleRate="PT15S" />
            </PerformanceCounters>
            <WindowsEventLog scheduledTransferPeriod="PT1M">
                <DataSource name="Application!*[System[(Level=1 or Level=2 or Level=3)]]" />
                <DataSource name="Windows Azure!*[System[(Level=1 or Level=2 or Level=3 or Level=4)]]" />
            </WindowsEventLog>
            <CrashDumps>
                <CrashDumpConfiguration processName="WaIISHost.exe" />
                <CrashDumpConfiguration processName="WaWorkerHost.exe" />
                <CrashDumpConfiguration processName="w3wp.exe" />
            </CrashDumps>
            <Logs scheduledTransferPeriod="PT1M" scheduledTransferLogLevelFilter="Error" />
            <Metrics resourceId="/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/MyResourceGroup/providers/Microsoft.ClassicCompute/virtualMachines/MyClassicVM">
                <MetricAggregation scheduledTransferPeriod="PT1M" />
                <MetricAggregation scheduledTransferPeriod="PT1H" />
            </Metrics>
        </DiagnosticMonitorConfiguration>
        <SinksConfig>
        </SinksConfig>
        </WadCfg>
        <StorageAccount />
    </PublicConfig>
    <PrivateConfig xmlns="http://schemas.microsoft.com/ServiceHosting/2010/10/DiagnosticsConfiguration">
        <StorageAccount name="" endpoint="" />
    </PrivateConfig>
    <IsEnabled>true</IsEnabled>
    </DiagnosticsConfiguration>
    
  2. 診断ファイルの SinksConfig セクションで、次のように新しい Azure Monitor シンクを定義します。

    <SinksConfig>
        <Sink name="AzMonSink">
            <AzureMonitor>
                <ResourceId>Provide the resource ID of your classic VM </ResourceId>
                <Region>The region your VM is deployed in</Region>
            </AzureMonitor>
        </Sink>
    </SinksConfig>
    
  3. 収集するパフォーマンス カウンターの一覧が表示されている構成ファイルのセクションで、パフォーマンス カウンターを Azure Monitor シンク "AzMonSink"にルーティングします。

    <PerformanceCounters scheduledTransferPeriod="PT1M" sinks="AzMonSink">
        <PerformanceCounterConfiguration counterSpecifier="\Processor(_Total)\% Processor Time" sampleRate="PT15S" />
    ...
    </PerformanceCounters>
    
  4. プライベート構成で、Azure Monitor アカウントを定義します。 次に、メトリックの出力に使用するサービス プリンシパル情報を追加します。

    <PrivateConfig xmlns="http://schemas.microsoft.com/ServiceHosting/2010/10/DiagnosticsConfiguration">
    <StorageAccount name="" endpoint="" />
        <AzureMonitorAccount>
            <ServicePrincipalMeta>
                <PrincipalId>clientId for your service principal</PrincipalId>
                <Secret>client secret of your service principal</Secret>
            </ServicePrincipalMeta>
        </AzureMonitorAccount>
    </PrivateConfig>
    
  5. このファイルをローカルに保存します。

診断拡張機能をクラウド サービスにデプロイする

  1. PowerShell を起動してサインインします。

    Login-AzAccount
    
  2. まず、クラシック VM のコンテキストを設定します。

    $VM = Get-AzureVM -ServiceName <VM's Service_Name> -Name <VM Name>
    
  3. VM で作成されたクラシック ストレージ アカウントのコンテキストを設定します。

    $StorageContext = New-AzStorageContext -StorageAccountName <name of your storage account from earlier steps> -storageaccountkey "<storage account key from earlier steps>"
    
  4. 次のコマンドを使用して、診断ファイルのパスを変数に設定します。

    $diagconfig = "<path of the diagnostics configuration file with the Azure Monitor sink configured>"
    
  5. Azure Monitor シンクが構成されている診断ファイルを使用して、クラシック VM の更新プログラムを準備します。

    $VM_Update = Set-AzureVMDiagnosticsExtension -DiagnosticsConfigurationPath $diagconfig -VM $VM -StorageContext $Storage_Context
    
  6. 次のコマンドを実行して、VM に更新プログラムをデプロイします。

    Update-AzureVM -ServiceName "ClassicVMWAD7216" -Name "ClassicVMWAD" -VM $VM_Update.VM
    

診断拡張機能のインストールの一部としてストレージ アカウントを提供することは、引き続き必須です。 診断構成ファイルで指定されたログまたはパフォーマンス カウンターは、指定されたストレージ アカウントに書き込まれます。

Azure portal でメトリックをプロットする

  1. Azure ポータルにアクセスします。

  2. 左側のメニューで、[モニター] を選択 します。

  3. 左側の [監視 ] ウィンドウで、[ メトリック] を選択します。

    メトリック間の移動

  4. リソースのドロップダウン メニューで、クラシック VM を選択します。

  5. 名前空間のドロップダウン メニューで、 azure.vm.windows.guest を選択します。

  6. [メトリック] ドロップダウン メニューで、[ Memory\Committed Bytes in Use] を選択します。

    メトリックをプロットする

次のステップ