Övervaka Azure SQL Database med hjälp av Azure SQL Analytics (förhandsversion)
GÄLLER FÖR: Azure SQL Database, Azure SQL Managed Instance
Varning
Azure SQL Analytics (förhandsversion) är en integrering med Azure Monitor, där många övervakningslösningar inte längre är under 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 övervakning av 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 felsökning av prestanda.
Genom att använda dessa insamlade mått kan du skapa anpassade övervakningsregler och aviseringar. Azure SQL Analytics hjälper dig att identifiera problem i 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 | Stöds | Description |
---|---|---|
Diagnostikinställningar | Ja | Azure-mått och loggdata skickas till Azure Monitor-loggar direkt av Azure. |
Azure Storage-konto | No | Azure Monitor läser inte data från ett lagringskonto. |
Windows-agenter | No | Direkta Windows-agenter används inte av Azure SQL Analytics. |
Linux-agenter | No | Direkta Linux-agenter används inte av Azure SQL Analytics. |
System Center Operations Manager-hanteringsgrupp | No | 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 instrumentpanelen Azure SQL Analytics, en för Azure SQL Database och den andra för Azure SQL Managed Instance databaser.
Azure SQL Analytics-alternativ | Description | SQL Database support | Stöd för SQL Managed Instance |
---|---|---|---|
Resurs efter typ | Perspektiv som räknar alla resurser som övervakas. | Ja | Yes |
Insikter | Ger hierarkisk ökad detaljnivå i Intelligent Insights i prestanda. | Ja | Yes |
Fel | Ger hierarkisk detaljnivå i SQL-fel som har inträffat på databaserna. | Ja | Yes |
Timeouter | Ger hierarkisk detaljnivå i SQL-timeouter som har inträffat på databaserna. | Ja | Inga |
Blockeringar | Ger hierarkisk detaljnivå i SQL-blockeringar som har inträffat på databaserna. | Ja | Inga |
Databasen väntar | Ger hierarkisk ökad detaljnivå i SQL-väntestatistik på databasnivå. Innehåller sammanfattningar av total väntetid och väntetid per väntetyp. | Ja | Inga |
Frågevaraktighet | Ger hierarkisk ökad detaljnivå i frågekörningsstatistiken, till exempel frågevaraktighet, CPU-användning, data-I/O-användning, logg-I/O-användning. | Ja | Yes |
Fråga väntar | Ger hierarkisk ökad detaljnivå i frågeväntestatistiken efter väntekategori. | Ja | Yes |
Konfiguration av Azure SQL Analytics (förhandsversion)
Använd processen 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å Log Analytics-arbetsytan.
Konfigurera Azure SQL Database för att strömma diagnostiktelemetri
När du har skapat 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 anvisningar på den här sidan:
- Aktivera Azure Diagnostics för databasen för att strömma diagnostiktelemetri till Azure SQL Analytics.
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 SQL Analytics-distributionen från sidan Äldre lösningar på Log Analytics-arbetsytan.
Azure SQL Analytics innehåller två separata vyer: en för övervakning SQL Database och en annan vy för övervakning SQL Managed Instance.
Visa Azure SQL Analytics-data
Instrumentpanelen innehåller en översikt över alla databaser som övervakas med olika perspektiv. För att olika perspektiv ska fungera måste du aktivera rätt 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 inte panelerna i Azure SQL Analytics med övervakningsinformation.
SQL Database vy
När panelen Azure SQL Analytics för databasen har valts visas 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å.
Varje perspektiv i den här vyn innehåller sammanfattningar på prenumerations-, server-, elastisk pool- och databasnivå. Dessutom visar varje perspektiv ett perspektiv som är specifikt för rapporten till höger. Om du väljer prenumeration, server, pool eller databas i listan fortsätter du att öka detaljnivån.
SQL Managed Instance vy
När panelen Azure SQL Analytics för databaserna har valts visas 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å.
Om du väljer SQL Managed Instance vy visas information om instansanvändning, instansdatabaser och telemetri för de frågor som körs över den hanterade instansen.
Intelligent Insights-rapport
Azure SQL Database Intelligent Insights låter dig 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 insiktsperspektivet.
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.
Köra frågor mot rapporter
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 för 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.
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. Mer tillåtande roller i Azure som tillåter användning av Azure SQL Analytics i största möjliga 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
Anteckning
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 artikeln om att 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 gör det möjligt att skapa en anpassad roll "SQL Analytics Monitoring Operator" i Azure Portal med den minsta läs- och skrivbehörighet som krävs för att använda Azure SQL Analytics i största möjliga 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 för att 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 dina anpassade frågor och rapporter. Hitta en beskrivning av tillgängliga data som samlas in från databasresursen för anpassade frågor i mått och loggar som är tillgängliga.
Automatiserade aviseringar 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
Anteckning
- Ett förhandskrav 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
meddtu_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
Anteckning
- Ett förhandskrav 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
meddtu_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
Anteckning
- Ett förhandskrav 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 ligger ovanför inom
storage_threshold
dentime_range
definierade. - Utdata är en lista över databasresurser som ligger ovanför inom
storage_threshold
dentime_range
definierade.
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 i 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
Anteckning
- Ett förhandskrav 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 befintliga insikter. 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 samla 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
Lagringsutrymmet ä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
Anteckning
- Ett förhandskrav för att konfigurera den här aviseringen är att den övervakade hanterade instansen har strömning av ResourceUsageStats-logg 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, som anger att villkoret finns på den hanterade instansen. Utdata är lagringsprocentförbrukning på den hanterade instansen.
Den genomsnittliga CPU-förbrukningen ä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
Anteckning
- Ett förhandskrav för att konfigurera den här aviseringen är att den övervakade hanterade instansen har strömning av ResourceUsageStats-logg 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, som anger att villkoret finns på den hanterade instansen. Utdata är genomsnittlig förbrukning i procent av CPU-användning under den definierade perioden på den hanterade instansen.
Prissättning
Även om Azure SQL Analytics (förhandsversion) är kostnadsfri att använda, kan förbrukning av diagnostiktelemetri ovanför de kostnadsfria enheter för datainmatning som allokeras varje månad tillämpas, se Priser för Log Analytics. 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 förbrukningen av datainmatning 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
- Använd loggfrågor i Azure Monitor för att visa detaljerade Azure SQL data.
- Skapa egna instrumentpaneler som visar Azure SQL data.
- Skapa aviseringar när specifika Azure SQL händelser inträffar.
- Övervaka Azure SQL Database med Azure Monitor
- Övervaka Azure SQL Managed Instance med Azure Monitor