Habilitar VM Insights mediante PowerShell

En este artículo se describe cómo habilitar la información de VM en máquinas virtuales de Azure mediante PowerShell. Este procedimiento se puede usar para:

  • Azure Virtual Machines
  • Azure Virtual Machine Scale Sets

Este script instala extensiones de máquina virtual para Log Analytics/Azure Monitoring Agent (AMA) y, si es necesario, Dependency Agent para habilitar VM Insights. Si se incorpora AMA, también se asocia una regla de recopilación de datos (DCR) y una identidad administrada asignada por el usuario (UAMI) a las máquinas virtuales y a los conjuntos de escalado de máquinas virtuales.

Importante

El agente de Log Analyticsheredado quedará en desuso en agosto de 2024. Después de esta fecha, Microsoft ya no proporcionará soporte técnico para el agente de Log Analytics. Migre al agente de Azure Monitor antes de agosto de 2024 para continuar con la ingesta de datos.

Nota:

El agente de Azure Monitor es compatible con la versión 1.10.1.

Requisitos previos

Necesita:

Script de PowerShell

Para habilitar VM Insights para varias VM o conjuntos de escalado de máquinas virtuales, use el script de PowerShell Install-VMInsights.ps1. El script está disponible en la Galería de PowerShell de Azure. Este script recorre en iteración las máquinas virtuales o los conjuntos de escalado de máquinas virtuales según los parámetros que especifique. El script se puede usar para habilitar VM Insights para:

  • Cada máquina virtual y conjunto de escalado de máquinas virtuales de su suscripción.
  • Los grupos de recursos con ámbito especificados por -ResourceGroup.
  • Una máquina virtual o un conjunto de escalado de máquinas virtuales especificado por -Name. Puede especificar varios grupos de recursos, máquinas virtuales o conjuntos de escalado mediante caracteres comodín.

Compruebe que usa la versión 1.0.0 o posterior del módulo Az PowerShell con Enable-AzureRM alias de compatibilidad habilitados. Ejecute Get-Module -ListAvailable Az para encontrar la versión. Para actualizar, consulte Instalar módulo de Azure PowerShell. Si PowerShell se ejecuta localmente, ejecute Connect-AzAccount para crear una conexión con Azure.

Para obtener una lista de los detalles del argumento del script y el uso de ejemplo, ejecute Get-Help.

Get-Help Install-VMInsights.ps1 -Detailed

Use el script para habilitar VM Insights mediante Azure Monitoring Agent y Dependency Agent o El agente de Log Analytics.

Al habilitar VM Insights mediante el agente de Azure Monitor, el script asocia una regla de recopilación de datos (DCR) y una identidad administrada asignada por el usuario (UAMI) al conjunto de escalado de máquinas virtuales o máquinas virtuales. La configuración de UAMI se pasa a la extensión del agente de Azure Monitor.

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

Argumentos necesarios:

  • -SubscriptionId <String>Id. de suscripción a Azure.
  • -DcrResourceId <String> Id. de identificador de recurso de Azure de la regla de recopilación de datos (DCR). Puede especificar DCR de distintas suscripciones a las máquinas virtuales o conjuntos de escalado de máquinas virtuales que se habilitan con Vm-Insights.
  • -UserAssignedManagedIdentityResourceGroup <String> Nombre del grupo de recursos de identidad administrada asignada por el usuario (UAMI).
  • -UserAssignedManagedIdentityName <String> Nombre de la identidad administrada asignada por el usuario (UAMI).

Argumentos opcionales:

  • -ProcessAndDependencies Establezca esta marca para incorporar Dependency Agent con la configuración de Azure Monitoring Agent (AMA). Si no se especifica, solo se incorpora el Agente de supervisión de Azure (AMA).
  • -Name <String> Nombre de la máquina virtual o del conjunto de escalado de máquinas virtuales que se va a incorporar. Si no se especifica, se incorporan todas las máquinas virtuales y el conjunto de escalado de máquinas virtuales de la suscripción o el grupo de recursos. Use caracteres comodín para especificar varias máquinas virtuales o Microsoft Azure Virtual Machine Scale Sets.
  • -ResourceGroup <String> Nombre del grupo de recursos que contiene la máquina virtual o el conjunto de escalado de máquinas virtuales que se van a incorporar. Si no se especifica, se incorporan todas las máquinas virtuales y el conjunto de escalado de máquinas virtuales de la suscripción. Use caracteres comodín para especificar varios grupos de recursos.
  • -PolicyAssignmentName <String> Incluya solo las máquinas virtuales asociadas a esta directiva. Cuando se especifica el parámetro PolicyAssignmentName, se tienen en cuenta las máquinas virtuales del parámetro SubscriptionId.
  • -TriggerVmssManualVMUpdate [<SwitchParameter>] Desencadene la actualización de instancias de máquina virtual en un conjunto de escalado cuya directiva de actualización esté establecida en Manual.
  • -WhatIf [<SwitchParameter>] Obtenga información sobre el efecto esperado de los comandos en el script.
  • -Confirm [<SwitchParameter>] Confirme cada acción en el script.
  • -Approve [<SwitchParameter>] Proporcione la aprobación para que la instalación se inicie sin petición de confirmación para Microsoft Azure Virtual Machine Scale Sets o máquinas virtuales enumerados.

El script admite caracteres comodín para -Name y -ResourceGroup. Por ejemplo, -Name vm* habilita VM Insights para todas las máquinas virtuales y los conjuntos de escalado de máquinas virtuales que comienzan por "vm". Para obtener más información, consulte Caracteres comodín en Windows PowerShell.

Ejemplo:

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 salida tiene el siguiente formato:

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

Compruebe el conjunto de escalado de máquinas virtuales o máquinas virtuales en Azure Portal para ver si las extensiones están instaladas o use el comando siguiente:


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

Pasos siguientes