Azure Monitor で VM 監視を有効にする

この記事では、コマンド ライン ツールを使用して、仮想マシン、仮想マシン スケール セット、Arc 対応サーバーの監視を大規模に有効にする方法について説明します。 これらのツールを使用すると、コードとしてのインフラストラクチャ (IaC) ツールと自動化メソッドを使用できます。 これらの方法を使用すると、VM フリート全体に監視を一貫してデプロイし、監視構成を DevOps パイプラインに統合できます。

サポートされているマシン

  • Azure 仮想マシン
  • Azure 仮想マシンのスケールセット
  • Arc 対応サーバー

サポートされているオペレーティング システムの一覧については、 Azure Monitor エージェントでサポートされているオペレーティング システムに関するページを参照してください。

前提条件

  • OpenTelemetry メトリクスを有効にする場合は、Azure Monitor ワークスペースを使用します (Azure VM および Azure Arc 対応サーバーへの新規展開では、この方法の使用を推奨します)。 「Azure Monitor ワークスペースの作成」を参照してください。
  • ログベースのメトリックを有効にするか、ログを収集する場合は、Log Analytics ワークスペース。 ログベースのメトリックはクラシック エクスペリエンスであり、通常は既存の実装との互換性のために使用されます。 Log Analytics ワークスペースの作成に関するページを参照してください。
  • アクセス許可はデータ収集規則 (DCR) を作成し、VM に関連付けるためのものです。 データ収集規則のアクセス許可を参照してください。
  • クエリベースのメトリック アラートの管理 ID Azure Monitor ワークスペースで OpenTelemetry メトリックに対するアラート ルールを作成する場合。 クエリ ベースのメトリック アラートの概要 (プレビュー) で説明されているように、ユーザー割り当てマネージド ID を使用し、必要なアクセス許可を付与します。
  • Azure 外部でホストされている仮想マシンを監視する場合は、Azure Connected Machine Agent。 Azure Monitor エージェントをインストールして監視を有効にする前に、Azure Arc 対応サーバーを介してマシンを管理できるように、まず Connected Machine エージェントをインストールする必要があります。 「マシンを Arc 対応サーバーに接続する」を参照してください。

概要

ゲスト オペレーティング システムからデータを収集し、仮想マシンのワークロードをAzure Monitorして完全な監視を有効にするには、次の表に示す 3 つの手順を実行します。 拡張監視を有効にするか、Azure ポータルで DCR を作成すると、ポータルによってこれらの各手順が自動的に完了します。

Step 説明
Azure Monitor エージェントをインストールする 監視する各仮想マシンにエージェントをインストールします。 エージェントは、それぞれ異なるデータを収集する任意の数の DCR を使用できるため、インストールする必要があるのは 1 回だけです。
データ収集規則 (DCR) を作成する 各 DCR は、収集するデータと、それを送信する場所を指定します。 独自の DCR を作成することも、要件に応じて既存の DCR を使用することもできます。 使用する DCR を決定するには、さまざまな種類の DCR とその目的を理解する必要があります。
DCR と VM の関連付け VM と DCR の間に関連付けを作成すると、エージェントはその DCR をダウンロードし、データ収集を開始します。 エージェントがさまざまな種類のデータを収集するために、複数の DCR との関連付けを作成します。 関連付けを削除してデータ収集を停止します。

大規模な仮想マシンの監視を有効にするには、次のオプションを使用します。

監視は、仮想マシンの複数の管理機能を自動的に有効にする基本的なマシン管理に含まれています。 「基本的なマシン管理」を参照してください。

Azure Policy を使用して大規模な監視を有効にするには、「Azure Policy を使用して VM 分析情報を有効にする」を参照してください。

Azure Monitor エージェントをインストールする

最初の手順では、仮想マシンと Arc 対応サーバーに Azure Monitor Agent 拡張機能をインストールします。 次の例では、Azure CLIを使用して、Azure VM にエージェントをインストールします。

# Windows
az vm extension set \
  --name AzureMonitorWindowsAgent \
  --publisher Microsoft.Azure.Monitor \
  --vm-name <vm-name> \
  --resource-group <resource-group>

Linux、Virtual Machine Scale Sets、Arc 対応サーバー、PowerShell、Azure ポータル、Azure Resource Manager テンプレート、自動アップグレードなど、インストール オプションの完全なセットについては、「Azure Monitor エージェントのインストールと管理」を参照してください。

データ収集ルールを作成する

データ収集規則 (DCR) は、Azure Monitor エージェントから収集するデータとその送信先を定義します。 監視対象に応じて、さまざまな種類の DCR を作成できます。 一部の DCR では、VM の監視エクスペリエンスの強化など、Azure ポータルの機能が有効になります。また、分析やアラートに使用できる特定の種類のログやメトリックを収集する DCR もあります。

DCR は JSON で構造化されています。 Azure portal を使用して DCR を作成する場合、DCR 構造に関する知識は必要ありません。 最初から DCR を作成したり、変換の追加などの既存の DCR に高度な機能を追加したりするには、DCR 構造を理解することが必要になる場合があります。

Azure ポータルからオンボードする場合、既定の動作では、選択した監視構成用の新しい DCR が作成されます。 または、既存の DCR を選択して監視構成を簡略化することもできます。 構成が同じリージョン内の Azure Monitor ワークスペースとLog Analytics ワークスペースの両方にデータを送信する場合、オンボードでは両方の宛先に 1 つの DCR を使用しようとします。

Azure ポータルからのオンボードには、OpenTelemetry のプロセスごとのメトリック、推奨されるアラート、Grafana を使用したダッシュボードを含めることもできます。 このポータル ワークフローの詳細については、「Tutorial: Azure仮想マシンの拡張監視を有効にするを参照してください。

次の表では、VM の監視に使用される最も一般的な DCR の種類について説明します。 DCR 型とその構造の完全な一覧については、「 データ収集規則の構造」を参照してください。 DCR の作成の詳細については、「 データ収集規則: 作成と編集」を参照してください。

DCR の種類 説明
OpenTelemetry メトリック OpenTelemetry 標準を使用してシステム レベルのパフォーマンス カウンターを収集します。 このオプションは、Azure ポータルでの新しい VM 監視デプロイに推奨されるメトリック パスです。 次のセクションの DCR 定義を使用します。 counterSpecifiers セクションを変更して、収集するメトリックを追加します。 Azure 仮想マシンの OpenTelemetry メトリックのカスタマイズに関するページを参照してください。
ログ ベースのメトリック Log Analytics ワークスペースで定義済みのパフォーマンス カウンターを収集します。 Azure portal でクラシック ログベースのエクスペリエンスを有効にします。 次のセクションの DCR 定義を使用します。 この DCR は変更しないでください。
ログ Windows イベントや Syslog など、さまざまな種類のログを VM から収集します。 これらの DCR は、Azure Monitorで追加のエクスペリエンスを有効にしませんが、Log Analyticsを使用して分析し、アラートに使用できます。 使用できるさまざまなデータ ソースの詳細については、「 Azure Monitor を使用して仮想マシンからゲスト ログ データを収集 する」を参照してください。 ログ 収集のサンプル DCR 定義については、Azure Monitor のデータ収集規則 (DCR) のサンプル を参照してください。

仮想マシンの拡張監視を有効にするには、次の DCR 定義を使用します。 必要な唯一の変更は、OpenTelemetry メトリック用の Azure Monitor ワークスペース、またはログベースのメトリックの Log Analytics ワークスペースを指すように、各定義の場所と移動先ワークスペースを更新することです。

メトリックベースのエクスペリエンス
{
  "location": "<location>",
  "properties": {
    "dataSources": {
      "performanceCountersOTel": [
        {
          "streams": [
            "Microsoft-OtelPerfMetrics"
          ],
          "samplingFrequencyInSeconds": 60,
          "counterSpecifiers": [
              "system.filesystem.usage",
              "system.disk.io",
              "system.disk.operation_time",
              "system.disk.operations",
              "system.memory.usage",
              "system.network.io",
              "system.cpu.time",
              "system.network.dropped",
              "system.network.errors",
              "system.uptime"
          ],
          "name": "OtelPerfCounters"
        }
      ]
    },
    "destinations": {
      "monitoringAccounts": [
        {
          "accountResourceId": "/subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.Monitor/accounts/<workspace-name>",
          "name": "MonitoringAccount"
        }
      ]
    },
    "dataFlows": [
      {
        "streams": [
            "Microsoft-OtelPerfMetrics"
        ],
        "destinations": [
            "MonitoringAccount"
        ]
      }
    ]
  }
}
ログベースのエクスペリエンス (クラシック)
{
    "location": "<location>",
    "properties": {
        "description": "Data collection rule for VM Insights.",
        "dataSources": {
            "performanceCounters": [
                {
                    "name": "VMInsightsPerfCounters",
                    "streams": [
                        "Microsoft-InsightsMetrics"
                    ],
                    "scheduledTransferPeriod": "PT1M",
                    "samplingFrequencyInSeconds": 60,
                    "counterSpecifiers": [
                        "\\VmInsights\\DetailedMetrics"
                    ]
                }
            ]
        },
        "destinations": {
            "logAnalytics": [
                {
                    "workspaceResourceId": "/subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.OperationalInsights/workspaces/<workspace-name>",
                    "name": "VMInsightsPerf-Logs-Dest"
                }
            ]
        },
        "dataFlows": [
            {
                "streams": [
                    "Microsoft-InsightsMetrics"
                ],
                "destinations": [
                    "VMInsightsPerf-Logs-Dest"
                ]
            }
        ]
    }
}

DCR 定義を JSON ファイルに保存します。 JSON ファイルから DCR を作成するための CLI、PowerShell、API、ポータル のコマンドについては、 JSON を使用したデータ収集規則 (DCR) の作成に関するセクションを参照してください。

DCR と VM の関連付け

最後の手順では、DCR と VM の間に関連付けを作成します。 この手順では、DCR をアクティブ化し、DCR で定義されている規則に基づいてデータの収集を開始するようにAzure Monitor エージェントに指示します。 さまざまな種類のデータを収集する場合は、VM に対して複数の関連付けを作成できます。 関連付けを削除して、他の関連付けやエージェント自体に影響を与えずに、特定の DCR からのデータ収集を停止することもできます。

AZURE VM

az monitor data-collection rule association create \
  --name "dcr-association" \
  --rule-id /subscriptions/<subscription-id>/resourceGroups/<resource-group>/microsoft.insights/datacollectionrules/<dcr-name>
  --resource /subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.Compute/virtualMachines/<vm-name>

Azure VM スケール セット

az monitor data-collection rule association create \
  --name "dcr-association" \
  --rule-id /subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/microsoft.insights/datacollectionrules/<dcr-name>
  --resource /subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.Compute/virtualMachineScaleSets/<vmss-name>

Arc 対応サーバー

az monitor data-collection rule association create \
  --name "dcr-association" \
  --rule-id /subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/microsoft.insights/datacollectionrules/<dcr-name> \
  --resource /subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.HybridCompute/machines/<arc-server-name>

ネットワークの分離を有効にする

VM Insights では、次の表に示すように、ネットワーク分離のための 2 つの方法がサポートされています。

メソッド 説明
プライベート リンク Private Link を使用した Azure Monitor エージェントのネットワーク分離の有効化に関するページを参照してください。 このメソッドは、 メトリックベースの収集では現在サポートされていません。
ネットワーク セキュリティ境界 ネットワーク セキュリティ境界を使用した Azure Monitor の構成に関するページを参照してください。