Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
GILT FÜR: Azure SQL-Datenbank, Azure SQL Managed Instance
Vorsicht
Azure SQL-Analyse (Vorschauversion) ist eine Integration in Azure Monitor, bei der sich viele Überwachungslösungen nicht mehr in der aktiven Entwicklung befinden. Weitere Überwachungsoptionen finden Sie unter Überwachung und Leistungsoptimierung in Azure SQL-Datenbank und in der verwalteten Azure SQL-Instanz.
Azure SQL Analytics (Vorschau) ist eine fortschrittliche Cloud-Monitoring-Lösung zur Überwachung der Leistung aller Ihrer Azure SQL-Datenbanken in großem Maßstab und über mehrere Abonnements hinweg in einer einzigen Ansicht. Azure SQL-Analyse erfasst und visualisiert wichtige Leistungsmetriken und umfasst integrierte Logik für die Problembehandlung in Bezug auf die Leistung.
Mithilfe dieser gesammelten Metriken können Sie benutzerdefinierte Überwachungsregeln und Warnungen erstellen. Azure SQL Analytics hilft Ihnen, Probleme auf jeder Ebene Ihres Anwendungsstapels zu identifizieren. Azure SQL Analytics verwendet Azure Diagnostics-Metriken zusammen mit Azure Monitor-Ansichten, um Daten zu allen Azure SQL-Datenbanken in einem einzigen Log Analytics-Arbeitsbereich darzustellen. Azure Monitor hilft Ihnen, strukturierte und unstrukturierte Daten zu sammeln, zu korrelieren und zu visualisieren.
Verbundene Quellen
Azure SQL Analytics ist eine reine Cloudüberwachungslösung, die das Streamen von Diagnosetelemetrie für alle Ihre Azure SQL-Datenbanken unterstützt. Da Azure SQL Analytics keine Agents zum Herstellen einer Verbindung mit Azure Monitor verwendet, wird die Überwachung von lokal oder auf virtuellen Computern gehosteten SQL Server nicht unterstützt.
Verbundene Quelle | Unterstützt | BESCHREIBUNG |
---|---|---|
Diagnoseeinstellungen | Ja | Azure-Metrik- und Protokolldaten werden direkt von Azure an Azure Monitor Logs gesendet. |
Azure-Speicherkonto | Nein | Azure Monitor liest die Daten nicht aus einem Speicherkonto. |
Windows-Agents | Nein | Direkte Windows-Agents werden von Azure SQL Analytics nicht verwendet. |
Linux-Agenten | Nein | Direkte Linux-Agents werden von Azure SQL Analytics nicht verwendet. |
System Center Operations Manager-Verwaltungsgruppe | Nein | Eine direkte Verbindung vom Operations Manager-Agent zu Azure Monitor wird von Azure SQL Analytics nicht verwendet. |
Azure SQL Analytics-Optionen
In der folgenden Tabelle werden die unterstützten Optionen für zwei Versionen des Azure SQL Analytics-Dashboards, eine für Azure SQL-Datenbank und die andere für Azure SQL Managed Instance-Datenbanken beschrieben.
Azure SQL Analytics Option | BESCHREIBUNG | SQL-Datenbankunterstützung | Unterstützung für SQL Managed Instance |
---|---|---|---|
Ressource nach Typ | Perspektive, die alle überwachten Ressourcen zählt. | Ja | Ja |
Erkenntnisse | Bietet hierarchische Drilldowns zu intelligenten Einblicken in die Leistung. | Ja | Ja |
Irrtümer | Stellt einen hierarchischen Drilldown zu SQL-Fehlern bereit, die in den Datenbanken aufgetreten sind. | Ja | Ja |
Auszeiten | Stellt einen hierarchischen Drilldown zu SQL-Timeouts bereit, die in den Datenbanken aufgetreten sind. | Ja | Nein |
Blockierungen | Stellt einen hierarchischen Drilldown zu SQL-Blockierungen bereit, die in den Datenbanken aufgetreten sind. | Ja | Nein |
Datenbank wartet | Stellt einen hierarchischen Drilldown zu SQL-Wait-Statistiken auf Datenbankebene bereit. Enthält Zusammenfassungen der Gesamtwartezeit und der Wartezeit pro Wartetyp. | Ja | Nein |
Abfragedauer | Stellt einen hierarchischen Drilldown zu den Abfrageausführungsstatistiken bereit, z. B. Abfragedauer, CPU-Auslastung, Daten-E/A-Verwendung, Protokoll-E/A-Verwendung. | Ja | Ja |
Abfrage wartet | Stellt einen hierarchischen Drilldown in die Abfragewartestatistik nach Wartekategorie bereit. | Ja | Ja |
Konfiguration von Azure SQL Analytics (Vorschau)
Verwenden Sie den unter Hinzufügen von Azure Monitor-Lösungen aus dem Lösungskatalog beschriebenen Prozess, um Ihrem Log Analytics-Arbeitsbereich Azure SQL Analytics (Vorschau) hinzuzufügen.
Konfigurieren der Azure SQL-Datenbank zum Streamen der Diagnose-Telemetrie
Nachdem Sie die Azure SQL Analytics-Lösung in Ihrem Arbeitsbereich erstellt haben, müssen Sie jede Ressource konfigurieren , die Sie überwachen möchten, um die Diagnosetelemetrie in Azure SQL Analytics zu streamen. Folgen Sie detaillierten Anweisungen auf dieser Seite:
- Aktivieren Sie Azure Diagnostics für Ihre Datenbank, um Diagnosetelemetrie in Azure SQL Analytics zu streamen.
Auf der obigen Seite finden Sie auch Anweisungen zum Aktivieren der Unterstützung für die Überwachung mehrerer Azure-Abonnements aus einem einzigen Azure SQL Analytics-Arbeitsbereich als einzelner Glasbereich.
Verwenden von Azure SQL Analytics (Vorschau)
Navigieren Sie über die Seite "Legacylösungen " des Log Analytics-Arbeitsbereichs zu Ihrer SQL Analytics-Bereitstellung.
Azure SQL Analytics bietet zwei separate Ansichten: eine für die Überwachung der SQL-Datenbank und die andere Ansicht für die Überwachung von SQL Managed Instance.
Anzeigen von Azure SQL Analytics-Daten
Das Dashboard enthält die Übersicht aller Datenbanken, die über verschiedene Perspektiven überwacht werden. Damit unterschiedliche Perspektiven funktionieren, müssen Sie die richtigen Metriken oder Protokolle für Ihre SQL-Ressourcen aktivieren, die in den Log Analytics-Arbeitsbereich gestreamt werden.
Wenn einige Metriken oder Protokolle nicht in Azure Monitor gestreamt werden, werden die Kacheln in Azure SQL Analytics nicht mit Überwachungsinformationen aufgefüllt.
SQL-Datenbankansicht
Sobald die Azure SQL Analytics-Kachel für die Datenbank ausgewählt ist, wird das Überwachungsdashboard angezeigt.
Wenn Sie eine der Kacheln auswählen, wird ein Drilldownbericht in der spezifischen Perspektive geöffnet. Sobald die Perspektive ausgewählt ist, wird der Drilldownbericht geöffnet.
Jede Perspektive in dieser Ansicht enthält Zusammenfassungen auf Abonnement-, Server-, elastischen Pool- und Datenbankebenen. Darüber hinaus zeigt jede Perspektive eine spezifische Perspektive für den Bericht auf der rechten Seite. Wenn Sie Abonnement, Server, Pool oder Datenbank aus der Liste auswählen, wird der Drilldown fortgesetzt.
Ansicht der verwalteten SQL-Instanz
Sobald die Azure SQL Analytics-Kachel für die Datenbanken ausgewählt ist, wird das Überwachungsdashboard angezeigt.
Wenn Sie eine der Kacheln auswählen, wird ein Drill-Down-Bericht für die spezifische Perspektive geöffnet. Sobald die Perspektive ausgewählt ist, wird der Drill-down-Bericht geöffnet.
Wenn Sie die Ansicht "VERWALTETe SQL-Instanz" auswählen, werden Details zur Instanznutzung, Instanzdatenbanken und Telemetrie zu den Abfragen angezeigt, die in der verwalteten Instanz ausgeführt werden.
Intelligent Insights-Bericht
Azure SQL Database Intelligent Insights informiert Sie, was mit der Leistung aller Azure SQL-Datenbanken geschieht. Alle gesammelten intelligenten Insights können über die Insights-Perspektive visualisiert und darauf zugegriffen werden.
Elastische Pools und Datenbankberichte
Sowohl elastische Pools als auch Datenbanken verfügen über eigene spezifische Berichte, in denen alle Daten angezeigt werden, die für die Ressource in der angegebenen Zeit gesammelt werden.
Abfrageberichte
Durch die Abfragedauer und Abfrage-Wartezeiten Perspektiven können Sie die Leistung jeder Abfrage über den Abfragebericht korrelieren. Dieser Bericht vergleicht die Abfrageleistung in verschiedenen Datenbanken und erleichtert die Identifizierung von Datenbanken, die die ausgewählte Abfrage gut ausführen, im Vergleich zu solchen, die langsam sind.
Erlaubnisse
Um Azure SQL Analytics (Vorschau) zu verwenden, müssen Benutzern eine Mindestberechtigung für die Reader-Rolle in Azure erteilt werden. Diese Rolle ermöglicht benutzern jedoch nicht, den Abfragetext anzuzeigen oder automatische Optimierungsaktionen auszuführen. Mehr permissive Rollen in Azure, die die Verwendung von Azure SQL Analytics in vollem Umfang zulassen, sind Besitzer, Beitragsleistender, SQL DB-Beitragsleistender oder SQL Server-Beitragsleistender. Sie können auch erwägen, eine benutzerdefinierte Rolle im Portal mit bestimmten Berechtigungen zu erstellen, die nur für die Verwendung von Azure SQL Analytics erforderlich sind, und ohne Zugriff auf die Verwaltung anderer Ressourcen.
Erstellen einer benutzerdefinierten Rolle im Portal
Hinweis
Es wird empfohlen, das Azure Az PowerShell-Modul für die Interaktion mit Azure zu verwenden. Informationen zu den ersten Schritten finden Sie unter Installieren des Azure Az PowerShell-Moduls. Informationen zum Migrieren zum Az PowerShell-Modul finden Sie unter Migrieren von Azure PowerShell von AzureRM zum Az-Modul.
Beachten Sie, dass einige Organisationen strenge Berechtigungskontrollen in Azure erzwingen, finden Sie das folgende PowerShell-Skript, das die Erstellung einer benutzerdefinierten Rolle "SQL Analytics Monitoring Operator" im Azure-Portal ermöglicht, und zwar mit den minimalen Lese- und Schreibberechtigungen, die erforderlich sind, um Azure SQL Analytics in vollem Umfang zu verwenden.
Ersetzen Sie die "{SubscriptionId}" im folgenden Skript durch Ihre Azure-Abonnement-ID, und führen Sie das Skript aus, während Sie in Azure als Besitzer oder Mitwirkender angemeldet sind.
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
Nachdem die neue Rolle erstellt wurde, weisen Sie diese Rolle jedem Benutzer zu, den Sie benutzerdefinierte Berechtigungen für die Verwendung von Azure SQL Analytics erteilen müssen.
Analysieren von Daten und Erstellen von Warnungen
Die Datenanalyse in Azure SQL Analytics basiert auf der Log Analytics-Sprache für Ihre benutzerdefinierte Abfrage und Berichterstellung. Hier finden Sie eine Beschreibung der verfügbaren Daten, die aus der Datenbankressource für benutzerdefinierte Abfragen in Metriken und verfügbaren Protokollen gesammelt werden.
Die automatisierte Warnung in Azure SQL Analytics basiert auf dem Schreiben einer Log Analytics-Abfrage, die eine Warnung nach einer erfüllten Bedingung auslöst. Nachfolgend finden Sie einige Beispiele für Log Analytics-Abfragen, für die Warnungen in Azure SQL Analytics eingerichtet werden können.
Erstellen von Warnungen für azure SQL-Datenbank
Sie können auf einfache Weise Warnungen mit den Daten erstellen, die aus Azure SQL-Datenbankressourcen stammen. Hier sind einige nützliche Protokollabfragen , die Sie mit einer Protokollbenachrichtigung verwenden können:
Hohe CPU-Auslastung
AzureMetrics
| where ResourceProvider=="MICROSOFT.SQL"
| where ResourceId contains "/DATABASES/"
| where MetricName=="cpu_percent"
| summarize AggregatedValue = max(Maximum) by bin(TimeGenerated, 5m)
| render timechart
Hinweis
- Vor der Anforderung, diese Warnung einzurichten, besteht darin, dass überwachte Datenbanken grundlegende Metriken in den Log Analytics-Arbeitsbereich streamen, der von Azure SQL Analytics verwendet wird.
- Ersetzen Sie stattdessen den MetricName-Wert
cpu_percent
durchdtu_consumption_percent
, um hohe DTU-Ergebnisse zu erhalten.
Hohe CPU auf elastischen Pools
AzureMetrics
| where ResourceProvider=="MICROSOFT.SQL"
| where ResourceId contains "/ELASTICPOOLS/"
| where MetricName=="cpu_percent"
| summarize AggregatedValue = max(Maximum) by bin(TimeGenerated, 5m)
| render timechart
Hinweis
- Vor der Anforderung, diese Warnung einzurichten, besteht darin, dass überwachte Datenbanken grundlegende Metriken in den Log Analytics-Arbeitsbereich streamen, der von Azure SQL Analytics verwendet wird.
- Ersetzen Sie stattdessen den MetricName-Wert
cpu_percent
durchdtu_consumption_percent
, um hohe DTU-Ergebnisse zu erhalten.
Speicher im Durchschnitt über 95% in den letzten 1 Stunden
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
Hinweis
- Voraussetzung für die Einrichtung dieser Warnung ist, dass überwachte Datenbanken Basiskennzahlen in den von Azure SQL Analytics verwendeten Log Analytics-Arbeitsbereich streamen.
- Für diese Abfrage muss eine Warnungsregel eingerichtet werden, um eine Warnung auszulöschen, wenn Ergebnisse (> 0 Ergebnisse) aus der Abfrage vorhanden sind, wobei angegeben wird, dass die Bedingung in einigen Datenbanken vorhanden ist. Die Ausgabe ist eine Liste der Datenbankressourcen, die sich oberhalb des
storage_threshold
time_range
definierten Bereichs befinden. - Die Ausgabe ist eine Liste der Datenbankressourcen, die sich oberhalb des
storage_threshold
time_range
definierten Bereichs befinden.
Warnung zu intelligenten Erkenntnissen
Von Bedeutung
Falls eine Datenbank gut funktioniert und keine intelligenten Insights generiert wurden, schlägt diese Abfrage mit einer Fehlermeldung fehl: Fehler beim Beheben des skalaren Ausdrucks namens rootCauseAnalysis_s
. Dieses Verhalten wird für alle Fälle erwartet, in denen keine intelligenten Erkenntnisse für die Datenbank vorhanden sind.
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
Hinweis
- Voraussetzung für die Einrichtung dieser Warnung ist, dass überwachte Datenbanken das SQLInsights-Diagnoseprotokoll in den Log Analytics-Arbeitsbereich streamen, der von Azure SQL Analytics verwendet wird.
- Für diese Abfrage muss eine Warnungsregel so eingerichtet werden, dass sie mit der gleichen Häufigkeit ausgeführt wird wie
alert_run_interval
zum Vermeiden doppelter Ergebnisse. Die Regel sollte so eingerichtet werden, dass die Warnung ausgelöst wird, wenn Ergebnisse (> 0 Ergebnisse) aus der Abfrage vorhanden sind. - Passen Sie den
alert_run_interval
Zeitraum an, um zu überprüfen, ob die Bedingung in Datenbanken aufgetreten ist, die für das Streamen des SQLInsights-Protokolls in Azure SQL Analytics konfiguriert sind. - Passen Sie die insights_string an, um das Ergebnis des Insight-Ursachenanalysetextes zu erfassen. Dies ist derselbe Text, der in der Benutzeroberfläche von Azure SQL Analytics angezeigt wird, den Sie aus den vorhandenen Erkenntnissen verwenden können. Alternativ können Sie die folgende Abfrage verwenden, um den Text aller Insights anzuzeigen, die in Ihrem Abonnement generiert wurden. Verwenden Sie die Ausgabe der Abfrage, um die unterschiedlichen Zeichenfolgen zum Einrichten von Warnungen für Insights zu ernten.
AzureDiagnostics
| where Category == "SQLInsights" and status_s == "Active"
| distinct rootCauseAnalysis_s
Erstellen von Warnungen für sql Managed Instance
Speicher liegt über 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
Hinweis
- Voraussetzung für die Einrichtung dieser Warnung ist, dass die überwachte verwaltete Instanz das Streaming des ResourceUsageStats-Protokolls in den Log Analytics-Arbeitsbereich aktiviert hat, der von Azure SQL Analytics verwendet wird.
- Für diese Abfrage muss eine Warnungsregel eingerichtet werden, um eine Warnung auszulösen, wenn Ergebnisse (> 0 Ergebnisse) aus der Abfrage vorhanden sind, was darauf hinweist, dass die Bedingung in der verwalteten Instanz vorliegt. Die Ausgabe ist der Speicherprozentverbrauch für die verwaltete Instanz.
Der CPU-Durchschnittsverbrauch liegt über 95% in den letzten 1 Stunden
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
Hinweis
- Voraussetzung für die Einrichtung dieser Warnung ist, dass die überwachte verwaltete Instanz das Streaming des ResourceUsageStats-Protokolls in den Log Analytics-Arbeitsbereich aktiviert hat, der von Azure SQL Analytics verwendet wird.
- Für diese Abfrage muss eine Warnungsregel eingerichtet werden, um eine Warnung auszulöschen, wenn Ergebnisse (> 0 Ergebnisse) aus der Abfrage vorhanden sind, wobei angegeben wird, dass die Bedingung in der verwalteten Instanz vorhanden ist. Die Ausgabe gibt die durchschnittliche CPU-Auslastung in Prozent im definierten Zeitraum auf der verwalteten Instanz an.
Preisgestaltung
Während Azure SQL Analytics (Vorschau) kostenlos genutzt werden kann, fallen Kosten für den Verbrauch von Telemetriedaten an, die über die frei zugeteilten Datenaufnahme-Einheiten pro Monat hinausgehen. Weitere Informationen finden Sie unter Log Analytics-Preise. Die kostenlos bereitgestellten Datenaufnahmeeinheiten ermöglichen die kostenlose Überwachung mehrerer Datenbanken jeden Monat. Aktivere Datenbanken mit schwereren Workloads nehmen mehr Daten im Vergleich zu Leerlaufdatenbanken auf. Sie können Ihre Datenaufnahmenutzung in Azure SQL Analytics ganz einfach überwachen, indem Sie OMS-Arbeitsbereich im Navigationsmenü von Azure SQL Analytics und dann "Nutzung" und "Geschätzte Kosten" auswählen.
Nächste Schritte
- Verwenden Sie Protokollabfragen in Azure Monitor, um detaillierte Azure SQL-Daten anzuzeigen.
- Erstellen Sie eigene Dashboards mit Azure SQL-Daten.
- Erstellen Sie Warnungen , wenn bestimmte Azure SQL-Ereignisse auftreten.
- Überwachen von Azure SQL-Datenbank mit Azure Monitor
- Überwachen einer verwalteten Azure SQL-Instanz mit Azure Monitor