Monitorare il bilanciamento del carico di Azure

L'articolo illustra:

  • I tipi di dati di monitoraggio che è possibile raccogliere per questo servizio.
  • Modi per analizzare i dati.

Nota

Se si ha già familiarità con questo servizio e/o Monitoraggio di Azure e si vuole solo sapere come analizzare i dati di monitoraggio, vedere la sezione Analyze alla fine di questo articolo.

Quando si hanno applicazioni e processi aziendali critici che si basano su risorse Azure, è necessario monitorare e ricevere avvisi per il sistema. Il servizio Monitoraggio di Azure raccoglie e aggrega metriche e log da ogni componente del sistema. Monitoraggio di Azure offre una visualizzazione della disponibilità, delle prestazioni e della resilienza e notifica i problemi. È possibile usare il portale di Azure, PowerShell, interfaccia della riga di comando di Azure, l'API REST o le librerie client per configurare e visualizzare i dati di monitoraggio.

Load Balancer fornisce altri dati di monitoraggio tramite:

Approfondimenti

Alcuni servizi in Azure dispongono di un dashboard di monitoraggio predefinito nel portale di Azure che fornisce un punto di partenza per il monitoraggio del servizio. Questi dashboard sono denominati insights ed è possibile trovarli nel Insights Hub di Monitoraggio di Azure nel portale di Azure.

Le analisi del Load Balancer forniscono:

  • Vista della dipendenza funzionale
  • Dashboard delle metriche
  • Scheda di riepilogo
  • Scheda Disponibilità back-end e front-end
  • Scheda della larghezza di banda dati
  • Distribuzione del flusso
  • Monitoraggi della connessione
  • Definizioni delle metriche

Per ulteriori informazioni sugli Insights di Load Balancer, vedere Utilizzare Insights per monitorare e configurare Azure Load Balancer.

Tipi di risorsa

Azure usa il concetto di tipi di risorse e ID per identificare tutti gli elementi in una sottoscrizione. I tipi di risorse fanno anche parte degli ID risorsa per ogni risorsa in esecuzione in Azure. Ad esempio, un tipo di risorsa per una macchina virtuale è Microsoft.Compute/virtualMachines. Per un elenco dei servizi e dei relativi tipi di risorse associati, vedere Provider di risorse.

Monitoraggio di Azure organizza in modo analogo i dati di monitoraggio di base in metriche e log in base ai tipi di risorse, detti anche namespaces. Sono disponibili metriche e log diversi per diversi tipi di risorse. Il servizio potrebbe essere associato a più tipi di risorse.

Per altre informazioni sui tipi di risorse per Load Balancer, vedere Azure Load Balancer informazioni di riferimento sui dati di monitoraggio.

Archiviazione di dati

Per Monitoraggio di Azure:

  • I dati delle metriche vengono archiviati nel database delle metriche Monitoraggio di Azure.
  • I dati di log vengono archiviati nell'archivio dei log di Monitoraggio di Azure. Log Analytics è uno strumento nel portale di Azure in grado di eseguire query su questo archivio.
  • Il log delle attività di Azure è un archivio separato con la propria interfaccia nel portale di Azure.

È possibile, facoltativamente, instradare i dati delle metriche e dei log attività all'archivio dei log di Monitoraggio di Azure. È quindi possibile usare Log Analytics per eseguire query sui dati e correlarli con altri dati di log.

Molti servizi possono usare le impostazioni di diagnostica per inviare i dati delle metriche e dei log ad altre posizioni di archiviazione all'esterno di Monitoraggio di Azure. Ad esempio, Archiviazione di Azure, hosted partner systems e sistemi partner non-Azure, utilizzando Event Hubs.

Per informazioni dettagliate su come Monitoraggio di Azure archivia i dati, vedere Monitoraggio di Azure piattaforma dati.

metriche della piattaforma Monitoraggio di Azure

Monitoraggio di Azure fornisce metriche della piattaforma per la maggior parte dei servizi. Le metriche sono:

  • Definite singolarmente per ogni namespace.
  • Archiviato nel database delle metriche delle serie temporali Monitoraggio di Azure.
  • Leggere e in grado di creare avvisi in tempo quasi reale.
  • Usate per tenere traccia delle prestazioni di una risorsa nel tempo.

Collection: Monitoraggio di Azure raccoglie automaticamente le metriche della piattaforma. Non è richiesta alcuna configurazione.

Routing: È anche possibile instradare alcune metriche della piattaforma a Monitoraggio di Azure Log/Log Analytics in modo da poterli eseguire query con altri dati di log. Controllare l'impostazione DS export per ogni metrica per verificare se è possibile usare un'impostazione di diagnostica per instradare la metrica a Monitoraggio di Azure Logs/Log Analytics.

Per un elenco di tutte le metriche che è possibile raccogliere per tutte le risorse in Monitoraggio di Azure, vedere Metriche supportate in Monitoraggio di Azure.

È possibile analizzare le metriche per Load Balancer con metriche di altri servizi di Azure usando Esplora metriche aprendo Metrics dal menu Monitoraggio di Azure. Per informazioni dettagliate sull'uso di questo strumento, vedere Esplora metrica di Monitoraggio di Azure.

Per un elenco delle metriche disponibili per Load Balancer, vedere riferimento ai dati di monitoraggio di Azure Load Balancer.

Monitoraggio di Azure log delle risorse

I log delle risorse forniscono informazioni dettagliate sulle operazioni eseguite da una risorsa Azure. I log vengono generati automaticamente, ma è necessario indirizzarli a Monitoraggio di Azure log per salvarli o eseguirne query. I log sono organizzati in categorie. Uno specifico spazio dei nomi potrebbe avere più categorie di log delle risorse.

Raccolta: i log delle risorse non vengono raccolti e archiviati fino a quando non si crea un'impostazione di diagnostica e li si instrada verso una o più posizioni. Quando si crea un'impostazione di diagnostica, si specificano quali categorie di log raccogliere. Esistono diversi modi per creare e gestire le impostazioni di diagnostica, tra cui il portale di Azure, a livello di codice e anche Criteri di Azure.

Routing: L'impostazione predefinita consigliata consiste nel indirizzare i log delle risorse ai log Monitoraggio di Azure in modo da poterli eseguire query con altri dati di log. Sono disponibili anche altre località, ad esempio Archiviazione di Azure, Hub eventi di Azure e alcuni partner di monitoraggio di Microsoft. Per ulteriori informazioni, vedere i log delle risorse Azure e le destinazioni dei log delle risorse.

Per informazioni dettagliate sulla raccolta, l'archiviazione e il routing dei log delle risorse, vedere Impostazioni di diagnostica in Monitoraggio di Azure.

Per un elenco di tutte le categorie di log delle risorse disponibili in Monitoraggio di Azure, vedere Log delle risorse supportate in Monitoraggio di Azure.

Tutti i log delle risorse in Monitoraggio di Azure hanno gli stessi campi di intestazione, seguiti da campi specifici del servizio. Lo schema comune è descritto in Monitoraggio di Azure schema del log delle risorse.

Per le categorie di log delle risorse disponibili, le tabelle di log Analitica associate e gli schemi di log per Load Balancer, vedere Riferimento ai dati di monitoraggio di Azure Load Balancer.

Creazione di un'impostazione di diagnostica

I log delle risorse non vengono raccolti e archiviati fino a quando non si crea un'impostazione di diagnostica e li si instrada a una o più posizioni. È possibile creare un'impostazione di diagnostica con il portale di Azure, Azure PowerShell o il interfaccia della riga di comando di Azure.

Per usare il portale di Azure e per indicazioni generali, vedere Creare l'impostazione di diagnostica per raccogliere i log e le metriche della piattaforma in Azure. Per usare PowerShell o la interfaccia della riga di comando di Azure, vedere le sezioni seguenti.

Quando si crea un'impostazione di diagnostica, si specificano quali categorie di log raccogliere. La categoria per Load Balancer è AllMetrics.

PowerShell

Accedere a Azure PowerShell:

Connect-AzAccount 

Area di lavoro Log Analytics

Per inviare i log delle risorse a un'area di lavoro Log Analytics, immettere questi comandi. Sostituire i valori tra parentesi quadre con i valori:

## Place the load balancer in a variable. ##
$lbpara = @{
    ResourceGroupName = <your-resource-group-name>
    Name = <your-load-balancer-name>
}
$lb = Get-AzLoadBalancer @lbpara
    
## Place the workspace in a variable. ##
$wspara = @{
    ResourceGroupName = <your-resource-group-name>
    Name = <your-log-analytics-workspace-name>
}
$ws = Get-AzOperationalInsightsWorkspace @wspara
    
## Enable the diagnostic setting. ##
Set-AzDiagnosticSetting `
    -ResourceId $lb.id `
    -Name <your-diagnostic-setting-name> `
    -Enabled $true `
    -MetricCategory 'AllMetrics' `
    -WorkspaceId $ws.ResourceId

Account di archiviazione

Per inviare i log delle risorse a un account di archiviazione, immettere questi comandi. Sostituire i valori tra parentesi quadre con i valori:

## Place the load balancer in a variable. ##
$lbpara = @{
    ResourceGroupName = <your-resource-group-name>
    Name = <your-load-balancer-name>
}
$lb = Get-AzLoadBalancer @lbpara
    
## Place the storage account in a variable. ##
$storpara = @{
    ResourceGroupName = <your-resource-group-name>
    Name = <your-storage-account-name>
}
$storage = Get-AzStorageAccount @storpara
    
## Enable the diagnostic setting. ##
Set-AzDiagnosticSetting `
    -ResourceId $lb.id `
    -Name <your-diagnostic-setting-name> `
    -StorageAccountId $storage.id `
    -Enabled $true `
    -MetricCategory 'AllMetrics'

Hub eventi

Per inviare i log delle risorse a uno spazio dei nomi di Event Hub, immettere questi comandi. Sostituire i valori tra parentesi quadre con i valori:

## Place the load balancer in a variable. ##
$lbpara = @{
    ResourceGroupName = <your-resource-group-name>
    Name = <your-load-balancer-name>
}
$lb = Get-AzLoadBalancer @lbpara
    
## Place the event hub in a variable. ##
$hubpara = @{
    ResourceGroupName = <your-resource-group-name>
    Name = <your-event-hub-name>
}
$eventhub = Get-AzEventHubNamespace @hubpara

## Place the event hub authorization rule in a variable. ##    
$hubrule = @{
    ResourceGroupName = 'myResourceGroup'
    Namespace = 'myeventhub8675'
}
$eventhubrule = Get-AzEventHubAuthorizationRule @hubrule

## Enable the diagnostic setting. ##
Set-AzDiagnosticSetting `
    -ResourceId $lb.Id `
    -Name 'myDiagSetting-event'`
    -EventHubName $eventhub.Name `
    -EventHubAuthorizationRuleId $eventhubrule.Id `
    -Enabled $true `
    -MetricCategory 'AllMetrics'

Interfaccia della riga di comando di Azure

Accedere a interfaccia della riga di comando di Azure:

az login

Area di lavoro Log Analytics

Per inviare i log delle risorse a un'area di lavoro Log Analytics, immettere questi comandi. Sostituire i valori tra parentesi quadre con i valori:

lbid=$(az network lb show \
    --name <your-load-balancer-name> \
    --resource-group <your-resource-group> \
    --query id \
    --output tsv)

wsid=$(az monitor log-analytics workspace show \
    --resource-group <your-resource-group> \
    --workspace-name <your-log-analytics-workspace-name> \
    --query id \
    --output tsv)
    
az monitor diagnostic-settings create \
    --name <your-diagnostic-setting-name> \
    --resource $lbid \
    --metrics '[{"category": "AllMetrics","enabled": true}]' \
    --workspace $wsid

Account di archiviazione

Per inviare i log delle risorse a un account di archiviazione, immettere questi comandi. Sostituire i valori tra parentesi quadre con i valori:

lbid=$(az network lb show \
    --name <your-load-balancer-name> \
    --resource-group <your-resource-group> \
    --query id \
    --output tsv)

storid=$(az storage account show \
        --name <your-storage-account-name> \
        --resource-group <your-resource-group> \
        --query id \
        --output tsv)
    
az monitor diagnostic-settings create \
    --name <your-diagnostic-setting-name> \
    --resource $lbid \
    --metrics '[{"category": "AllMetrics","enabled": true}]' \
    --storage-account $storid

Hub eventi

Per inviare i log delle risorse a uno spazio dei nomi di Event Hub, immettere questi comandi. Sostituire i valori tra parentesi quadre con i valori:

lbid=$(az network lb show \
    --name <your-load-balancer-name> \
    --resource-group <your-resource-group> \
    --query id \
    --output tsv)

az monitor diagnostic-settings create \
    --name myDiagSetting-event \
    --resource $lbid \
    --metrics '[{"category": "AllMetrics","enabled": true}]' \
    --event-hub-rule /subscriptions/<your-subscription-id>/resourceGroups/<your-resource-group>/providers/Microsoft.EventHub/namespaces/<your-event-hub-namespace>/authorizationrules/RootManageSharedAccessKey

Registro attività di Azure

Il log delle attività contiene eventi a livello di abbonamento che tengono traccia delle operazioni per ogni risorsa Azure, come osservate dall'esterno, ad esempio la creazione di una nuova risorsa o l'avvio di una macchina virtuale.

Raccolta: gli eventi del log attività vengono generati e raccolti automaticamente in un archivio separato per la visualizzazione nel portale di Azure.

Routing: È possibile inviare i dati del log attività ai log Monitoraggio di Azure in modo da poterli analizzare insieme ad altri dati di log. Sono disponibili anche altre località, ad esempio Archiviazione di Azure, Hub eventi di Azure e alcuni partner di monitoraggio di Microsoft. Per altre informazioni su come indirizzare il log attività, vedere Panoramica del log attività Azure.

Nota

Nei log attività del Load Balancer non sono inclusi gli aggiornamenti ai pool di back-end basati su NIC. Per monitorare e inviare avvisi sugli aggiornamenti al pool back-end del servizio di bilanciamento del carico per i pool back-end basati sulla scheda di interfaccia di rete, è consigliabile raccogliere i log a livello di risorsa della scheda di interfaccia di rete o a livello di gruppo di risorse.

Analizzare i dati di monitoraggio

Sono disponibili molti strumenti per l'analisi dei dati di monitoraggio.

strumenti Monitoraggio di Azure

Monitoraggio di Azure supporta gli strumenti di base seguenti:

Gli strumenti che consentono una visualizzazione più complessa includono:

  • Dashboards che consentono di combinare diversi tipi di dati in un singolo riquadro nel portale di Azure.
  • Workbook personalizzabili che è possibile creare nel portale di Azure. Le cartelle di lavoro possono includere testo, metriche e query di log.
  • Grafana è una piattaforma aperta, ideale per i dashboard operativi. È possibile usare Grafana per creare dashboard che includono dati da più origini diverse da Monitoraggio di Azure.
  • Power BI, un servizio di analisi aziendale che fornisce visualizzazioni interattive in varie origini dati. È possibile configurare Power BI per importare automaticamente i dati di log da Monitoraggio di Azure per sfruttare queste visualizzazioni.

Monitoraggio di Azure strumenti di esportazione

È possibile ottenere dati da Monitoraggio di Azure in altri strumenti usando i metodi seguenti:

Per iniziare a usare l'API REST per Monitoraggio di Azure, vedere Azure procedura dettagliata per il monitoraggio dell'API REST.

Analisi del traffico del Load Balancer con i flow log della rete virtuale

Log del flusso di rete virtuale sono una funzionalità di Azure Network Watcher che registra informazioni sul traffico IP che scorre attraverso una rete virtuale. I dati del flusso dai log dei flussi di rete virtuale vengono inviati a Archiviazione di Azure. Da qui è possibile accedere ai dati ed esportarli in qualsiasi strumento di visualizzazione, nella soluzione SIEM (Security Information and Event Management, informazioni di sicurezza e gestione degli eventi) o nel sistema di rilevamento delle intrusioni (IDS).

Per linee guida generali per la creazione e la gestione di log dei flussi di rete virtuale, vedere Gestire log dei flussi di rete virtuale. Dopo aver creato i log del flusso di rete virtuale, è possibile accedere ai dati nelle aree di lavoro Log Analytics in cui è anche possibile eseguire query e filtrare i dati per identificare il traffico che scorre attraverso il Load Balancer. Per altri dettagli sullo schema dei log dei flussi di rete virtuale, vedere Schema di analisi del traffico e aggregazione dei dati.

È anche possibile abilitare Analisi del traffico quando si creano i log del flusso di rete virtuale che fornisce informazioni dettagliate e visualizzazioni sui dati del log del flusso, ad esempio la distribuzione del traffico, il modello di traffico, le porte dell'applicazione usate e i principali talker nella rete virtuale.

Query Log Analytics per i log del flusso di rete virtuale

Per visualizzare i log per i flussi in ingresso connessi a un Load Balancer specifico:

NTANetAnalytics
| where DestLoadBalancer == '<Subscription ID>/<Resource Group name>/<Load Balancer name>'
  1. Usare la query precedente nell'area di lavoro Log Analytics e aggiornare la stringa con i valori validi per il Load Balancer. Per altre informazioni sull'uso di Log Analytics, vedere Log Analytics tutorial.

  2. Per visualizzare l'indirizzo IP di origine della connessione, verrà popolata la colonna SrcIp o SrcPublicIps. Tutto il traffico proveniente da indirizzi IP pubblici non dannosi o Azure di proprietà del servizio verrà visualizzato in SrcPublicIps e tutti gli altri indirizzi IP di origine verranno visualizzati in SrcIP. Per altri dettagli sul tipo di traffico, è possibile usare la colonna FlowType per filtrare i diversi tipi di indirizzi IP coinvolti nel flusso. Vedere le note sullo schema di analisi del traffico e sull'aggregazione dei dati per le definizioni dei campi FlowType.

  3. Identificare le istanze del pool back-end usate nella connessione in ingresso tramite una delle colonne seguenti: DestIP, MacAddressDestVM, TargetResourceIDDestNic.

  4. Tramite questi log, è possibile raccogliere altre informazioni sulle connessioni che passano attraverso le Load Balancer, ad esempio informazioni sulle porte, il protocollo e le dimensioni del traffico tramite il numero di pacchetti e byte inviati dalla destinazione e dall'origine.

Query Kusto

È possibile analizzare i dati di monitoraggio nell'archivio Monitoraggio di Azure logs/Log Analytics usando il linguaggio di query Kusto (KQL).

Importante

Quando si seleziona Logs dal menu del servizio nel portale, Log Analytics si apre con l'ambito della query impostato sul servizio corrente. Questo ambito fa sì che le query di log includano solo i dati di tale tipo di risorsa. Per eseguire una query che include dati di altri servizi di Azure, selezionare Logs dal menu Monitoraggio di Azure. Per informazioni dettagliate, vedere Area di query e l'intervallo di tempo in Monitoraggio di Azure Log Analytics.

Per un elenco delle query comuni per qualsiasi servizio, vedere l'interfaccia Log Analytics query.

Avvisi

Monitoraggio di Azure avvisi avvisano in modo proattivo quando vengono rilevate condizioni specifiche nei dati di monitoraggio. Consentono di identificare e risolvere i problemi del sistema prima che gli utenti li notino. Per altre informazioni, vedere avvisi Monitoraggio di Azure.

Esistono molte origini di avvisi comuni per le risorse di Azure. Per esempi di avvisi comuni per le risorse di Azure, vedere Query di avviso del log di esempio. Il sito Monitoraggio di Azure avvisi di base (AMBA) fornisce un metodo semi-automatizzato per implementare importanti avvisi, dashboard e linee guida per le metriche della piattaforma. Il sito si applica a un sottoinsieme in continua espansione dei servizi di Azure, inclusi tutti i servizi che fanno parte della zona di destinazione di Azure (ALZ).

Lo schema di avviso comune standardizza l'utilizzo delle notifiche di avviso Monitoraggio di Azure. Per altre informazioni, vedere lo Schema degli avvisi comuni.

Tipi di avviso:

È possibile inviare avvisi su qualsiasi metrica o origine dati di log nella piattaforma dati Monitoraggio di Azure. Esistono molti tipi diversi di avvisi a seconda dei servizi monitorati e dei dati di monitoraggio raccolti. Ogni tipo di avviso presenta vantaggi e svantaggi. Per altre informazioni, vedere Scegliere il tipo di avviso di monitoraggio corretto.

L'elenco seguente descrive i tipi di avvisi Monitoraggio di Azure che è possibile creare:

  • Gli avvisi delle metriche valutano le metriche delle risorse a intervalli regolari. Le metriche possono essere metriche della piattaforma, metriche personalizzate, log da Monitoraggio di Azure convertite in metriche o metriche di Application Insights. Gli avvisi delle metriche possono anche applicare più condizioni e soglie dinamiche.
  • Gli avvisi di log consentono agli utenti di utilizzare una query di Log Analytics per valutare i log delle risorse con una frequenza predefinita.
  • Gli avvisi dei log attività vengono attivati quando si verifica un nuovo evento del log attività che soddisfa le condizioni definite. Gli avvisi sull'integrità delle risorse e gli avvisi sull'integrità dei servizi sono avvisi di log delle attività che segnalano l'integrità dei servizi e delle risorse.

Alcuni servizi Azure supportano anche avvisi di rilevamento smart, avvisi Prometheus o regole di avviso consigliate.

Per alcuni servizi, è possibile monitorare su larga scala applicando la stessa regola di avviso delle metriche a più risorse dello stesso tipo presenti nella stessa area Azure. Vengono inviate notifiche singole per ogni risorsa monitorata. Per i servizi e i cloud Azure supportati, vedere Monitoraggio di più risorse con una regola di avviso.

Nota

Se si sta creando o eseguendo un'applicazione in esecuzione nel servizio, Monitoraggio di Azure application insights potrebbe offrire più tipi di avvisi.

Regole di avviso del Load Balancer

Nella tabella seguente sono elencate alcune regole di avviso suggerite per Load Balancer. Questi avvisi sono solo esempi. È possibile impostare avvisi per qualsiasi metrica, voce di log o voce di log attività elencata in Informazioni di riferimento sui dati di monitoraggio di Azure Load Balancer.

Tipo di avviso Condizione Descrizione
Regola di Load Balancer non disponibile a causa di macchine virtuali non disponibili Se la disponibilità del percorso dati divisa per indirizzo IP front-end e porta front-end (tutti i valori noti e futuri) è pari a zero, oppure, in un avviso indipendente, se lo stato del probe di integrità è pari a zero, attivare gli avvisi. Questi avvisi consentono di stabilire se la disponibilità del percorso dati per una qualsiasi delle regole di bilanciamento del carico configurate non sta gestendo il traffico a causa del fatto che tutte le macchine virtuali nel pool di backend associato risultano inattive secondo il probe di integrità configurato. Esaminare supporto e risoluzione dei problemi per Azure Load Balancer per approfondire la potenziale causa principale.
Disponibilità delle VM significativamente bassa Se lo stato del probe di integrità, diviso per IP back-end e porta back-end, è uguale alla percentuale definita dall'utente degli elementi sottoposti a controllo, rispetto alla dimensione totale del pool (ossia il 25% è sottoposto a controllo), viene generato un avviso di allerta. Questo avviso determina se sono disponibili meno VM di quelle necessarie per supportare il traffico
Le connessioni in uscita all'endpoint Internet hanno esito negativo Se il numero di connessioni SNAT, quando è filtrato per Stato connessione = Non riuscito, è maggiore di zero, allora viene generato un avviso. Questo avviso viene generato quando le porte SNAT vengono esaurite e le macchine virtuali non riescono ad avviare connessioni in uscita.
Avvicinamento all'esaurimento SNAT Se le porte SNAT usate sono maggiori del numero definito dall'utente, viene generato un avviso Questo avviso richiede una configurazione statica in uscita in cui viene sempre allocato lo stesso numero di porte. L'avviso si attiva quindi quando è usata una percentuale delle porte allocate.

Raccomandazioni dell'Advisor

Per alcuni servizi, se si verificano condizioni critiche o modifiche imminenti durante le operazioni sulle risorse, viene visualizzato un avviso nella pagina Panoramica del servizio nel portale. È possibile trovare altre informazioni e correzioni consigliate per l'avviso in Consigli di Advisor in Monitoraggio nel menu a sinistra. Durante il normale funzionamento non viene visualizzato nessun consiglio di Advisor.

Per altre informazioni sulle Azure Advisor, vedere panoramica di Azure Advisor.