Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
SI APPLICA A: Database SQL di Azure, Istanza SQL gestita di Azure
Attenzione
Analisi SQL di Azure (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 nel database SQL di Azure e in Istanza gestita di SQL di Azure.
Analisi SQL di Azure (anteprima) è una soluzione di monitoraggio cloud avanzata per il monitoraggio delle prestazioni di tutti i database SQL di Azure su larga scala e tra più sottoscrizioni in un'unica visualizzazione. Azure SQL Analytics raccoglie e visualizza importanti metriche sulle prestazioni con funzionalità di intelligence integrata per la risoluzione dei problemi.
Usando queste metriche raccolte, è possibile creare regole e avvisi di monitoraggio personalizzati. Analisi SQL di Azure consente di identificare i problemi a ogni livello dello stack di applicazioni. Analisi SQL di Azure usa metriche di diagnostica di Azure insieme alle viste di Monitoraggio di Azure per presentare i dati su tutti i database SQL di Azure in un'unica area di lavoro Log Analytics. Monitoraggio di Azure consente di raccogliere, correlare e visualizzare dati strutturati e non strutturati.
Origini connesse
Analisi SQL di Azure è una soluzione di monitoraggio solo cloud che supporta lo streaming dei dati di telemetria di diagnostica per tutti i database SQL di Azure. Poiché Analisi SQL di Azure non usa agenti per connettersi a Monitoraggio di Azure, non supporta il monitoraggio di SQL Server ospitato in locale o in macchine virtuali.
Sorgente connessa | Sostenuto | Descrizione |
---|---|---|
Impostazioni di diagnostica | Sì | I dati delle metriche e dei log di Azure vengono inviati ai log di Monitoraggio di Azure direttamente da Azure. |
Account di archiviazione di Azure | NO | Azure Monitor non legge i dati da un account di archiviazione. |
agenti Windows | NO | Gli agenti Windows diretti non vengono usati da Analisi SQL di Azure. |
agenti Linux | NO | Gli agenti Linux diretti non vengono usati da Analisi SQL di Azure. |
gruppo di gestione di System Center Operations Manager | NO | Una connessione diretta dall'agente di Operations Manager a Azure Monitor non viene usata da Analisi SQL di Azure. |
Opzioni di Analisi SQL di Azure
La tabella seguente illustra le opzioni supportate per due versioni del dashboard di Analisi SQL di Azure, una per il database SQL di Azure e l'altra per i database di Istanza gestita di SQL di Azure.
Opzione Analisi SQL di Azure | Descrizione | Supporto del database SQL | Supporto per Istanza gestita di SQL |
---|---|---|---|
Risorsa per tipo | Prospettiva che conta tutte le risorse monitorate. | Sì | Sì |
Approfondimenti | Fornisce approfondimenti gerarchici su Intelligent Insights sulle prestazioni. | Sì | Sì |
Errori | Fornisce un approfondimento gerarchico sugli errori SQL che si sono verificati sui database. | Sì | Sì |
Timeout | Fornisce un approfondimento gerarchico nei timeout SQL che si sono verificati nelle basi di dati. | Sì | NO |
Blocchi | Fornisce un'analisi dettagliata gerarchica sui blocchi SQL che si sono verificati nei database. | Sì | NO |
Le attese del database | Fornisce un'analisi gerarchica dettagliata delle statistiche di attesa SQL a livello di database. Include riepiloghi del tempo di attesa totale e del tempo di attesa per ogni tipo di attesa. | Sì | NO |
Durata delle query | Fornisce un'analisi dettagliata delle statistiche relative all'esecuzione delle query, come la durata dell'esecuzione della query, l'utilizzo della CPU, l'utilizzo di I/O dei dati, e l'utilizzo di I/O dei log. | Sì | Sì |
Query in attesa | Fornisce un dettaglio gerarchico delle statistiche di attesa delle query, suddivise per categoria di attesa. | Sì | Sì |
Configurazione di Analisi SQL di Azure (anteprima)
Usare il processo descritto in Aggiungere soluzioni di Monitoraggio di Azure dalla raccolta soluzioni per aggiungere Analisi SQL di Azure (anteprima) all'area di lavoro Log Analytics.
Configurare il database SQL di Azure per trasmettere i dati di telemetria di diagnostica
Dopo aver creato la soluzione Analisi SQL di Azure nell'area di lavoro, è necessario configurare ogni risorsa da monitorare per trasmettere i dati di telemetria di diagnostica ad Analisi SQL di Azure. Seguire le istruzioni dettagliate in questa pagina:
- Abilitare la diagnostica di Azure per il database per trasmettere la telemetria diagnostica ad Azure SQL Analytics.
La pagina precedente fornisce anche istruzioni sull'abilitazione del supporto per il monitoraggio di più sottoscrizioni di Azure da una singola area di lavoro di Analisi SQL di Azure come singolo riquadro di visualizzazione.
Usare Analisi SQL di Azure (anteprima)
Accedere alla distribuzione di SQL Analytics dalla pagina soluzioni legacy dell'area di lavoro Log Analytics.
Analisi SQL di Azure offre due viste separate: una per il monitoraggio del database SQL e l'altra per il monitoraggio di Istanza gestita di SQL.
Visualizzazione dei dati di Analisi SQL di Azure
Il dashboard include la panoramica di tutti i database monitorati tramite prospettive diverse. Per il funzionamento di prospettive diverse, è necessario abilitare le metriche o i log appropriati per le risorse SQL da trasmettere all'area di lavoro Log Analytics.
Se alcune metriche o log non vengono trasmessi in Monitoraggio di Azure, i riquadri in Analisi SQL di Azure non vengono popolati con le informazioni di monitoraggio.
Vista SQL del database
Dopo aver selezionato il riquadro Analisi SQL di Azure per il database, viene visualizzato il dashboard di monitoraggio.
Se si seleziona uno dei riquadri, si apre un report di approfondimento per la prospettiva specifica. Dopo aver selezionato la prospettiva, viene aperto il report dettagliato.
In ogni prospettiva, questa visualizzazione offre riepiloghi a livello di sottoscrizione, server, pool elastico e database. Inoltre, ogni prospettiva mostra una prospettiva specifica del report a destra. Selezionando la sottoscrizione, il server, il pool o il database dall'elenco, si procede al drill-down.
Vista Istanza gestita di SQL
Dopo aver selezionato il riquadro Analisi SQL di Azure per i database, viene visualizzato il dashboard di monitoraggio.
Se si seleziona uno dei riquadri, si apre un report di approfondimento per la prospettiva specifica. Dopo aver selezionato la prospettiva, viene aperto il report dettagliato.
Selezionando la visualizzazione Istanza gestita di SQL, vengono visualizzati i dettagli sull'utilizzo dell'istanza, sui database dell'istanza e sui dati di telemetria sulle query eseguite nell'istanza gestita.
Rapporto 'Intelligent Insights'
Il database SQL di Azure Intelligent Insights consente di sapere cosa accade con le prestazioni di tutti i database SQL di Azure. Tutti i dati raccolti di Intelligent Insights possono essere visualizzati e accessibili tramite la prospettiva di Insights.
Pool elastici e report di database
Sia i pool elastici che i database hanno report specifici che mostrano tutti i dati raccolti per la risorsa nel tempo specificato.
Report delle query
Attraverso la durata delle query e le prospettive di attesa, è possibile correlare le prestazioni di qualsiasi query tramite il rapporto sulle query. Questo report confronta le prestazioni delle query tra database diversi e consente di individuare facilmente i database che eseguono correttamente la query selezionata rispetto a quelli lenti.
Autorizzazioni
Per usare Analisi SQL di Azure (anteprima), agli utenti deve essere concessa un'autorizzazione minima del ruolo Lettore in Azure. Questo ruolo, tuttavia, non consente agli utenti di visualizzare il testo della query o di eseguire azioni di ottimizzazione automatica. Altri ruoli permissivi in Azure che consentono l'uso di Analisi SQL di Azure nell'ambito più completo sono Proprietario, Collaboratore, Collaboratore database SQL o Collaboratore SQL Server. È anche possibile prendere in considerazione la creazione di un ruolo personalizzato nel portale con autorizzazioni specifiche necessarie solo per l'uso di Analisi SQL di Azure e senza accesso alla gestione di altre risorse.
Creare un ruolo personalizzato nel portale
Nota
È consigliabile usare il modulo Azure Az PowerShell per interagire con Azure. Per iniziare, vedere Installare Azure PowerShell. Per informazioni su come eseguire la migrazione al modulo AZ PowerShell, vedere Eseguire la migrazione di Azure PowerShell da AzureRM ad Az.
Riconoscendo che alcune organizzazioni applicano controlli di autorizzazione rigorosi in Azure, trovare lo script di PowerShell seguente che abilita la creazione di un ruolo personalizzato "Operatore di monitoraggio analisi SQL" nel portale di Azure con le autorizzazioni minime di lettura e scrittura necessarie per usare Analisi SQL di Azure per il massimo livello.
Sostituire "{SubscriptionId}" nello script seguente con l'ID sottoscrizione di Azure ed eseguire lo script accedendo come Proprietario o Collaboratore in Azure.
Connect-AzAccount
Select-AzSubscription {SubscriptionId}
$role = Get-AzRoleDefinition -Name Reader
$role.Name = "SQL Analytics Monitoring Operator"
$role.Description = "Lets you monitor database performance with Azure SQL Analytics as a reader. Does not allow change of resources."
$role.IsCustom = $true
$role.Actions.Add("Microsoft.SQL/servers/databases/read");
$role.Actions.Add("Microsoft.SQL/servers/databases/topQueries/queryText/*");
$role.Actions.Add("Microsoft.Sql/servers/databases/advisors/read");
$role.Actions.Add("Microsoft.Sql/servers/databases/advisors/write");
$role.Actions.Add("Microsoft.Sql/servers/databases/advisors/recommendedActions/read");
$role.Actions.Add("Microsoft.Sql/servers/databases/advisors/recommendedActions/write");
$role.Actions.Add("Microsoft.Sql/servers/databases/automaticTuning/read");
$role.Actions.Add("Microsoft.Sql/servers/databases/automaticTuning/write");
$role.Actions.Add("Microsoft.Sql/servers/advisors/read");
$role.Actions.Add("Microsoft.Sql/servers/advisors/write");
$role.Actions.Add("Microsoft.Sql/servers/advisors/recommendedActions/read");
$role.Actions.Add("Microsoft.Sql/servers/advisors/recommendedActions/write");
$role.Actions.Add("Microsoft.Resources/deployments/write");
$role.AssignableScopes = "/subscriptions/{SubscriptionId}"
New-AzRoleDefinition $role
Dopo aver creato il nuovo ruolo, assegnare questo ruolo a ogni utente che è necessario concedere autorizzazioni personalizzate per usare Analisi SQL di Azure.
Analizzare i dati e creare avvisi
L'analisi dei dati in Analisi SQL di Azure si basa su linguaggio di Log Analytics per l'esecuzione di query e report personalizzati. Trova la descrizione dei dati disponibili raccolti dalla risorsa di database per l'esecuzione di query personalizzate nelle metriche e nei log disponibili.
Gli avvisi automatizzati in Analisi SQL di Azure si basano sulla scrittura di una query di Log Analytics che attiva un avviso in base a una condizione soddisfatta. Di seguito sono riportati alcuni esempi di query di Log Analytics su cui è possibile configurare avvisi in Analisi SQL di Azure.
Creare avvisi per il database SQL di Azure
È possibile creare facilmente avvisi con i dati provenienti dalle risorse del database SQL di Azure. Ecco alcune utili query di log che è possibile usare con un avviso di log:
CPU alta
AzureMetrics
| where ResourceProvider=="MICROSOFT.SQL"
| where ResourceId contains "/DATABASES/"
| where MetricName=="cpu_percent"
| summarize AggregatedValue = max(Maximum) by bin(TimeGenerated, 5m)
| render timechart
Nota
- Il requisito preliminare della configurazione di questo avviso è che i database monitorati trasmetteno le metriche di base all'area di lavoro Log Analytics usata da Analisi SQL di Azure.
- Sostituire il valore MetricName
cpu_percent
condtu_consumption_percent
per ottenere risultati DTU elevati.
Utilizzo elevato della CPU nei pool elastici
AzureMetrics
| where ResourceProvider=="MICROSOFT.SQL"
| where ResourceId contains "/ELASTICPOOLS/"
| where MetricName=="cpu_percent"
| summarize AggregatedValue = max(Maximum) by bin(TimeGenerated, 5m)
| render timechart
Nota
- Il requisito preliminare della configurazione di questo avviso è che i database monitorati trasmetteno le metriche di base all'area di lavoro Log Analytics usata da Analisi SQL di Azure.
- Sostituire il valore MetricName
cpu_percent
condtu_consumption_percent
per ottenere risultati DTU elevati.
Archiviazione in media superiore a 95% nelle ultime 1 ora
let time_range = 1h;
let storage_threshold = 95;
AzureMetrics
| where ResourceId contains "/DATABASES/"
| where MetricName == "storage_percent"
| summarize max_storage = max(Average) by ResourceId, bin(TimeGenerated, time_range)
| where max_storage > storage_threshold
| distinct ResourceId
Nota
- Il requisito preliminare della configurazione di questo avviso è che i database monitorati trasmetteno le metriche di base all'area di lavoro Log Analytics usata da Analisi SQL di Azure.
- Questa query richiede la configurazione di una regola di avviso per attivare un avviso quando sono presenti risultati (> 0 risultati) dalla query, che indica che la condizione esiste in alcuni database. L'output è un elenco di risorse di database sopra il
storage_threshold
all'interno deltime_range
definito. - L'output è un elenco di risorse di database sopra il
storage_threshold
all'interno deltime_range
definito.
Avviso in Intelligent Insights
Importante
Nel caso in cui un database funzioni correttamente e che non sia stato generato Intelligent Insights, la query avrà esito negativo con un messaggio di errore: Impossibile risolvere l'espressione scalare denominata rootCauseAnalysis_s
. Questo comportamento è previsto per tutti i casi in cui non esistono informazioni dettagliate intelligenti per il database.
let alert_run_interval = 1h;
let insights_string = "hitting its CPU limits";
AzureDiagnostics
| where Category == "SQLInsights" and status_s == "Active"
| where TimeGenerated > ago(alert_run_interval)
| where rootCauseAnalysis_s contains insights_string
| distinct ResourceId
Nota
- Il requisito preliminare della configurazione di questo avviso è che i database monitorati eseguono lo streaming del log di diagnostica di SQLInsights nell'area di lavoro Log Analytics usata da Analisi SQL di Azure.
- Per questa query è necessario configurare una regola di avviso per l'esecuzione con la stessa frequenza di
alert_run_interval
per evitare risultati duplicati. La regola deve essere configurata per attivare l'avviso quando sono presenti risultati (> 0 risultati) dalla query. - Personalizzare il
alert_run_interval
per specificare l'intervallo di tempo per verificare se la condizione si è verificata nei database configurati per lo streaming del log di SQLInsights ad Analisi SQL di Azure. - Personalizzare l'insights_string per acquisire il risultato del testo di analisi della causa principale di Insights. Si tratta dello stesso testo visualizzato nell'interfaccia utente di Azure SQL Analytics che è possibile utilizzare dalle intuizioni esistenti. In alternativa, è possibile usare la query seguente per visualizzare il testo di tutte le analisi dettagliate generate sulla tua sottoscrizione. Usare l'output della query per raccogliere le distinte stringhe necessarie alla configurazione degli avvisi su Insights.
AzureDiagnostics
| where Category == "SQLInsights" and status_s == "Active"
| distinct rootCauseAnalysis_s
Creare avvisi per Istanza gestita di SQL
La capacità di archiviazione è superiore a 90%
let storage_percentage_threshold = 90;
AzureDiagnostics
| where Category =="ResourceUsageStats"
| summarize (TimeGenerated, calculated_storage_percentage) = arg_max(TimeGenerated, todouble(storage_space_used_mb_s) *100 / todouble (reserved_storage_mb_s))
by ResourceId
| where calculated_storage_percentage > storage_percentage_threshold
Nota
- Il requisito preliminare per configurare questo avviso è che l'istanza gestita monitorata ha lo streaming del log ResourceUsageStats abilitato per l'area di lavoro Log Analytics usata da Analisi SQL di Azure.
- Questa query richiede la configurazione di una regola di avviso per attivare un avviso quando sono presenti risultati (> 0 risultati) dalla query, che indica che la condizione esiste nell'istanza gestita. L'output è il consumo percentuale di archiviazione nell'istanza gestita.
Il consumo medio della CPU è superiore a 95% nelle ultime 1 ora
let cpu_percentage_threshold = 95;
let time_threshold = ago(1h);
AzureDiagnostics
| where Category == "ResourceUsageStats" and TimeGenerated > time_threshold
| summarize avg_cpu = max(todouble(avg_cpu_percent_s)) by ResourceId
| where avg_cpu > cpu_percentage_threshold
Nota
- Il requisito preliminare per configurare questo avviso è che l'istanza gestita monitorata ha lo streaming del log ResourceUsageStats abilitato per l'area di lavoro Log Analytics usata da Analisi SQL di Azure.
- Questa query richiede la configurazione di una regola di avviso per attivare un avviso quando sono presenti risultati (> 0 risultati) dalla query, che indica che la condizione esiste nell'istanza gestita. L'output è il consumo medio della percentuale di utilizzo della CPU nel periodo definito nell'istanza gestita.
Tariffazione
Anche se Analisi SQL di Azure (anteprima) è gratuita da usare, si applica il consumo della telemetria diagnostica sopra le unità gratuite di inserimento dati allocate ogni mese; consultare prezzi di Log Analytics. Le unità gratuite di inserimento dati fornite consentono il monitoraggio gratuito di diversi database ogni mese. Database più attivi con carichi di lavoro più pesanti inseriscono più dati rispetto ai database inattive. È possibile monitorare facilmente il consumo di inserimento dati in Analisi SQL di Azure selezionando Area di lavoro OMS nel menu di spostamento di Analisi SQL di Azure e quindi selezionando Utilizzo e costi stimati.
Passaggi successivi
- Usare query di log in Azure Monitor per visualizzare dati dettagliati di Azure SQL.
- Crea il tuo dashboard che mostrano i dati SQL di Azure.
- Creare avvisi quando si verificano eventi SQL di Azure specifici.
- Monitorare il database SQL di Azure con Monitoraggio di Azure
- Monitorare Istanza gestita di SQL di Azure con Monitoraggio di Azure