Application Insights per macchine virtuali di Azure e set di scalabilità di macchine virtuali
L'abilitazione del monitoraggio per le applicazioni ospitate ASP.NET e ASP.NET Core IIS in esecuzione in macchine virtuali di Azure o nei set di scalabilità di macchine virtuali di Azure è 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 il materiale sussidiario preliminare per automatizzare il processo per le distribuzioni su larga scala.
Abilita Application Insights
L'instrumentazione 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
L’instrumentazione 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, è necessaria una stringa di connessione. Creare una nuova risorsa di Application Insights o copiare la 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.
Portale di Azure
Nel portale di Azure, passare alla risorsa di Application Insights. Copiare la stringa di connessione negli Appunti.
Passare alla macchina virtuale. Nella sezione Impostazioni del menu a sinistra selezionare Estensioni e applicazioni>Aggiungi.
Selezionare Agente di Application Insights>Avanti.
Incollare la stringa di connessione copiata nel passaggio 1 e selezionare 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.
Portale di Azure
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 l'inserimento 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 comandi PowerShell o curl. Vedere Risolvere i problemi di dati di telemetria delle applicazioni mancanti in Application Insights per Monitoraggio di Azure.
Note sulla versione
2.8.44
- Aggiornamento di Application Insights .NET/.NET Core SDK alla versione 2.20.1 - campo rosso.
- Abilitazione della raccolta di query SQL.
- 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 di ASP.NET Core.