Azure Monitor メトリック ストアの従来の Cloud Services にゲスト OS メトリックを送信する

注意

この記事は、Azure Az PowerShell モジュールを使用するように更新されています。 Az PowerShell モジュールは、Azure と対話するために推奨される PowerShell モジュールです。 Az PowerShell モジュールの使用を開始するには、「Azure PowerShell をインストールする」を参照してください。 Az PowerShell モジュールに移行する方法については、「AzureRM から Az への Azure PowerShell の移行」を参照してください。

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

この記事では、従来の Azure Cloud Services 用のゲスト OS のパフォーマンス メトリックを Azure Monitor メトリック ストアに送信するプロセスについて説明します。 診断拡張機能バージョン 1.11 以降、標準プラットフォーム メトリックが既に収集されている Azure Monitor メトリック ストアに、メトリックを直接書き込むことができます。

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

この記事で説明されているプロセスは、Azure Cloud Services でのパフォーマンス カウンターに対してのみ機能します。 他のカスタム メトリックに対しては機能しません。

前提条件

クラウド サービスとストレージ アカウントのプロビジョニング

  1. 従来のクラウド サービスを作成し、デプロイします。 従来の Cloud Services アプリケーションとデプロイのサンプルは、「Azure Cloud Services と ASP.NET を使ってみる」に示されています。

  2. 既存のストレージ アカウントを使用できるか、新しいストレージ アカウントを配置できます。 ストレージ アカウントが、作成した従来のクラウド サービスと同じ領域にある場合は最適です。 Azure portal で、ストレージ アカウント のリソース ブレードに移動し、キー を選択します。 ストレージ アカウント名とストレージ アカウント キーをメモしておきます。 この情報は後続の手順で必要になります。

    ストレージ アカウント キー

サービス プリンシパルの作成

リソースにアクセスできる Azure Active Directory アプリケーションとサービス プリンシパルをポータルで作成する」の手順を使用して、お使いの Azure Active Directory テナントでサービス プリンシパルを作成します。 このプロセスを進める際には、次の点に注意してください。

  • サインイン URL には任意の URL を入力できます。
  • このアプリ用に新しいクライアント シークレットを作成します。
  • 後の手順で使用するために、キーとクライアント ID を保存します。

以前の手順の メトリック パブリッシャーの監視 で作成したアプリに、メトリックを発行するリソースへのアクセス許可を付与します。 アプリを使用して多くのリソースに対してカスタム メトリックを発行する予定である場合は、リソース グループまたはサブスクリプション レベルでこれらのアクセス許可を付与できます。

注意

診断拡張機能では、サービス プリンシパルを使用して、Azure Monitor を認証し、クラウド サービス用のメトリックを発行します。

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

診断拡張機能の構成ファイルを準備します。 このファイルにより、お使いのクラウド サービスに対して、診断拡張機能が収集するパフォーマンス カウンターとログが決まります。 サンプルの診断構成ファイルを以下に示します。

<?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"> 
        <DiagnosticInfrastructureLogs scheduledTransferLogLevelFilter="Error" /> 
        <Directories scheduledTransferPeriod="PT1M"> 
          <IISLogs containerName="wad-iis-logfiles" /> 
          <FailedRequestLogs containerName="wad-failedrequestlogs" /> 
        </Directories> 
        <PerformanceCounters scheduledTransferPeriod="PT1M"> 
          <PerformanceCounterConfiguration counterSpecifier="\Processor(_Total)\% Processor Time" sampleRate="PT15S" /> 
          <PerformanceCounterConfiguration counterSpecifier="\Memory\Available MBytes" sampleRate="PT15S" /> 
          <PerformanceCounterConfiguration counterSpecifier="\Memory\Committed Bytes" sampleRate="PT15S" /> 
          <PerformanceCounterConfiguration counterSpecifier="\Memory\Page Faults/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" /> 
      </DiagnosticMonitorConfiguration> 
      <SinksConfig> 
      </SinksConfig> 
    </WadCfg> 
    <StorageAccount /> 
  </PublicConfig> 
  <PrivateConfig xmlns="http://schemas.microsoft.com/ServiceHosting/2010/10/DiagnosticsConfiguration"> 
    <StorageAccount name="" endpoint="" /> 
</PrivateConfig> 
  <IsEnabled>true</IsEnabled> 
</DiagnosticsConfiguration> 

診断ファイルの "SinksConfig" セクションで、新しい Azure Monitor シンクを定義します。

  <SinksConfig> 
    <Sink name="AzMonSink"> 
    <AzureMonitor> 
      <ResourceId>-Provide ClassicCloudService’s Resource ID-</ResourceId> 
      <Region>-Azure Region your Cloud Service is deployed in-</Region> 
    </AzureMonitor> 
    </Sink> 
  </SinksConfig> 

収集するパフォーマンス カウンターをリストした構成ファイルのセクションに、Azure Monitor シンクを追加します。 このエントリにより、指定されたすべてのパフォーマンス カウンターが Azure Monitor にメトリックとしてルーティングされます。 パフォーマンス カウンターは必要に応じて追加したり、削除することができます。

    <PerformanceCounters scheduledTransferPeriod="PT1M" sinks="AzMonSink">
        <PerformanceCounterConfiguration counterSpecifier="\Processor(_Total)\% Processor Time" sampleRate="PT15S" />
    ...
    </PerformanceCounters>

最後に、プライベート構成に Azure Monitor アカウント セクションを追加します。 前の手順で作成したサービス プリンシパルのクライアント ID とシークレットを入力します。

<PrivateConfig xmlns="http://schemas.microsoft.com/ServiceHosting/2010/10/DiagnosticsConfiguration"> 
  <StorageAccount name="" endpoint="" /> 
    <AzureMonitorAccount> 
      <ServicePrincipalMeta> 
        <PrincipalId>clientId from step 3</PrincipalId> 
        <Secret>client secret from step 3</Secret> 
      </ServicePrincipalMeta> 
    </AzureMonitorAccount> 
</PrivateConfig> 

この診断ファイルをローカルに保存します。

診断拡張機能をクラウド サービスに配置する

PowerShell を起動し、Azure にログインします。

Login-AzAccount 

次のコマンドを使用して、先ほど作成したストレージ アカウントの詳細情報を格納します。

$storage_account = <name of your storage account from step 3> 
$storage_keys = <storage account key from step 3> 

同様に、次のコマンドを使用して、診断ファイルのパスを変数に設定します。

$diagconfig = “<path of the Diagnostics configuration file with the Azure Monitor sink configured>” 

次のコマンドを使用して、Azure Monitor シンクが構成された診断ファイルで、診断拡張機能をクラウド サービスに配置します。

Set-AzureServiceDiagnosticsExtension -ServiceName <classicCloudServiceName> -StorageAccountName $storage_account -StorageAccountKey $storage_keys -DiagnosticsConfigurationPath $diagconfig 

注意

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

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

  1. Azure Portal にアクセスします。

    Azure portal のスクリーンショット。[モニター] が選択され、[メトリック] が選択されています。

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

  3. [モニター] ブレードで、 [メトリックのプレビュー] タブを選択します。

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

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

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

ディメンションのフィルタリング機能と分割機能を使用することで、特定のロールとロール インスタンスにより使用されている合計メモリを選択して表示することができます。

メトリック データのスクリーンショット。

次のステップ