Azure SQL Database bewaken met Azure SQL Analytics (preview)

VAN TOEPASSING OP: Azure SQL Database, Azure SQL Managed Instance

Waarschuwing

Azure SQL Analytics (preview) is een integratie met Azure Monitor, waarbij veel bewakingsoplossingen niet meer in actieve ontwikkeling zijn. Zie Bewaking en prestaties afstemmen in Azure SQL Database en Azure SQL Managed Instance voor meer controleopties.

Azure SQL Analytics (preview) is een geavanceerde cloudbewakingsoplossing voor het bewaken van de prestaties van al uw Azure SQL databases op schaal en voor meerdere abonnementen in één weergave. Azure SQL Analytics verzamelt en visualiseert belangrijke metrische prestatiegegevens met ingebouwde intelligentie voor prestatieproblemen.

Met behulp van deze verzamelde metrische gegevens kunt u aangepaste bewakingsregels en waarschuwingen maken. Azure SQL Analytics helpt u bij het identificeren van problemen in elke laag van uw toepassingsstack. Azure SQL Analytics gebruikt Azure Diagnostics metrische gegevens in combinatie met Azure Monitor-weergaven om gegevens over al uw Azure SQL databases weer te geven in één Log Analytics-werkruimte. Azure Monitor helpt u bij het verzamelen, correleren en visualiseren van gestructureerde en ongestructureerde gegevens.

Verbonden bronnen

Azure SQL Analytics is een cloudbewakingsoplossing die streaming van diagnostische telemetrie voor al uw Azure SQL databases ondersteunt. Omdat Azure SQL Analytics geen agents gebruikt om verbinding te maken met Azure Monitor, biedt het geen ondersteuning voor de bewaking van SQL Server die on-premises of in virtuele machines worden gehost.

Verbonden bron Ondersteund Description
Diagnostische instellingen Ja Metrische gegevens en logboekgegevens van Azure worden rechtstreeks door Azure verzonden naar Azure Monitor-logboeken.
Azure Storage-account No Azure Monitor leest de gegevens niet uit een opslagaccount.
Windows-agents No Directe Windows-agents worden niet gebruikt door Azure SQL Analytics.
Linux-agents No Directe Linux-agents worden niet gebruikt door Azure SQL Analytics.
Beheergroep System Center Operations Manager No Er wordt geen directe verbinding van de Operations Manager-agent naar Azure Monitor gebruikt door Azure SQL Analytics.

Azure SQL Analytics-opties

De onderstaande tabel bevat een overzicht van de ondersteunde opties voor twee versies van het Azure SQL Analytics-dashboard, één voor Azure SQL Database en de andere voor Azure SQL Managed Instance databases.

Azure SQL Analytics-optie Description SQL Database ondersteuning Ondersteuning voor SQL Managed Instance
Resource per type Perspectief dat alle bewaakte resources telt. Ja Ja
Inzichten Biedt hiërarchische inzoomen op Intelligent Insights in prestaties. Ja Ja
Fouten Biedt hiërarchische inzoomen op SQL-fouten die zijn opgetreden in de databases. Ja Ja
Time-outs Biedt hiërarchische inzoomen op SQL-time-outs die zijn opgetreden in de databases. Ja Nee
Blokkeringen Biedt hiërarchische inzoomen op SQL-blokkeringen die zijn opgetreden in de databases. Ja Nee
Databasewachttijden Biedt hiërarchische inzoomen op SQL-wachtstatistieken op databaseniveau. Bevat samenvattingen van de totale wachttijd en de wachttijd per wachttype. Ja Nee
Queryduur Biedt hiërarchische inzoomen op de statistieken voor het uitvoeren van query's, zoals queryduur, CPU-gebruik, gegevens-IO-gebruik en logboek-IO-gebruik. Ja Ja
Querywachttijden Biedt hiërarchische inzoomen op de wachtstatistieken van query's per wachtcategorie. Ja Ja

Configuratie van Azure SQL Analytics (preview)

Gebruik het proces dat wordt beschreven in Azure Monitor-oplossingen toevoegen vanuit de galerie met oplossingen om Azure SQL Analytics (preview) toe te voegen aan uw Log Analytics-werkruimte.

Azure SQL Database configureren voor het streamen van diagnostische telemetrie

Nadat u Azure SQL Analytics-oplossing in uw werkruimte hebt gemaakt, moet u elke resource configureren die u wilt bewaken om de telemetrie van diagnostische gegevens te streamen naar Azure SQL Analytics. Volg de gedetailleerde instructies op deze pagina:

De bovenstaande pagina bevat ook instructies voor het inschakelen van ondersteuning voor het bewaken van meerdere Azure-abonnementen vanuit één Azure SQL Analytics-werkruimte als één venster.

Azure SQL Analytics gebruiken (preview)

Navigeer naar uw SQL Analytics-implementatie op de pagina Verouderde oplossingen van de Log Analytics-werkruimte.

Azure SQL Analytics biedt twee afzonderlijke weergaven: één voor het bewaken van SQL Database en de andere weergave voor het bewaken van SQL Managed Instance.

Azure SQL Analytics-gegevens weergeven

Het dashboard bevat een overzicht van alle databases die vanuit verschillende perspectieven worden bewaakt. Om verschillende perspectieven te laten werken, moet u de juiste metrische gegevens of logboeken voor uw SQL-resources inschakelen om te worden gestreamd naar de Log Analytics-werkruimte.

Als sommige metrische gegevens of logboeken niet worden gestreamd naar Azure Monitor, worden de tegels in Azure SQL Analytics niet gevuld met bewakingsgegevens.

SQL Database weergave

Zodra de tegel Azure SQL Analytics voor de database is geselecteerd, wordt het bewakingsdashboard weergegeven.

Schermopname van het bewakingsdashboard.

Als u een van de tegels selecteert, wordt een inzoomrapport in het specifieke perspectief geopend. Zodra het perspectief is geselecteerd, wordt het inzoomrapport geopend.

Schermopname van het inzoomrapport in het specifieke perspectief.

Elk perspectief in deze weergave biedt samenvattingen op abonnements-, server-, elastische pool- en databaseniveau. Bovendien toont elk perspectief een perspectief dat specifiek is voor het rapport aan de rechterkant. Als u het abonnement, de server, de pool of de database in de lijst selecteert, gaat u verder met het inzoomen.

SQL Managed Instance weergave

Zodra de tegel Azure SQL Analytics voor de databases is geselecteerd, wordt het bewakingsdashboard weergegeven.

Overzicht van Azure SQL Analytics

Als u een van de tegels selecteert, wordt een inzoomrapport in het specifieke perspectief geopend. Zodra het perspectief is geselecteerd, wordt het inzoomrapport geopend.

Als u de weergave SQL Managed Instance selecteert, ziet u details over het exemplaargebruik, exemplaardatabases en telemetrie van de query's die in het beheerde exemplaar worden uitgevoerd.

Time-outs voor Azure SQL Analytics

Intelligent Insights-rapport

Azure SQL Database Intelligent Insights laat u weten wat er gebeurt met de prestaties van alle Azure SQL databases. Alle verzamelde intelligente inzichten kunnen worden gevisualiseerd en geopend via het perspectief Inzichten.

Azure SQL Analytics Insights

Elastische pools en databaserapporten

Zowel elastische pools als databases hebben hun eigen specifieke rapporten waarin alle gegevens worden weergegeven die in de opgegeven tijd voor de resource worden verzameld.

Azure SQL Analytics-database

Azure SQL elastische pool

Queryrapporten

Via de perspectieven voor queryduur en querywachttijden kunt u de prestaties van elke query correleren via het queryrapport. Dit rapport vergelijkt de queryprestaties in verschillende databases en maakt het eenvoudig om databases aan te geven die de geselecteerde query goed uitvoeren en databases die traag zijn.

Azure SQL Analytics-query's

Machtigingen

Als u Azure SQL Analytics (preview) wilt gebruiken, moeten gebruikers een minimale machtiging krijgen voor de rol Lezer in Azure. Deze rol staat gebruikers echter niet toe om de querytekst te zien en geen acties voor automatisch afstemmen uit te voeren. Meer tolerante rollen in Azure die het gebruik van Azure SQL Analytics maximaal toestaan, zijn Eigenaar, Inzender, SQL DB-inzender of SQL Server Inzender. U kunt ook overwegen om een aangepaste rol in de portal te maken met specifieke machtigingen die alleen zijn vereist voor het gebruik van Azure SQL Analytics en zonder toegang tot het beheren van andere resources.

Een aangepaste rol maken in de portal

Notitie

Het wordt aanbevolen de Azure Az PowerShell-module te gebruiken om te communiceren met Azure. Zie Azure PowerShell installeren om aan de slag te gaan. Raadpleeg Azure PowerShell migreren van AzureRM naar Az om te leren hoe u naar de Azure PowerShell-module migreert.

Als u weet dat sommige organisaties strikte machtigingscontroles in Azure afdwingen, vindt u het volgende PowerShell-script waarmee u een aangepaste rol 'SQL Analytics Monitoring Operator' kunt maken in Azure Portal met de minimale lees- en schrijfmachtigingen die nodig zijn om Azure SQL Analytics volledig te gebruiken.

Vervang de {SubscriptionId} in het onderstaande script door uw Azure-abonnements-id en voer het script uit dat is aangemeld als eigenaar of inzender 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

Zodra de nieuwe rol is gemaakt, wijst u deze rol toe aan elke gebruiker die u aangepaste machtigingen moet verlenen om Azure SQL Analytics te gebruiken.

Gegevens analyseren en waarschuwingen maken

Gegevensanalyse in Azure SQL Analytics is gebaseerd op de Taal van Log Analytics voor uw aangepaste query's en rapportage. Zoek een beschrijving van de beschikbare gegevens die zijn verzameld uit de databaseresource voor aangepaste query's in beschikbare metrische gegevens en logboeken.

Automatische waarschuwingen in Azure SQL Analytics zijn gebaseerd op het schrijven van een Log Analytics-query waarmee een waarschuwing wordt geactiveerd wanneer aan een voorwaarde is voldaan. Hieronder vindt u enkele voorbeelden van Log Analytics-query's waarvoor waarschuwingen kunnen worden ingesteld in Azure SQL Analytics.

Waarschuwingen maken voor Azure SQL Database

U kunt eenvoudig waarschuwingen maken met de gegevens die afkomstig zijn van Azure SQL Database-resources. Hier volgen enkele nuttige logboekquery's die u kunt gebruiken met een logboekwaarschuwing:

Hoog CPU-gebruik

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

Notitie

  • Voorwaarde voor het instellen van deze waarschuwing is dat bewaakte databases metrische basisgegevens streamen naar de Log Analytics-werkruimte die wordt gebruikt door Azure SQL Analytics.
  • Vervang de waarde cpu_percentdtu_consumption_percent MetricName door om in plaats daarvan hoge DTU-resultaten te verkrijgen.

Hoog CPU-gebruik voor elastische pools

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

Notitie

  • Voor het instellen van deze waarschuwing is vereist dat bewaakte databases metrische basisgegevens streamen naar de Log Analytics-werkruimte die wordt gebruikt door Azure SQL Analytics.
  • Vervang de waarde cpu_percentdtu_consumption_percent MetricName door om in plaats daarvan hoge DTU-resultaten te verkrijgen.

Opslag in gemiddeld boven de 95% in de afgelopen 1 uur

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

Notitie

  • Voorwaarde voor het instellen van deze waarschuwing is dat bewaakte databases metrische basisgegevens streamen naar de Log Analytics-werkruimte die wordt gebruikt door Azure SQL Analytics.
  • Voor deze query moet een waarschuwingsregel worden ingesteld om een waarschuwing te activeren wanneer er resultaten (> 0 resultaten) van de query bestaan, wat aangeeft dat de voorwaarde bestaat voor sommige databases. De uitvoer is een lijst met databaseresources die zich boven de storage_threshold in de time_range gedefinieerde bevinden.
  • De uitvoer is een lijst met databaseresources die zich boven de storage_threshold in de time_range gedefinieerde bevinden.

Waarschuwing voor intelligente inzichten

Belangrijk

Als een database goed presteert en er geen Intelligent Insights is gegenereerd, mislukt deze query met het volgende foutbericht: Kan scalaire expressie met de naam rootCauseAnalysis_sniet oplossen. Dit gedrag wordt verwacht voor alle gevallen waarin er geen intelligente inzichten voor de database bestaan.

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

Notitie

  • Voor het instellen van deze waarschuwing is vereist dat bewaakte databases het diagnostische logboek van SQLInsights streamen naar de Log Analytics-werkruimte die wordt gebruikt door Azure SQL Analytics.
  • Voor deze query moet een waarschuwingsregel worden ingesteld om te worden uitgevoerd met dezelfde frequentie als alert_run_interval om dubbele resultaten te voorkomen. De regel moet zo worden ingesteld dat de waarschuwing wordt geactiveerd wanneer er resultaten (> 0 resultaten) van de query bestaan.
  • Pas de alert_run_interval aan om het tijdsbereik op te geven om te controleren of de voorwaarde is opgetreden in databases die zijn geconfigureerd voor het streamen van SQLInsights-logboeken naar Azure SQL Analytics.
  • Pas de insights_string aan om de uitvoer van de hoofdoorzaakanalysetekst van Insights vast te leggen. Dit is dezelfde tekst die wordt weergegeven in de gebruikersinterface van Azure SQL Analytics die u kunt gebruiken vanuit de bestaande inzichten. U kunt ook de onderstaande query gebruiken om de tekst te bekijken van alle inzichten die voor uw abonnement zijn gegenereerd. Gebruik de uitvoer van de query om de afzonderlijke tekenreeksen te verzamelen voor het instellen van waarschuwingen in Insights.
AzureDiagnostics
| where Category == "SQLInsights" and status_s == "Active"
| distinct rootCauseAnalysis_s

Waarschuwingen voor SQL Managed Instance maken

Opslag is hoger dan 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

Notitie

  • De vereiste voor het instellen van deze waarschuwing is dat voor het bewaakte beheerde exemplaar het streamen van het ResourceUsageStats-logboek is ingeschakeld naar de Log Analytics-werkruimte die wordt gebruikt door Azure SQL Analytics.
  • Voor deze query moet een waarschuwingsregel worden ingesteld om een waarschuwing te activeren wanneer er resultaten (> 0 resultaten) van de query bestaan, die aangeeft dat de voorwaarde bestaat op het beheerde exemplaar. De uitvoer is het opslagpercentageverbruik op het beheerde exemplaar.

Gemiddeld CPU-verbruik is hoger dan 95% in de afgelopen 1 uur

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

Notitie

  • De vereiste voor het instellen van deze waarschuwing is dat voor het bewaakte beheerde exemplaar het streamen van het ResourceUsageStats-logboek is ingeschakeld naar de Log Analytics-werkruimte die wordt gebruikt door Azure SQL Analytics.
  • Voor deze query moet een waarschuwingsregel worden ingesteld om een waarschuwing te activeren wanneer er resultaten (> 0 resultaten) van de query bestaan, die aangeeft dat de voorwaarde bestaat op het beheerde exemplaar. De uitvoer is het gemiddelde cpu-gebruikspercentage in de gedefinieerde periode op het beheerde exemplaar.

Prijzen

Hoewel Azure SQL Analytics (preview) gratis kan worden gebruikt, is het verbruik van diagnostische telemetrie boven de gratis eenheden voor gegevensopname die elke maand worden toegewezen van toepassing. Zie Prijzen voor Log Analytics. Met de gratis eenheden voor gegevensopname kunt u elke maand verschillende databases gratis bewaken. Actievere databases met zwaardere workloads nemen meer gegevens op dan niet-actieve databases. U kunt eenvoudig uw verbruik van gegevensopname in Azure SQL Analytics controleren door OMS-werkruimte te selecteren in het navigatiemenu van Azure SQL Analytics en vervolgens Gebruik en Geschatte kosten te selecteren.

Volgende stappen