PowerShell を使用して VM の分析情報を有効にする

この記事では、PowerShell を使用して、Azure 仮想マシン上で VM の分析情報を有効にする方法について説明します。 この手順は以下に対して使用できます。

  • Azure Virtual Machines
  • Azure Virtual Machine Scale Sets

このスクリプトを実行すると、Log Analytics や Azure 監視エージェント (AMA) 用の VM 拡張機能と、必要に応じて Dependency Agent をインストールして、VM Insights を有効にすることができます。 AMA がオンボードされている場合、データ収集ルール (DCR) とユーザー割り当てマネージド ID (UAMI) も仮想マシンと仮想マシン スケール セットに関連付けられます。

重要

従来の Log Analytics エージェントは、2024 年 8 月までに非推奨になります。 この日付を過ぎると、Microsoft は Log Analytics エージェントのサポートを提供しなくなります。 データの取り込みを続行するには、2024 年 8 月より前に Azure Monitor エージェントに移行してください。

Note

Azure Monitor エージェントはバージョン 1.10.1 からサポートされています。

前提条件

以下を実行する必要があります。

PowerShell スクリプト

複数の VM または仮想マシン スケール セットに対して VM の分析情報を有効にするには、PowerShell スクリプト Install-VMInsights.ps1 を使用します。 このスクリプトは Azure PowerShell ギャラリーから入手できます。 このスクリプトを実行すると、指定したパラメーターに従って仮想マシンまたは仮想マシン スケール セットに対して反復処理できます。 このスクリプトを使うと、以下について VM Insights を有効にすることができます。

  • サブスクリプションに設定されているすべての仮想マシンと仮想マシン スケール セット。
  • -ResourceGroup で指定されたスコープ付きリソース グループ。
  • -Name で指定された VM または仮想マシン スケール セット。 ワイルドカードを使って、複数のリソース グループ、VM、またはスケール セットを指定できます。

Enable-AzureRM 互換性エイリアスを有効にした Az PowerShell モジュール バージョン 1.0.0 以降を使っていることを確認します。 バージョンを確認するには、Get-Module -ListAvailable Az を実行します。 アップグレードするには、Azure PowerShell モジュールのインストールに関するページを参照してください。 PowerShell をローカルで実行している場合、Connect-AzAccount を実行して Azure との接続を作成します。

スクリプトの引数の詳細と使用例の一覧については、Get-Help を実行します。

Get-Help Install-VMInsights.ps1 -Detailed

このスクリプトを使って、Azure 監視エージェントと Dependency Agent、または Log Analytics エージェントを使って VM Insights を有効にします。

Azure Monitor エージェントを使って VM Insights を有効にすると、このスクリプトによってデータ収集ルール (DCR) とユーザー割り当てマネージド ID (UAMI) が VM と仮想マシン スケール セットに関連付けられます。 UAMI 設定は、Azure Monitor エージェント拡張機能に渡されます。

Install-VMInsights.ps1 -SubscriptionId <SubscriptionId> `
[-ResourceGroup <ResourceGroup>] `
[-ProcessAndDependencies ] `
[-Name <VM or Virtual Machine Scale Set name>] `
-DcrResourceId <DataCollectionRuleResourceId> `
-UserAssignedManagedIdentityName <UserAssignedIdentityName> `
-UserAssignedManagedIdentityResourceGroup <UserAssignedIdentityResourceGroup> 

必須の引数:

  • -SubscriptionId <String> Azure サブスクリプション ID。
  • -DcrResourceId <String> データ収集ルール (DCR) Azure リソース ID 識別子。 さまざまなサブスクリプションから、Vm-Insights で有効になっている VM または仮想マシン スケール セットに対する DCR を指定できます。
  • -UserAssignedManagedIdentityResourceGroup <String> ユーザー割り当てマネージド ID (UAMI) リソース グループの名前。
  • -UserAssignedManagedIdentityName <String> ユーザー割り当てマネージド ID (UAMI) の名前。

省略可能な引数:

  • -ProcessAndDependencies Azure 監視エージェント (AMA) 設定を使って Dependency Agent をオンボードするには、このフラグを設定します。 指定しない場合、Azure 監視エージェント (AMA) のみがオンボードされます。
  • -Name <String> オンボードする VM または仮想マシン スケール セットの名前。 指定しない場合、サブスクリプションまたはリソース グループ内のすべての VM と仮想マシン スケール セットがオンボードされます。 ワイルドカードを使って、複数の VM または仮想マシン スケール セットを指定します。
  • -ResourceGroup <String> オンボードする VM または仮想マシン スケール セットを含むリソース グループの名前。 指定しない場合、サブスクリプション内のすべての VM と仮想マシン スケール セットがオンボードされます。 複数のリソース グループを指定するには、ワイルドカードを使います。
  • -PolicyAssignmentName <String> このポリシーに関連付けられている VM のみを含めます。 PolicyAssignmentName パラメーターを指定すると、パラメーター SubscriptionId の VM 部分が考慮されます。
  • -TriggerVmssManualVMUpdate [<SwitchParameter>] アップグレード ポリシーが [手動] に設定されているスケール セット内の VM インスタンスの更新をトリガーします。
  • -WhatIf [<SwitchParameter>] スクリプト内のコマンドの予想される効果について情報を取得します。
  • -Confirm [<SwitchParameter>] スクリプト内の各アクションを確認します。
  • -Approve [<SwitchParameter>] 一覧に示されている VM または仮想マシン スケール セットについて、確認プロンプトなしでインストールを開始することを承認します。

このスクリプトは、-Name-ResourceGroup のワイルドカードをサポートしています。 たとえば、-Name vm* を使うと、"vm" で始まるすべての VM と仮想マシン スケール セットについて VM Insights が有効になります。 詳細については、Windows PowerShell のワイルドカードに関する記事を参照してください。

例:

Install-VMInsights.ps1 -SubscriptionId 12345678-abcd-abcd-1234-12345678 `
-ResourceGroup rg-AMAPowershell  `
-ProcessAndDependencies  `
-Name vmAMAPowershellWindows `
-DcrResourceId /subscriptions/12345678-abcd-abcd-1234-12345678/resourceGroups/rg-AMAPowershell/providers/Microsoft.Insights/dataCollectionRules/MSVMI-ama-vmi-default-dcr `
-UserAssignedManagedIdentityName miamatest1  `
-UserAssignedManagedIdentityResourceGroup amapowershell

出力の形式は次のとおりです。

Name                                     Account                               SubscriptionName                      Environment                          TenantId
----                                     -------                               ----------------                      -----------                          --------
AzMon001 12345678-abcd-123…              MSI@9876                              AzMon001                              AzureCloud                           abcd1234-9876-abcd-1234-1234abcd5648

Getting list of VMs or VM Scale Sets matching specified criteria.
VMs and Virtual Machine Scale Sets matching selection criteria :

ResourceGroup : rg-AMAPowershell
  vmAMAPowershellWindows


Confirm
Continue?
[Y] Yes  [N] No  [S] Suspend  [?] Help (default is "Y"): 

(rg-AMAPowershell) : Assigning roles

(rg-AMAPowershell) vmAMAPowershellWindows : Assigning User Assigned Managed Identity edsMIAMATest
(rg-AMAPowershell) vmAMAPowershellWindows : Successfully assigned User Assigned Managed Identity edsMIAMATest
(rg-AMAPowershell) vmAMAPowershellWindows : Data Collection Rule Id /subscriptions/12345678-abcd-abcd-1234-12345678/resourceGroups/rg-AMAPowershell/providers/Microsoft.Insights/dataCollectionRules/MSVMI-ama-vmi-default-dcr already associated with the VM.
(rg-AMAPowershell) vmAMAPowershellWindows : Extension AzureMonitorWindowsAgent, type = Microsoft.Azure.Monitor.AzureMonitorWindowsAgent already installed. Provisioning State : Succeeded
(rg-AMAPowershell) vmAMAPowershellWindows : Installing/Updating extension AzureMonitorWindowsAgent, type = Microsoft.Azure.Monitor.AzureMonitorWindowsAgent
(rg-AMAPowershell) vmAMAPowershellWindows : Successfully installed/updated extension AzureMonitorWindowsAgent, type = Microsoft.Azure.Monitor.AzureMonitorWindowsAgent
(rg-AMAPowershell) vmAMAPowershellWindows : Installing/Updating extension DA-Extension, type = Microsoft.Azure.Monitoring.DependencyAgent.DependencyAgentWindows
(rg-AMAPowershell) vmAMAPowershellWindows : Successfully installed/updated extension DA-Extension, type = Microsoft.Azure.Monitoring.DependencyAgent.DependencyAgentWindows
(rg-AMAPowershell) vmAMAPowershellWindows : Successfully onboarded VM insights

Summary :
Total VM/VMSS to be processed : 1
Succeeded : 1
Skipped : 0
Failed : 0
VMSS Instance Upgrade Failures : 0

Azure portal で VM または仮想マシン スケール セットを調べて、拡張機能がインストールされているかどうかを確認するか、次のコマンドを使います。


az vm extension list --resource-group <resource group> --vm-name <VM name>  -o table 


Name                      ProvisioningState    Publisher                                   Version    AutoUpgradeMinorVersion
------------------------  -------------------  ------------------------------------------  ---------  -------------------------
AzureMonitorWindowsAgent  Succeeded            Microsoft.Azure.Monitor                     1.16       True
DA-Extension              Succeeded            Microsoft.Azure.Monitoring.DependencyAgent  9.10       True

次のステップ