Application Insights para máquinas virtuales y conjuntos de escalado de máquinas virtuales de Azure

Ahora es más fácil que nunca habilitar la supervisión de las aplicaciones hospedadas en IIS de ASP.NET Core y ASP.NET que se ejecutan en máquinas virtuales de Azure o conjuntos de escalado de máquinas virtuales de Azure. Obtenga todas las ventajas de usar Application Insights sin modificar el código.

En este artículo se explica cómo habilitar la supervisión de Application Insights mediante Agente de Application Insights. También proporciona instrucciones preliminares para automatizar el proceso para implementaciones a gran escala.

Habilitación de Application Insights

La instrumentación automática es fácil de habilitar. No es necesaria la configuración avanzada.

Para obtener una lista completa de escenarios de instrumentación automática compatibles, consulte Entornos, lenguajes y proveedores de recursos admitidos.

Nota

La instrumentación automática está disponible para aplicaciones ASP.NET, ASP.NET Core hospedadas en IIS, y Java. Use un SDK para instrumentar aplicaciones de Node.js y Python hospedadas en máquinas virtuales y conjuntos de escalado de máquinas virtuales de Azure.

Agente de Application Insights recopila automáticamente las mismas señales de dependencia integradas que el SDK. Para más información, consulte Recopilación automática de dependencias.

Para instalar Agente de Application Insights, necesitarás una cadena de conexión. Cree un recurso de Application Insights o copie la cadena de conexión de un recurso de Application Insights existente.

Habilitación de la supervisión de máquinas virtuales

Para habilitar la supervisión de máquinas virtuales, puede usar Azure Portal o PowerShell.

Azure Portal

  1. En Azure Portal, vaya al recurso de Application Insights. Copie la cadena de conexión en el Portapapeles.

    Captura de pantalla que muestra la cadena de conexión.

  2. Vaya a la máquina virtual. En la sección Configuración del menú de la izquierda, seleccione Extensiones + aplicaciones>Agregar.

    Captura de pantalla que muestra el panel Extensiones + aplicaciones con el botón Agregar.

  3. Seleccione Agente de Application Insights>Siguiente.

    Captura de pantalla que muestra el panel Instalar una extensión con el botón Siguiente.

  4. Pegue la cadena de conexión que copió en el paso 1 y seleccione Revisar y crear.

    Captura de pantalla que muestra la pestaña Crear con el botón Revisar y crear.

PowerShell

Nota:

¿No está familiarizado con PowerShell? Eche un vistazo a la Guía de introducción.

Instalación o actualización de Agente de Application Insights como una extensión para las máquinas virtuales de Azure:

# define variables to match your environment before running
$ResourceGroup = "<myVmResourceGroup>"
$VMName = "<myVmName>"
$Location = "<myVmLocation>"
$ConnectionString = "<myAppInsightsResourceConnectionString>"

$publicCfgJsonString = @"
{
    "redfieldConfiguration": {
        "instrumentationKeyMap": {
        "filters": [
            {
            "appFilter": ".*",
            "machineFilter": ".*",
            "virtualPathFilter": ".*",
            "instrumentationSettings" : {
                "connectionString": "$ConnectionString"
            }
            }
        ]
        }
    }
    }
"@

$privateCfgJsonString = '{}'
	
Set-AzVMExtension -ResourceGroupName $ResourceGroup -VMName $VMName -Location $Location -Name "ApplicationMonitoringWindows" -Publisher "Microsoft.Azure.Diagnostics" -Type "ApplicationMonitoringWindows" -Version "2.8" -SettingString $publicCfgJsonString -ProtectedSettingString $privateCfgJsonString

Nota:

Para implementaciones a gran escala más complicadas, puede usar un bucle de PowerShell para instalar o actualizar la extensión del Agente de Application Insights en varias máquinas virtuales.

Consultar el estado de la extensión del Agente de Application Insights para máquinas virtuales de Azure:

Get-AzVMExtension -ResourceGroupName "<myVmResourceGroup>" -VMName "<myVmName>" -Name ApplicationMonitoringWindows -Status

Obtener una lista de extensiones instaladas para máquinas virtuales de Azure:

Get-AzResource -ResourceId "/subscriptions/<mySubscriptionId>/resourceGroups/<myVmResourceGroup>/providers/Microsoft.Compute/virtualMachines/<myVmName>/extensions"

Desinstalar la extensión del Agente de Application Insights desde las máquinas virtuales de Azure:

Remove-AzVMExtension -ResourceGroupName "<myVmResourceGroup>" -VMName "<myVmName>" -Name "ApplicationMonitoring"

Nota:

Para comprobar la instalación, seleccione Live Metrics Stream en el recurso Application Insights asociado a la cadena de conexión que usó para implementar la extensión Application Insights Agent. Si va a enviar datos desde varias máquinas virtuales, seleccione las máquinas virtuales de Azure de destino en Nombre del servidor. Los datos pueden tardar hasta un minuto en empezar a fluir.

Habilitación de la supervisión para conjuntos de escalado de máquinas virtuales

Puede usar Azure Portal o PowerShell para habilitar la supervisión de conjuntos de escalado de máquinas virtuales.

Azure Portal

Siga los pasos anteriores para las máquinas virtuales, pero vaya a los conjuntos de escalado de máquinas virtuales en lugar de a la máquina virtual.

PowerShell

Instale o actualice Agente de Application Insights como una extensión para los conjuntos de escalado de máquinas virtuales:

# Set resource group, vmss name, and connection string to reflect your environment
$ResourceGroup = "<myVmResourceGroup>"
$VMSSName = "<myVmName>"
$ConnectionString = "<myAppInsightsResourceConnectionString>"
$publicCfgHashtable =
@{
  "redfieldConfiguration"= @{
    "instrumentationKeyMap"= @{
      "filters"= @(
        @{
          "appFilter"= ".*";
          "machineFilter"= ".*";
          "virtualPathFilter"= ".*";
          "instrumentationSettings" = @{
            "connectionString"= "$ConnectionString"
          }
        }
      )
    }
  }
};
$privateCfgHashtable = @{};
$vmss = Get-AzVmss -ResourceGroupName $ResourceGroup -VMScaleSetName $VMSSName
Add-AzVmssExtension -VirtualMachineScaleSet $vmss -Name "ApplicationMonitoringWindows" -Publisher "Microsoft.Azure.Diagnostics" -Type "ApplicationMonitoringWindows" -TypeHandlerVersion "2.8" -Setting $publicCfgHashtable -ProtectedSetting $privateCfgHashtable
Update-AzVmss -ResourceGroupName $vmss.ResourceGroupName -Name $vmss
# Note: Depending on your update policy, you might need to run Update-AzVmssInstance for each instance

Obtenga una lista de las extensiones instaladas en conjuntos de escalado de máquinas virtuales:

Get-AzResource -ResourceId "/subscriptions/<mySubscriptionId>/resourceGroups/<myResourceGroup>/providers/Microsoft.Compute/virtualMachineScaleSets/<myVmssName>/extensions"

Desinstalación de la extensión de supervisión de aplicaciones desde conjuntos de escalado de máquinas virtuales:

# set resource group and vmss name to reflect your environment
$vmss = Get-AzVmss -ResourceGroupName "<myResourceGroup>" -VMScaleSetName "<myVmssName>"
Remove-AzVmssExtension -VirtualMachineScaleSet $vmss -Name "ApplicationMonitoringWindows"
Update-AzVmss -ResourceGroupName $vmss.ResourceGroupName -Name $vmss.Name -VirtualMachineScaleSet $vmss
# Note: Depending on your update policy, you might need to run Update-AzVmssInstance for each instance

Solucionar problemas

Busque sugerencias para la solución de problemas de la extensión Agent de Application Insights para las aplicaciones .NET que se ejecutan en máquinas virtuales de Azure y en conjuntos de escalado de máquinas virtuales.

Si tiene problemas para implementar la extensión, revise la salida de ejecución que se registra en los archivos que se encuentran en los directorios siguientes:

C:\WindowsAzure\Logs\Plugins\Microsoft.Azure.Diagnostics.ApplicationMonitoringWindows\<version>\

Si la extensión se ha implementado correctamente, pero no puede ver la telemetría, podría tratarse de uno de los problemas siguientes que se describen en la Solución de problemas del agente:

  • Archivos DLL en conflicto en el directorio bin de una aplicación
  • Conflicto con la configuración compartida de IIS

Prueba de la conectividad entre el host de la aplicación y el servicio de ingesta

Los SDK y agentes de Application Insights envían telemetría para ingerirse como llamadas REST a nuestros puntos de conexión de ingesta. Puede probar la conectividad desde el servidor web o la máquina host de la aplicación a los puntos de conexión del servicio de ingesta mediante clientes REST sin procesar con comandos de PowerShell o curl. Consulte Solución de problemas de telemetría de aplicaciones que faltan en Azure Monitor Application Insights.

Notas de la versión

2.8.44

  • Se ha actualizado el SDK de Application Insights para .NET y .NET Core a la versión 2.20.1 (campo rojo).
  • Se ha habilitado la recopilación de consultas SQL.
  • Se ha habilitado la compatibilidad con la autenticación de Microsoft Entra.

2.8.42

Se ha actualizado el SDK de Application Insights para .NET y .NET Core a la versión 2.18.1 (campo rojo).

2.8.41

Se agregó la función de autoinstrumentación de ASP.NET Core.

Pasos siguientes