Application Insights per macchine virtuali di Azure e set di scalabilità di macchine virtuali

L'abilitazione del monitoraggio per le applicazioni ASP.NET e ASP.NET core iis in esecuzione in Azure Macchine virtuali o Azure set di scalabilità di macchine virtuali è ora più semplice che mai. Ottenere tutti i vantaggi dell'uso di Application Insights senza modificare il codice.

Questo articolo illustra come abilitare il monitoraggio di Application Insights usando l'agente di Application Insights. Fornisce inoltre indicazioni preliminari per automatizzare il processo per le distribuzioni su larga scala.

Abilita Application Insights

L'strumentazione automatica è facile da abilitare. La configurazione avanzata non è necessaria.

Per un elenco completo degli scenari di strumentazione automatica supportati, vedere Ambienti, lingue e provider di risorse supportati.

Nota

La strumentazione automatica è disponibile per ASP.NET, ASP.NET applicazioni ospitate in IIS Core e Java. Usare un SDK per instrumentare Node.js e applicazioni Python ospitate in macchine virtuali e set di scalabilità di macchine virtuali di Azure.

L'agente di Application Insights seleziona automaticamente gli stessi segnali di dipendenza predefiniti dell'SDK. Per altre informazioni, vedere La raccolta automatica delle dipendenze.

Prima di installare l'estensione Application Insights Agent, è necessario un stringa di connessione. Creare una nuova risorsa di Application Insights o copiare il stringa di connessione da una risorsa di Application Insights esistente.

Abilitare il monitoraggio per le macchine virtuali

È possibile usare il portale di Azure o PowerShell per abilitare il monitoraggio per le macchine virtuali.

Azure portal

  1. Nella portale di Azure passare alla risorsa di Application Insights. Copiare il stringa di connessione negli Appunti.

    Screenshot che mostra il stringa di connessione.

  2. Passare alla macchina virtuale. Nella sezione Impostazioni del menu a sinistra selezionare Estensioni e applicazioni>Aggiungi.

    Screenshot che mostra il riquadro Estensioni e applicazioni con il pulsante Aggiungi.

  3. Selezionare Agente di Application Insights>Avanti.

    Screenshot che mostra il riquadro Installa un'estensione con il pulsante Avanti.

  4. Incollare il stringa di connessione copiato nel passaggio 1 e selezionare Rivedi e crea.

    Screenshot che mostra la scheda Crea con il pulsante Rivedi e crea.

PowerShell

Nota

Non si ha più di PowerShell? Vedere la Guida introduttiva.

Installare o aggiornare l'agente di Application Insights come estensione per le macchine virtuali di 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

Per distribuzioni più complesse su larga scala, è possibile usare un ciclo PowerShell per installare o aggiornare l'estensione dell'agente di Application Insights in più macchine virtuali.

Eseguire una query sullo stato dell'estensione dell'agente di Application Insights per le macchine virtuali di Azure:

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

Ottenere un elenco di estensioni installate per le macchine virtuali di Azure:

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

Disinstallare l'estensione Dell'agente di Application Insights dalle macchine virtuali di Azure:

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

Nota

Verificare l'installazione selezionando Live Metrics Stream all'interno della risorsa di Application Insights associata alla stringa di connessione usata per distribuire l'estensione Application Insights Agent. Se si inviano dati da più macchine virtuali, selezionare le macchine virtuali di Azure di destinazione in Nome server. L'avvio del flusso dei dati potrebbe richiedere fino a un minuto.

Abilitare il monitoraggio per i set di scalabilità di macchine virtuali

È possibile usare il portale di Azure o PowerShell per abilitare il monitoraggio per i set di scalabilità di macchine virtuali.

Azure portal

Seguire i passaggi precedenti per le macchine virtuali, ma passare ai set di scalabilità di macchine virtuali anziché alla macchina virtuale.

PowerShell

Installare o aggiornare Application Insights Agent come estensione per i set di scalabilità di macchine virtuali:

# 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

Ottenere un elenco di estensioni installate per i set di scalabilità di macchine virtuali:

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

Disinstallare l'estensione di monitoraggio delle applicazioni dai set di scalabilità di macchine virtuali:

# 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

Risoluzione dei problemi

Trovare i suggerimenti per la risoluzione dei problemi relativi all'estensione Dell'agente di monitoraggio di Application Insights per le applicazioni .NET in esecuzione in macchine virtuali di Azure e nei set di scalabilità di macchine virtuali.

Se si verificano problemi durante la distribuzione dell'estensione, esaminare l'output di esecuzione registrato nei file presenti nelle directory seguenti:

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

Se l'estensione è stata distribuita correttamente ma non è possibile visualizzare i dati di telemetria, potrebbe trattarsi di uno dei problemi seguenti illustrati nella risoluzione dei problemi dell'agente:

  • DLL in conflitto nella directory bin di un'app
  • Conflitto con la configurazione condivisa di IIS

Testare la connettività tra l'host dell'applicazione e il servizio di inserimento

Gli SDK e gli agenti di Application Insights inviano dati di telemetria per essere inseriti come chiamate REST agli endpoint di inserimento. È possibile testare la connettività dal server Web o dal computer host dell'applicazione agli endpoint del servizio di inserimento usando client REST non elaborati da PowerShell o comandi curl. Vedere Risolvere i problemi di telemetria delle applicazioni mancanti in Application Insights di Monitoraggio di Azure.

Note sulla versione

2.8.44

  • Aggiornamento di Application Insights .NET/.NET Core SDK alla versione 2.20.1 - campo rosso.
  • Raccolta di query SQL abilitata.
  • Supporto abilitato per l'autenticazione di Microsoft Entra.

2.8.42

Aggiornamento di Application Insights .NET/.NET Core SDK alla versione 2.18.1 - campo rosso.

2.8.41

Aggiunta della funzionalità di strumentazione automatica ASP.NET Core.

Passaggi successivi