Activer VM Insights à l’aide de PowerShell

Cet article explique comment activer VM Insights sur des machines virtuelles Azure à l’aide de PowerShell. Cette procédure peut être utilisée pour :

  • Machines virtuelles Azure
  • Groupes de machines virtuelles identiques Azure

Ce script installe les extensions de machine virtuelle pour Log Analytics/AMA (agent Azure Monitor) et, si nécessaire, Dependency Agent afin d’activer VM Insights. Si AMA est intégré, une règle de collecte de données (DCR) et une identité managée affectée par l’utilisateur (UAMI) sont également associées aux machines virtuelles et aux groupes de machines virtuelles identiques.

Important

L’agent Log Analytics hérité sera déconseillé d’ici août 2024. Passé cette date, Microsoft ne fournira plus de support pour l’agent Log Analytics. Migrez vers l’agent Azure Monitor avant août 2024 pour continuer à ingérer des données.

Remarque

L’agent Azure Monitor est pris en charge à partir de la version 1.10.1.

Prérequis

Vous devez :

Script PowerShell

Si vous souhaitez activer VM Insights pour plusieurs machines virtuelles ou groupes de machines virtuelles identiques, utilisez le script PowerShell Install-VMInsights.ps1. Ce script est disponible sur Azure PowerShell Gallery. Ce script itère sur les machines virtuelles ou les groupes de machines virtuelles identiques en fonction des paramètres que vous spécifiez. Le script peut être utilisé afin d’activer VM Insights pour :

  • Chaque machine virtuelle et groupe de machines virtuelles identiques dans votre abonnement.
  • Les groupes de ressources délimités par une étendue et spécifiés par -ResourceGroup.
  • Une machine virtuelle ou un groupe de machines virtuelles identiques spécifié par -Name. Vous pouvez spécifier plusieurs groupes de ressources, machines virtuelles ou groupes identiques à l’aide de caractères génériques.

Vérifiez que vous utilisez le module Az PowerShell version 1.0.0 ou ultérieure avec les alias de compatibilité Enable-AzureRM activés. Exécutez Get-Module -ListAvailable Az pour trouver la version. Pour effectuer la mise à niveau, consultez Installer le module Azure PowerShell. Si vous exécutez PowerShell en local, exécutez Connect-AzAccount pour créer une connexion avec Azure.

Pour obtenir la liste des détails relatifs aux arguments du script ainsi qu’un exemple d’utilisation, exécutez Get-Help.

Get-Help Install-VMInsights.ps1 -Detailed

Exécutez le script pour activer VM Insights en utilisant l’agent Azure Monitor et Dependency Agent, ou l’agent Log Analytics.

Quand vous activez VM Insights à l’aide de l’agent Azure Monitor, le script associe une règle de collecte de données (DCR) et une identité managée affectée par l’utilisateur (UAMI) à la machine virtuelle/au groupe de machines virtuelles identiques. Les paramètres d’identité managée affectée par l’utilisateur sont passés à l’extension de l’agent Azure Monitor.

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

Arguments requis :

  • -SubscriptionId <String> ID d’abonnement Azure.
  • -DcrResourceId <String> Identificateur d’ID de ressource Azure de la règle de collecte de données. Vous pouvez appliquer des règles de collecte de données de différents abonnements aux machines virtuelles ou groupes de machines virtuelles identiques pour lesquels Vm-Insights est activé.
  • -UserAssignedManagedIdentityResourceGroup <String> Nom du groupe de ressources associé à l’identité managée affectée par l’utilisateur.
  • -UserAssignedManagedIdentityName <String> Nom de l’identité managée affectée par l’utilisateur.

Arguments facultatifs :

  • -ProcessAndDependencies Définissez cet indicateur pour intégrer Dependency Agent aux paramètres d’AMA (agent Azure Monitor). S’il n’est pas spécifié, seul AMA (agent Azure Monitor) est intégré.
  • -Name <String> Nom de la machine virtuelle ou du groupe de machines virtuelles identiques à intégrer. S’il n’est pas spécifié, toutes les machines virtuelles et tous les groupes de machines virtuelles identiques de l’abonnement ou du groupe de ressources sont intégrés. Utilisez des caractères génériques pour spécifier plusieurs machines virtuelles ou groupes de machines virtuelles identiques.
  • -ResourceGroup <String> Nom du groupe de ressources contenant la machine virtuelle ou le groupe de machines virtuelles identiques à intégrer. S’il n’est pas spécifié, toutes les machines virtuelles et tous les groupes de machines virtuelles identiques de l’abonnement sont intégrés. Utilisez des caractères génériques pour spécifier plusieurs groupes de ressources.
  • -PolicyAssignmentName <String> Incluez uniquement les machines virtuelles associées à cette stratégie. Quand le paramètre PolicyAssignmentName est spécifié, la partie relative aux machines virtuelles du paramètre SubscriptionId est prise en compte.
  • -TriggerVmssManualVMUpdate [<SwitchParameter>] Permet de déclencher la mise à jour des instances de machines virtuelles dans un groupe identique dont la stratégie de mise à niveau est de type Manuel.
  • -WhatIf [<SwitchParameter>] Permet d’obtenir des informations sur l’effet attendu des commandes dans le script.
  • -Confirm [<SwitchParameter>] Permet de confirmer chaque action dans le script.
  • -Approve [<SwitchParameter>] Permet d’octroyer l’approbation nécessaire au démarrage de l’installation sans invite de confirmation pour les machines virtuelles/groupes de machines virtuelles identiques listées.

Le script prend en charge les caractères génériques pour -Name et -ResourceGroup. Par exemple, -Name vm* active VM Insights pour l’ensemble des machines virtuelles et des groupes de machines virtuelles identiques commençant par « vm ». Pour plus d’informations, consultez Caractères génériques dans Windows PowerShell.

Exemple :

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

La sortie a le format suivant :

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

Vérifiez votre machine virtuelle/groupe de machines virtuelles identiques dans le portail Azure pour voir si les extensions sont installées, ou utilisez la commande suivante :


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

Étapes suivantes