Monitorare il database Azure SQL con Monitoraggio di Azure

Si applica a: Database SQL di Azure

Quando si usano applicazioni e processi aziendali critici basati sulle risorse di Azure, è consigliabile monitorare tali risorse per verificarne disponibilità, prestazioni e funzionamento.

Questo articolo descrive i dati di monitoraggio generati da Azure SQL Database. Azure SQL Database può essere monitorato da Monitoraggio di Azure. Se non si ha familiarità con le funzionalità di Monitoraggio di Azure comuni a tutti i servizi di Azure che lo usano, vedere Monitoraggio delle risorse di Azure con Monitoraggio di Azure.

Pagina di panoramica del monitoraggio in portale di Azure

Visualizzare le metriche di Monitoraggio di Azure per tutte le risorse connesse passando alla pagina Monitoraggio di Azure direttamente nel portale di Azure. In alternativa, nella pagina Panoramica di un database Azure SQL selezionare Metriche nell'intestazione Monitoraggio per raggiungere Monitoraggio di Azure.

Informazioni dettagliate SQL di Monitoraggio di Azure (anteprima)

Alcuni servizi in Azure hanno un dashboard di monitoraggio predefinito incentrato nella portale di Azure che può essere abilitato per fornire un punto di partenza per il monitoraggio del servizio. Questi dashboard speciali sono denominati "insights" e non sono abilitati per impostazione predefinita. Per altre informazioni sull'uso di Informazioni dettagliate SQL di Monitoraggio di Azure per tutti i prodotti nella famiglia di Azure SQL, vedere Monitorare le distribuzioni SQL con SQL Insights (anteprima).

Dopo aver creato un profilo di monitoraggio, è possibile configurare Informazioni dettagliate SQL di Monitoraggio di Azure per le metriche specifiche di SQL per il database Azure SQL, Istanza gestita di SQL e SQL Server nelle macchine virtuali di Azure.

Nota

Azure SQL Analytics (anteprima) è un'integrazione con Monitoraggio di Azure, in cui molte soluzioni di monitoraggio non sono più in fase di sviluppo attivo. Per altre opzioni di monitoraggio, vedere Monitoraggio e ottimizzazione delle prestazioni in Azure SQL Database e Istanza gestita di SQL di Azure.

Dati di monitoraggio

Azure SQL Database raccoglie gli stessi tipi di dati di monitoraggio delle altre risorse di Azure descritte in Monitoraggio dei dati dalle risorse di Azure.

Per informazioni dettagliate sulle metriche e sui log creati da Azure SQL Database, vedere Monitoraggio Azure SQL Database con Monitoraggio di Azure.

Raccolta e routing

Le metriche della piattaforma e il log attività vengono raccolti e archiviati automaticamente, ma possono essere instradati ad altre posizioni usando un'impostazione di diagnostica.

I log delle risorse non vengono raccolti e archiviati fino a quando non si crea un'impostazione di diagnostica e vengono instradati a una o più posizioni. I log delle risorse erano in precedenza detti log di diagnostica.

Le impostazioni di diagnostica disponibili includono:

  • log: SQLInsights, AutomaticTuning, QueryStoreRuntimeStatistics, QueryStoreWaitStatistics, Errors, DatabaseWaitStatistics, Timeouts, Blocks, Deadlocks
  • metrica: tutte le metriche di Monitoraggio di Azure nelle categorie Basic e InstanceAndAppAdvanced
  • dettagli di destinazione: inviare all'area di lavoro Log Analytics, archiviare a un account di archiviazione, trasmettere a un hub eventi, inviare alla soluzione partner

Per altre informazioni sui log delle risorse e sulla diagnostica disponibili, vedere Telemetria diagnostica per l'esportazione.

Per consentire al processo di creare un'impostazione di diagnostica usando il portale di Azure, l'interfaccia della riga di comando di Azure o PowerShell, vedere Creare un'impostazione di diagnostica per raccogliere i log e le metriche della piattaforma in Azure. Quando si crea un'impostazione di diagnostica, specificare le categorie di log da raccogliere. Le categorie per Azure SQL Database sono elencate in Azure SQL Riferimento ai dati di monitoraggio del database.

Analisi delle metriche

È possibile analizzare le metriche per Azure SQL Database insieme alle metriche di altri servizi di Azure usando Esplora metriche aprendo Metriche dal menu Monitoraggio nel portale di Azure. Per informazioni dettagliate sull'uso di questo strumento, vedere Introduzione a Esplora metriche di Azure.

Per un elenco delle metriche della piattaforma raccolte per Azure SQL Database, vedere Monitoraggio delle metriche di riferimento dei dati del database Azure SQL

Per riferimento, è possibile visualizzare un elenco di tutte le metriche delle risorse supportate in Monitoraggio di Azure.

Analisi dei log

I dati nei log di Monitoraggio di Azure vengono archiviati nelle tabelle in cui ogni tabella ha un proprio set di proprietà univoco. Questi dati vengono raccolti facoltativamente tramite le impostazioni di diagnostica.

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

Il log attività è un tipo di log della piattaforma in Azure che fornisce informazioni dettagliate sugli eventi a livello di sottoscrizione. È possibile visualizzarla in modo indipendente o instradarla ai log di Monitoraggio di Azure, in cui è possibile eseguire query molto più complesse usando Log Analytics.

Per un elenco dei tipi di log delle risorse raccolti per Azure SQL Database, vedere Log delle risorse per Azure SQL Database.

Per un elenco delle tabelle usate dai log di Monitoraggio di Azure ed eseguire query da Log Analytics, vedere Tabelle dei log di Monitoraggio di Azure per Azure SQL Database.

Query Kusto di esempio

Importante

Selezionando Log dal menu Monitoraggio di un database si apre Log Analytics con l'ambito della query impostato sul database corrente. Ciò significa che le query di log includeranno solo i dati di tale risorsa. Se si vuole eseguire una query che includa dati di altri database o dati di altri servizi di Azure, selezionare Log dal menu di Monitoraggio di Azure. Per i dettagli, vedere Ambito e intervallo di tempo delle query su log in Log Analytics di Monitoraggio di Azure.

Nota

In alcuni casi, potrebbero essere necessari fino a 15 minuti tra quando viene generato un evento e quando viene visualizzato in un'area di lavoro Log Analytics.

Usare le query seguenti per monitorare il database. È possibile visualizzare opzioni diverse a seconda del modello di acquisto.

Esempio A: Log_write_percent dall'ultima ora

AzureMetrics
| where ResourceProvider == "MICROSOFT.SQL"
| where TimeGenerated >= ago(60min)
| where MetricName in ('log_write_percent')
| parse _ResourceId with * "/microsoft.sql/servers/" Resource
| summarize Log_Maximum_last60mins = max(Maximum), Log_Minimum_last60mins = min(Minimum), Log_Average_last60mins = avg(Average) by Resource, MetricName

Esempio B: SQL Server tipi di attesa degli ultimi 15 minuti

AzureDiagnostics
| where ResourceProvider == "MICROSOFT.SQL"
| where TimeGenerated >= ago(15min)
| parse _ResourceId with * "/microsoft.sql/servers/" LogicalServerName "/databases/" DatabaseName
| summarize Total_count_15mins = sum(delta_waiting_tasks_count_d) by LogicalServerName, DatabaseName, wait_type_s

Esempio C: SQL Server deadlock degli ultimi 60 minuti

AzureMetrics
| where ResourceProvider == "MICROSOFT.SQL"
| where TimeGenerated >= ago(60min)
| where MetricName in ('deadlock')
| parse _ResourceId with * "/microsoft.sql/servers/" Resource
| summarize Deadlock_max_60Mins = max(Maximum) by Resource, MetricName

Esempio D: Utilizzo medio della CPU dall'ultima ora

AzureMetrics
| where ResourceProvider == "MICROSOFT.SQL"
| where TimeGenerated >= ago(60min)
| where MetricName in ('cpu_percent')
| parse _ResourceId with * "/microsoft.sql/servers/" Resource
| summarize CPU_Maximum_last60mins = max(Maximum), CPU_Minimum_last60mins = min(Minimum), CPU_Average_last60mins = avg(Average) by Resource, MetricName

Avvisi

Gli avvisi di Monitoraggio di Azure notificano in modo proattivo quando vengono rilevate condizioni importanti nei dati di monitoraggio. Queste metriche in Monitoraggio di Azure vengono sempre raccolte. Consentono di identificare e risolvere i problemi nei database o nei pool elastici prima che i clienti li notino. È possibile impostare avvisi per metriche, log e log attività.

Se si crea o si esegue un'applicazione in Azure, Application Insights di Monitoraggio di Azure può offrire altri tipi di avvisi.

È anche possibile configurare gli avvisi con l'interfaccia della riga di comando di Azure o PowerShell. Ad esempio, vedere Usare PowerShell per monitorare e ridimensionare un database singolo in Azure SQL Database.

Nella tabella seguente sono elencate le regole di avviso comuni e consigliate per Azure SQL Database. È possibile visualizzare opzioni diverse a seconda del modello di acquisto.

Nome segnale Operatore Tipo di aggregazione Valore soglia Descrizione
Percentuale DTU Maggiore di Media 80 Ogni volta che la percentuale DTU media è maggiore dell'80%
Percentuale I/O registro Maggiore di Media 80 Ogni volta che la percentuale media di io del log è maggiore dell'80%
Deadlock* Maggiore di Conteggio 1 Ogni volta che il numero di deadlock è maggiore di 1.
Percentuale CPU Maggiore di Media 80 Ogni volta che la percentuale media della CPU è maggiore dell'80%

* L'invio di avvisi su deadlock potrebbe non essere necessario e rumoroso in alcune applicazioni in cui i deadlock sono previsti e gestiti correttamente.

Passaggi successivi