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 su queste opzioni, vedere Creare impostazioni di diagnostica in portale di Azure.
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
- Per informazioni di riferimento su metriche, log e altri valori importanti creati da Azure SQL Database, vedere Informazioni di riferimento sui dati del database di monitoraggio Azure SQL.
- Per informazioni dettagliate sul monitoraggio delle risorse di Azure, vedere Monitoraggio delle risorse di Azure con Monitoraggio di Azure.
- Monitorare Istanza gestita di SQL di Azure con Monitoraggio di Azure