Dela via


Övervaka Azure SQL Database med Azure SQL Analytics (förhandsversion)

GÄLLER FÖR: Azure SQL Database, Azure SQL Managed Instance

Försiktighet

Azure SQL Analytics (förhandsversion) är en integrering med Azure Monitor, där många övervakningslösningar inte längre är i aktiv utveckling. Fler övervakningsalternativ finns i Övervakning och prestandajustering i Azure SQL Database och Azure SQL Managed Instance.

Azure SQL Analytics (förhandsversion) är en avancerad molnövervakningslösning för att övervaka prestanda för alla dina Azure SQL-databaser i stor skala och över flera prenumerationer i en enda vy. Azure SQL Analytics samlar in och visualiserar viktiga prestandamått med inbyggd intelligens för prestandafelsökning.

Genom att använda dessa insamlade mått kan du skapa anpassade övervakningsregler och aviseringar. Azure SQL Analytics hjälper dig att identifiera problem på varje lager i programstacken. Azure SQL Analytics använder Azure Diagnostics-mått tillsammans med Azure Monitor-vyer för att presentera data om alla dina Azure SQL-databaser på en enda Log Analytics-arbetsyta. Azure Monitor hjälper dig att samla in, korrelera och visualisera strukturerade och ostrukturerade data.

Anslutna källor

Azure SQL Analytics är en molnbaserad övervakningslösning som stöder strömning av diagnostiktelemetri för alla dina Azure SQL-databaser. Eftersom Azure SQL Analytics inte använder agenter för att ansluta till Azure Monitor stöder det inte övervakning av SQL Server som finns lokalt eller på virtuella datorer.

Ansluten källa Understödd Beskrivning
Diagnostikinställningar Ja Azure-mått och loggdata skickas direkt från Azure till Azure Monitor-loggar.
Azure Storage-konto Nej Azure Monitor läser inte data från ett lagringskonto.
Windows-agenter Nej Direct Windows-agenter används inte av Azure SQL Analytics.
Linux-agenter Nej Direct Linux-agenter används inte av Azure SQL Analytics.
System Center Operations Manager-hanteringsgrupp Nej En direktanslutning från Operations Manager-agenten till Azure Monitor används inte av Azure SQL Analytics.

Azure SQL Analytics-alternativ

I tabellen nedan beskrivs alternativ som stöds för två versioner av Azure SQL Analytics-instrumentpanelen, en för Azure SQL Database och den andra för Azure SQL Managed Instance-databaser.

Azure SQL Analytics-alternativ Beskrivning SQL Database-stöd Stöd för SQL Managed Instance
Resurs efter typ Perspektiv som räknar alla resurser som övervakas. Ja Ja
Insikter Ger hierarkisk fördjupning av Intelligent Insights för prestanda. Ja Ja
Felaktigheter Ger hierarkisk detaljnivå i SQL-fel som har inträffat på databaserna. Ja Ja
Timeout Ger hierarkisk nedbrytning av SQL-tidsgränsöverträdelse som har inträffat i databaserna. Ja Nej
Blockeringar Ger hierarkisk detaljnivå i SQL-blockeringar som har inträffat på databaserna. Ja Nej
Databasväntetider Ger hierarkisk detaljnivå i SQL-väntestatistik på databasnivå. Innehåller sammanfattningar av total väntetid och väntetid per väntetyp. Ja Nej
Frågevaraktighet Ger hierarkisk detaljnivå i frågekörningsstatistiken, till exempel frågevaraktighet, CPU-användning, data-I/O-användning, logg-I/O-användning. Ja Ja
Frågväntetider Ger hierarkisk detaljnivå i frågeväntestatistiken efter väntekategori. Ja Ja

Konfiguration av Azure SQL Analytics (förhandsversion)

Använd den process som beskrivs i Lägg till Azure Monitor-lösningar från lösningsgalleriet för att lägga till Azure SQL Analytics (förhandsversion) på din Log Analytics-arbetsyta.

Konfigurera Azure SQL Database för att strömma diagnostiktelemetri

När du har skapat En Azure SQL Analytics-lösning på din arbetsyta måste du konfigurera varje resurs som du vill övervaka för att strömma diagnostiktelemetrin till Azure SQL Analytics. Följ detaljerade instruktioner på den här sidan:

Ovanstående sida innehåller också instruktioner om hur du aktiverar stöd för övervakning av flera Azure-prenumerationer från en enda Azure SQL Analytics-arbetsyta som en enda fönsterruta.

Använda Azure SQL Analytics (förhandsversion)

Gå till din SQL Analytics-driftsättning från sidan Legacy-lösningar på Log Analytics-arbetsytan.

Azure SQL Analytics innehåller två separata vyer: en för övervakning av SQL Database och den andra vyn för övervakning av SQL Managed Instance.

Visa Azure SQL Analytics-data

Instrumentpanelen innehåller översikten över alla databaser som övervakas via olika perspektiv. För att olika perspektiv ska fungera måste du aktivera korrekta mått eller loggar på dina SQL-resurser som ska strömmas till Log Analytics-arbetsytan.

Om vissa mått eller loggar inte strömmas till Azure Monitor fylls panelerna i Azure SQL Analytics inte med övervakningsinformation.

SQL Database-vy

När Azure SQL Analytics-panelen för databasen har valts visas instrumentpanelen för övervakning.

Skärmbild som visar instrumentpanelen för övervakning.

Om du väljer någon av panelerna öppnas en rapport med ökad detaljnivå i det specifika perspektivet. När perspektivet har valts öppnas rapporten för ökad detaljnivå.

Skärmbild som visar rapporten för djupgående analys i ett specifikt perspektiv.

Varje perspektiv i den här vyn innehåller sammanfattningar på prenumerations-, server-, elastiska pool- och databasnivå. Dessutom visar varje perspektiv ett perspektiv som är specifikt för rapporten till höger. Genom att välja prenumeration, server, pool eller databas i listan fördjupar du utforskningen.

SQL Managed Instance-vy

När Azure SQL Analytics-panelen för databaserna har valts visas övervakningsöversikten.

Översikt över Azure SQL Analytics

Om du väljer någon av panelerna öppnas en rapport med ökad detaljnivå i det specifika perspektivet. När perspektivet har valts öppnas rapporten för ökad detaljnivå.

Om du väljer vyn SQL Managed Instance visas information om instansanvändning, instansdatabaser och telemetri för de frågor som körs i den hanterade instansen.

Tidsgränser för Azure SQL Analytics

Intelligent Insights-rapport

Med Azure SQL Database Intelligent Insights får du veta vad som händer med prestanda för alla Azure SQL-databaser. Alla intelligenta insikter som samlas in kan visualiseras och nås via Insights-perspektivet.

Azure SQL Analytics Insights

Elastiska pooler och databasrapporter

Både elastiska pooler och databaser har egna specifika rapporter som visar alla data som samlas in för resursen under den angivna tiden.

Azure SQL Analytics Database

Elastisk Azure SQL-pool

Frågerapporter

Genom frågevaraktigheten och frågevänteperspektiven kan du korrelera prestanda för alla frågor via frågerapporten. Den här rapporten jämför frågeprestanda mellan olika databaser och gör det enkelt att hitta databaser som utför den valda frågan väl jämfört med de som är långsamma.

Azure SQL Analytics-frågor

Behörigheter

Om du vill använda Azure SQL Analytics (förhandsversion) måste användarna beviljas en minsta behörighet för rollen Läsare i Azure. Den här rollen tillåter dock inte att användarna ser frågetexten eller utför automatiska justeringsåtgärder. Fler tillåtande roller i Azure som tillåter användning av Azure SQL Analytics i största utsträckning är ägare, deltagare, SQL DB-deltagare eller SQL Server-deltagare. Du kanske också vill skapa en anpassad roll i portalen med specifika behörigheter som endast krävs för att använda Azure SQL Analytics och utan åtkomst till att hantera andra resurser.

Skapa en anpassad roll i portalen

Anmärkning

Vi rekommenderar att du använder Azure Az PowerShell-modulen för att interagera med Azure. Se Installera Azure PowerShell för att komma igång. Information om hur du migrerar till Az PowerShell-modulen finns i Migrera Azure PowerShell från AzureRM till Az.

Med tanke på att vissa organisationer tillämpar strikta behörighetskontroller i Azure hittar du följande PowerShell-skript som möjliggör skapandet av en anpassad roll "SQL Analytics Monitoring Operator" i Azure-portalen med den lägsta läs- och skrivbehörighet som krävs för att använda Azure SQL Analytics i sin fulla utsträckning.

Ersätt {SubscriptionId} i skriptet nedan med ditt Azure-prenumerations-ID och kör skriptet som loggas in som en ägar- eller deltagarroll i 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

När den nya rollen har skapats tilldelar du den här rollen till varje användare som du behöver bevilja anpassade behörigheter för att använda Azure SQL Analytics.

Analysera data och skapa aviseringar

Dataanalys i Azure SQL Analytics baseras på Log Analytics-språk för din anpassade frågor och rapportering. Hitta en beskrivning av tillgängliga data som samlas in från databasresursen för anpassade frågor i tillgängliga mått och loggar.

Automatiserad avisering i Azure SQL Analytics baseras på att skriva en Log Analytics-fråga som utlöser en avisering när ett villkor uppfylls. Nedan finns flera exempel på Log Analytics-frågor där aviseringar kan konfigureras i Azure SQL Analytics.

Skapa aviseringar för Azure SQL Database

Du kan enkelt skapa aviseringar med data som kommer från Azure SQL Database-resurser. Här följer några användbara loggfrågor som du kan använda med en loggavisering:

Hög CPU

AzureMetrics
| where ResourceProvider=="MICROSOFT.SQL"
| where ResourceId contains "/DATABASES/"
| where MetricName=="cpu_percent"
| summarize AggregatedValue = max(Maximum) by bin(TimeGenerated, 5m)
| render timechart

Anmärkning

  • Förhandskravet för att konfigurera den här aviseringen är att övervakade databaser strömmar grundläggande mått till Log Analytics-arbetsytan som används av Azure SQL Analytics.
  • Ersätt MetricName-värdet cpu_percent med dtu_consumption_percent för att få höga DTU-resultat i stället.

Hög CPU på elastiska pooler

AzureMetrics
| where ResourceProvider=="MICROSOFT.SQL"
| where ResourceId contains "/ELASTICPOOLS/"
| where MetricName=="cpu_percent"
| summarize AggregatedValue = max(Maximum) by bin(TimeGenerated, 5m)
| render timechart

Anmärkning

  • Förhandskravet för att konfigurera den här aviseringen är att övervakade databaser strömmar grundläggande mått till Log Analytics-arbetsytan som används av Azure SQL Analytics.
  • Ersätt MetricName-värdet cpu_percent med dtu_consumption_percent för att få höga DTU-resultat i stället.

Lagring i genomsnitt över 95% under de senaste 1 tim

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

Anmärkning

  • Förhandskravet för att konfigurera den här aviseringen är att övervakade databaser strömmar grundläggande mått till Log Analytics-arbetsytan som används av Azure SQL Analytics.
  • Den här frågan kräver att en aviseringsregel konfigureras för att utlösa en avisering när det finns resultat (> 0 resultat) från frågan, vilket anger att villkoret finns på vissa databaser. Utdata är en lista över databasresurser som är ovanför storage_threshold-gränsen inom det time_range-definierade området.
  • Utdata är en lista över databasresurser som är ovanför storage_threshold-gränsen inom det time_range-definierade området.

Avisering om intelligenta insikter

Viktigt!

Om en databas fungerar bra och inga Intelligent Insights har genererats misslyckas den här frågan med ett felmeddelande: Det gick inte att matcha skalärt uttryck med namnet rootCauseAnalysis_s. Det här beteendet förväntas för alla fall där det inte finns några intelligenta insikter för databasen.

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

Anmärkning

  • Förhandskravet för att konfigurera den här aviseringen är att övervakade databaser strömmar SQLInsights-diagnostikloggen till Log Analytics-arbetsytan som används av Azure SQL Analytics.
  • Den här frågan kräver att en aviseringsregel konfigureras för att köras med samma frekvens som alert_run_interval för att undvika duplicerade resultat. Regeln bör konfigureras för att utlösa aviseringen när det finns resultat (> 0 resultat) från frågan.
  • alert_run_interval Anpassa för att ange tidsintervallet för att kontrollera om villkoret har inträffat på databaser som konfigurerats för att strömma SQLInsights-loggen till Azure SQL Analytics.
  • Anpassa insights_string för att samla in utdata från rotorsaksanalystexten i Insights. Det här är samma text som visas i användargränssnittet för Azure SQL Analytics som du kan använda från de befintliga insikterna. Du kan också använda frågan nedan för att se texten för alla insikter som genereras i din prenumeration. Använd utdata från frågan för att hämta de distinkta strängarna för att konfigurera aviseringar i Insights.
AzureDiagnostics
| where Category == "SQLInsights" and status_s == "Active"
| distinct rootCauseAnalysis_s

Skapa aviseringar för SQL Managed Instance

Lagringen är över 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

Anmärkning

  • Förhandskravet för att konfigurera den här aviseringen är att den övervakade hanterade instansen har strömning av ResourceUsageStats-loggen aktiverad till Log Analytics-arbetsytan som används av Azure SQL Analytics.
  • Den här frågan kräver att en aviseringsregel konfigureras för att utlösa en avisering när det finns resultat (> 0 resultat) från frågan, vilket anger att villkoret finns på den hanterade instansen. Uttaget är lagringsförbrukning i procent på den hanterade instansen.

Genomsnittlig cpu-förbrukning är över 95% under de senaste 1 tim

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

Anmärkning

  • Förhandskravet för att konfigurera den här aviseringen är att den övervakade hanterade instansen har strömning av ResourceUsageStats-loggen aktiverad till Log Analytics-arbetsytan som används av Azure SQL Analytics.
  • Den här frågan kräver att en aviseringsregel konfigureras för att utlösa en avisering när det finns resultat (> 0 resultat) från frågan, vilket anger att villkoret finns på den hanterade instansen. Utdata är genomsnittlig cpu-användningsprocentförbrukning under den definierade perioden på den hanterade instansen.

Prissättning

Även om Azure SQL Analytics (förhandsversion) är gratis att använda, tillkommer kostnader för förbrukning av diagnostiktelemetri utöver de kostnadsfria enheter för datainmatning som allokeras per månad, se Log Analytics-priser. De kostnadsfria datainmatningsenheterna möjliggör kostnadsfri övervakning av flera databaser varje månad. Mer aktiva databaser med tyngre arbetsbelastningar matar in mer data jämfört med inaktiva databaser. Du kan enkelt övervaka datainmatningsförbrukningen i Azure SQL Analytics genom att välja OMS-arbetsyta på navigeringsmenyn i Azure SQL Analytics och sedan välja Användning och uppskattade kostnader.

Nästa steg