Monitorare il database SQL di Azure 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, leggere Monitoraggio 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 nella portale di Azure. In alternativa, nella pagina Panoramica di un database di Azure SQL selezionare Metriche nell'intestazione Monitoraggio di Azure per raggiungere Monitoraggio di Azure.

Monitoraggio di Azure SQL Insights (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 SQL Insights 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 SQL Insights di Monitoraggio di Azure per le metriche specifiche di SQL per Azure SQL database, Istanza gestita di SQL di Azure 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 database Azure SQL e Istanza gestita di SQL di Azure.

Dati di monitoraggio

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

Per informazioni dettagliate sulle metriche e sulle metriche create da Azure SQL database, vedere Monitoraggio Azure SQL di 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, Block, 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 di 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 quali categorie di log raccogliere. Le categorie per il database Azure SQL 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 sui dati del database Azure SQL

Per informazioni di 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à univoce. Questi dati vengono raccolti facoltativamente tramite 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 visualizzarlo in modo indipendente o instradarlo 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 viene aperto Log Analytics con l'ambito di 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

Occasionalmente, potrebbe richiedere 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 che siano disponibili diverse opzioni a seconda del modello di acquisto.

Esempio A: Log_write_percent dall'ora precedente

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 negli 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 avvisano in modo proattivo quando si trovano 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 su 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 singolo database in Azure SQL Database.

La tabella seguente elenca le regole di avviso comuni e consigliate per Azure SQL Database. È possibile che siano disponibili diverse opzioni a seconda del modello di acquisto.

Nome del segnale Operatore Tipo di aggregazione Valore soglia Descrizione
Percentuale DTU Maggiore di Media 80 Ogni volta che la percentuale DTU media è maggiore del 80%
Percentuale I/O registro Maggiore di Media 80 Ogni volta che la percentuale di io del log medio è maggiore del 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 del 80%

* L'avviso sui deadlock potrebbe non essere necessario e rumoroso in alcune applicazioni in cui i deadlock sono previsti e gestiti correttamente.

Passaggi successivi