Windows 用 Azure Diagnostics (WAD) 拡張機能 のインストールと構成

Azure Diagnostics 拡張機能は Azure Monitor のエージェントで、ゲスト オペレーティング システムと Azure 仮想マシンと他のコンピューティング リソースのワークロードから監視データを収集します。 この記事では、Windows 用 Azure Diagnostics 拡張機能をインストールして構成する方法、およびデータを Azure Storage アカウントに格納する方法について説明します。

診断拡張機能は、Azure の仮想マシン拡張機能として実装されます。 Azure Resource Manager テンプレート、PowerShell、および Azure CLI を使用して、同じインストール オプションをサポートします。 仮想マシン拡張機能をインストールして管理する方法については、「Windows 用の仮想マシン拡張機能とその機能」を参照してください。

概要

Windows 用 Azure Diagnostics 拡張機能を構成するときに、指定したすべてのデータが送信されるストレージ アカウントを指定する必要があります。 必要に応じて、1 つ以上の "データ シンク" を追加して、別の場所にデータを送信することもできます。

  • Azure Monitor シンク - ゲスト パフォーマンス データを Azure Monitor メトリックに送信します。
  • Azure Event Hub シンク - Azure の外部に転送するために、ゲスト パフォーマンスおよびログ データをイベント ハブに送信します。 このシンクは、Azure portal では構成できません。

Azure portal を使用してインストールする

Azure portal で、個々の仮想マシンに診断拡張機能をインストールし、構成することができます。 構成を直接操作するのではなく、インターフェイスを操作します。 診断拡張機能を有効にすると、最も一般的なパフォーマンス カウンターとイベントを備えた既定の構成が自動的に使用されます。 特定の要件に応じて、この既定構成を変更できます。

Note

次に、診断拡張機能の最も一般的な設定について説明します。 すべての構成オプションの詳細については、「Windows Diagnostics 拡張機能のスキーマ」を参照してください。

  1. Azure portal で仮想マシンのメニューを開きます。

  2. VM メニューの [監視] セクションで、[診断設定] を選択します。

  3. 診断拡張機能がまだ有効になっていない場合は、[ゲスト レベルの監視を有効にする] を選択します。

    Screenshot that shows enabling monitoring.

  4. VM 用に新しい Azure Storage アカウントが作成されます。 名前は、VM のリソース グループの名前に基づいて作成されます。 ゲスト パフォーマンス カウンターとログの既定のセットが選択されます。

    Screenshot that shows Diagnostic settings.

  5. [パフォーマンス カウンター] タブで、この仮想マシンから収集するゲスト メトリックを選択します。 詳細な選択を行うには、 [カスタム] 設定を使用します。

    Screenshot that shows Performance counters.

  6. [ログ] タブで、仮想マシンから収集するログを選択します。 ログはストレージまたはイベント ハブに送信できますが、Azure Monitor には送信できません。 Log Analytics エージェントを使用して、Azure Monitor にゲスト ログを収集します。

    Screenshot that shows the Logs tab with different logs selected for a virtual machine.

  7. [クラッシュ ダンプ] タブで、クラッシュ後にメモリ ダンプを収集するプロセスを指定します。 データは、診断設定のストレージ アカウントに書き込まれます。 必要に応じて、BLOB コンテナーを指定できます。

    Screenshot that shows the Crash dumps tab.

  8. [シンク] タブで、Azure Storage 以外の場所にデータを送信するかどうかを指定します。 [Azure Monitor] を選択した場合、ゲスト パフォーマンス データは、Azure Monitor メトリックに送信されます。 Azure portal を使用してイベント ハブ シンクを構成することはできません。

    Screenshot that shows the Sinks tab with the Send diagnostic data to Azure Monitor option enabled.

    仮想マシン用に構成されたシステム割り当て ID を有効にしていない場合、Azure Monitor シンクで構成を保存したときに、次の警告が表示されることがあります。 バナーを選択して、システム割り当て ID を有効にします。

    Screenshot that shows the managed identity warning.

  9. [エージェント] タブでは、ストレージ アカウントを変更し、ディスク クォータを設定し、診断インフラストラクチャ ログを収集するかどうかを指定できます。

    Screenshot that shows the Agent tab with the option to set the storage account.

  10. [保存] を選んで構成を保存します。

注意

診断拡張機能の構成は、JSON と XML のどちらの形式にすることもできますが、Azure portal で実行される構成は常に JSON 形式で保存されます。 別の構成方法で XML を使用していて、Azure portal で構成を変更した場合、設定は JSON に変更されます。 また、これらのログの保有期間を設定するオプションはありません。

Resource Manager テンプレート

Azure Resource Manager テンプレートを使用した診断拡張機能のデプロイについては、「Windows VM と Azure Resource Manager テンプレートで監視と診断を利用する」を参照してください。

Azure CLI でのデプロイ

次の例のように、Azure CLI を使用して、az vm extension set を使用して Azure Diagnostics 拡張機能を既存の仮想マシンにデプロイできます。

az vm extension set \
  --resource-group myResourceGroup \
  --vm-name myVM \
  --name IaaSDiagnostics \
  --publisher Microsoft.Azure.Diagnostics \
  --protected-settings protected-settings.json \
  --settings public-settings.json 

保護された設定は、構成スキーマの PrivateConfig 要素で定義されます。 ストレージ アカウントを定義する保護された設定ファイルの最小限の例を次に示します。 プライベート設定の詳細については、構成例に関する記事を参照してください。

{
    "storageAccountName": "mystorageaccount",
    "storageAccountKey": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
    "storageAccountEndPoint": "https://core.windows.net"
}

パブリック設定は、構成スキーマの Public 要素で定義されます。 診断インフラストラクチャのログ、1 つのパフォーマンス カウンター、および 1 つのイベント ログの収集を有効にするパブリック設定ファイルの最小限の例を次に示します。 パブリック設定の詳細については、構成例に関する記事を参照してください。

{
  "StorageAccount": "mystorageaccount",
  "WadCfg": {
    "DiagnosticMonitorConfiguration": {
      "overallQuotaInMB": 5120,
      "PerformanceCounters": {
        "scheduledTransferPeriod": "PT1M",
        "PerformanceCounterConfiguration": [
          {
            "counterSpecifier": "\\Processor Information(_Total)\\% Processor Time",
            "unit": "Percent",
            "sampleRate": "PT60S"
          }
        ]
      },
      "WindowsEventLog": {
        "scheduledTransferPeriod": "PT1M",
        "DataSource": [
          {
            "name": "Application!*[System[(Level=1 or Level=2 or Level=3)]]"
          }
        ]
      }
    }
  }
}

PowerShell でのデプロイ

次の例のように、PowerShell を使用し、Set-AzVMDiagnosticsExtension を使用して、Azure Diagnostics 拡張機能を既存の仮想マシンにデプロイできます。

Set-AzVMDiagnosticsExtension -ResourceGroupName "myvmresourcegroup" `
  -VMName "myvm" `
  -DiagnosticsConfigurationPath "DiagnosticsConfiguration.json"

プライベート設定は PrivateConfig 要素で定義されます。 パブリック設定は、構成スキーマの Public 要素で定義されます。 また、ストレージ アカウントの詳細をプライベート設定に含めるのではなく、Set-AzVMDiagnosticsExtension コマンドレットのパラメーターとして指定することもできます。

診断インフラストラクチャのログ、1 つのパフォーマンス カウンター、および 1 つのイベント ログの収集を有効にする構成ファイルの最小限の例を次に示します。 プライベートおよびパブリックの設定の詳細については、構成例に関する記事を参照してください。

{
    "PublicConfig": {
        "WadCfg": {
            "DiagnosticMonitorConfiguration": {
                "overallQuotaInMB": 10000,
                "DiagnosticInfrastructureLogs": {
                    "scheduledTransferLogLevelFilter": "Error"
                },
                "PerformanceCounters": {
                    "scheduledTransferPeriod": "PT1M",
                    "PerformanceCounterConfiguration": [
                        {
                            "counterSpecifier": "\\Processor(_Total)\\% Processor Time",
                            "sampleRate": "PT3M",
                            "unit": "percent"
                        }
                    ]
                },
                "WindowsEventLog": {
                    "scheduledTransferPeriod": "PT1M",
                        "DataSource": [
                        {
                            "name": "Application!*[System[(Level=1 or Level=2 or Level=3)]]"
                        }
                    ]
                }
            }
        },
        "StorageAccount": "mystorageaccount",
        "StorageType": "TableAndBlob"
    },
    "PrivateConfig": {
        "storageAccountName": "mystorageaccount",
        "storageAccountKey": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
        "storageAccountEndPoint": "https://core.windows.net"
    }
}

また、「PowerShell を使用して Windows を実行している仮想マシンで Azure Diagnostics を有効にする」も参照してください。

データ ストレージ

次の表は、診断拡張機能から収集されるさまざまな種類のデータと、それらがテーブルまたは BLOB のどちらとして格納されているかを示しています。 テーブルに格納されているデータは、パブリック構成の StorageType 設定に応じて BLOB に保存することもできます。

Data ストレージの種類 説明
WADDiagnosticInfrastructureLogsTable テーブル 診断モニターと構成の変更。
WADDirectoriesTable テーブル 診断モニターで監視されているディレクトリ。 このグループには、IIS ログ、IIS 失敗要求ログ、およびカスタム ディレクトリが含まれます。 BLOB ログ ファイルの場所は Container フィールドで指定され、BLOB の名前は RelativePath フィールドで指定されます。 AbsolutePath フィールドでは、Azure 仮想マシンに存在するファイルの場所と名前を示します。
WadLogsTable テーブル トレース リスナーを使用してコードに書き込まれたログ。
WADPerformanceCountersTable テーブル パフォーマンス カウンター。
WADWindowsEventLogsTable テーブル Windows イベント ログ。
wad-iis-failedreqlogfiles BLOB IIS の失敗した要求ログの情報が含まれています。
wad-iis-logfiles BLOB IIS ログに関する情報が含まれています。
"custom" BLOB 診断モニターによって監視されるディレクトリの構成に基づくカスタム コンテナーです。 この BLOB コンテナーの名前は WADDirectoriesTable で指定されます。

診断データを表示するツール

ストレージへの転送後にデータを表示するには、いくつかのツールを利用できます。 次に例を示します。

  • Visual Studio のサーバー エクスプローラー: Azure Tools for Microsoft Visual Studio がインストールされている場合、サーバー エクスプローラーの Azure Storage ノードを使用して、Azure Storage アカウントの読み取り専用の BLOB およびテーブル データを表示できます。 データは、ローカルのストレージ エミュレーター アカウントから表示できます。また、Azure 用に作成したストレージ アカウントから表示することもできます。 詳細については、「サーバー エクスプローラーを使用したストレージ リソースの参照と管理」を参照してください。
  • Microsoft Azure Storage Explorer: Windows、OSX、Linux で Azure Storage データを容易に操作できるスタンドアロン アプリです。
  • Azure Management Studio: このツールには Azure Diagnostics Manager が含まれています。 このツールを使用すると、Azure で稼働しているアプリケーションによって収集された診断データを表示、ダウンロード、および管理することができます。

次のステップ

Azure Event Hubs への監視データの転送の詳細については、「Windows Azure Diagnostics 拡張機能から Event Hubs にデータを送信する」を参照してください。