Udostępnij za pośrednictwem


Monitorowanie usługi Azure SQL Database przy użyciu usługi Azure SQL Analytics (wersja zapoznawcza)

DOTYCZY: Azure SQL Database, Azure SQL Managed Instance

Ostrzeżenie

Usługa Azure SQL Analytics (wersja zapoznawcza) to integracja z usługą Azure Monitor, w której wiele rozwiązań do monitorowania nie jest już aktywnie opracowywanych. Aby uzyskać więcej opcji monitorowania, zobacz Monitorowanie i dostrajanie wydajności w usługach Azure SQL Database i Azure SQL Managed Instance.

Usługa Azure SQL Analytics (wersja zapoznawcza) to zaawansowane rozwiązanie do monitorowania wydajności wszystkich baz danych Azure SQL Database na dużą skalę i w wielu subskrypcjach w jednym widoku. Usługa Azure SQL Analytics zbiera i wizualizuje kluczowe metryki wydajności za pomocą wbudowanej analizy na potrzeby rozwiązywania problemów z wydajnością.

Korzystając z tych zebranych metryk, można utworzyć niestandardowe reguły monitorowania i alerty. Usługa Azure SQL Analytics ułatwia identyfikowanie problemów w każdej warstwie stosu aplikacji. Usługa Azure SQL Analytics używa metryk Azure Diagnostics wraz z widokami usługi Azure Monitor do prezentowania danych dotyczących wszystkich baz danych Azure SQL w jednym obszarze roboczym usługi Log Analytics. Usługa Azure Monitor ułatwia zbieranie, korelowanie i wizualizowanie danych ze strukturą i bez struktury.

Połączone źródła

Azure SQL Analytics to rozwiązanie do monitorowania tylko w chmurze obsługujące przesyłanie strumieniowe danych telemetrycznych diagnostycznych dla wszystkich baz danych Azure SQL Database. Ponieważ usługa Azure SQL Analytics nie używa agentów do nawiązywania połączenia z usługą Azure Monitor, nie obsługuje monitorowania programu SQL Server hostowanego lokalnie ani na maszynach wirtualnych.

Połączone źródło Wsparte Opis
Ustawienia diagnostyki Tak Dane metryk i dzienników platformy Azure są wysyłane do dzienników usługi Azure Monitor bezpośrednio przez platformę Azure.
Konto usługi Azure Storage Nie. Usługa Azure Monitor nie odczytuje żadnych danych z konta magazynu.
Agenci systemu Windows Nie. Bezpośredni agenci systemu Windows nie są używane przez usługę Azure SQL Analytics.
Agenci systemu Linux Nie. Bezpośredni agenci systemu Linux nie są używane przez usługę Azure SQL Analytics.
System Center Operations Manager grupy zarządzania Nie. Bezpośrednie połączenie z agenta programu Operations Manager do usługi Azure Monitor nie jest używane przez usługę Azure SQL Analytics.

Opcje usługi Azure SQL Analytics

W poniższej tabeli przedstawiono obsługiwane opcje dla dwóch wersji pulpitu nawigacyjnego usługi Azure SQL Analytics, jednej dla usługi Azure SQL Database i drugiej dla baz danych usługi Azure SQL Managed Instance.

Opcja usługi Azure SQL Analytics Opis Obsługa usługi SQL Database Obsługa usługi SQL Managed Instance
Zasób według typu Perspektywa, która zlicza wszystkie monitorowane zasoby. Tak Tak
Spostrzeżenia Umożliwia hierarchiczne zagłębianie się w funkcję Intelligent Insights dotyczącą wydajności. Tak Tak
Błędy Zapewnia hierarchiczne przechodzenie do szczegółów błędów SQL, które wystąpiły w bazach danych. Tak Tak
Przerwy czasowe Zapewnia hierarchiczne zagłębianie się w szczegóły dotyczące limitów czasu SQL, które wystąpiły w bazach danych. Tak Nie.
Blokady Zapewnia hierarchiczny przejrzysty wgląd w blokady SQL, które wystąpiły w bazach danych. Tak Nie.
Opóźnienia w bazach danych Zapewnia hierarchiczne zgłębianie szczegółów statystyk oczekiwania SQL na poziomie bazy danych. Zawiera podsumowania całkowitego czasu oczekiwania i czasu oczekiwania na typ oczekiwania. Tak Nie.
Czas trwania zapytania Zapewnia hierarchiczną analizę szczegółową statystyk wykonania zapytań, takich jak czas trwania zapytania, użycie procesora, użycie we/wy danych, użycie we/wy dziennika. Tak Tak
Oczekiwanie zapytania Umożliwia hierarchiczne zgłębianie statystyk czasu oczekiwania zapytania według kategorii oczekiwania. Tak Tak

Konfiguracja usługi Azure SQL Analytics (wersja zapoznawcza)

Użyj procesu opisanego w artykule Dodawanie rozwiązań usługi Azure Monitor z galerii rozwiązań , aby dodać usługę Azure SQL Analytics (wersja zapoznawcza) do obszaru roboczego usługi Log Analytics.

Konfigurowanie usługi Azure SQL Database do przesyłania strumieniowego danych telemetrycznych diagnostycznych

Po utworzeniu rozwiązania Usługi Azure SQL Analytics w obszarze roboczym należy skonfigurować każdy zasób, który chcesz monitorować, aby przesyłać strumieniowo dane telemetryczne diagnostyki do usługi Azure SQL Analytics. Postępuj zgodnie ze szczegółowymi instrukcjami na tej stronie:

Na powyższej stronie znajdują się również instrukcje dotyczące włączania obsługi monitorowania wielu subskrypcji platformy Azure z jednego obszaru roboczego usługi Azure SQL Analytics jako pojedynczego okienka szkła.

Korzystanie z usługi Azure SQL Analytics (wersja zapoznawcza)

Przejdź do wdrożenia usługi SQL Analytics na stronie Starsze rozwiązania obszaru roboczego usługi Log Analytics.

Usługa Azure SQL Analytics udostępnia dwa oddzielne widoki: jeden do monitorowania usługi SQL Database, a drugi widok monitorowania usługi SQL Managed Instance.

Wyświetlanie danych usługi Azure SQL Analytics

Pulpit nawigacyjny zawiera omówienie wszystkich baz danych monitorowanych w różnych perspektywach. Aby różne perspektywy działały, należy włączyć odpowiednie metryki lub dzienniki dotyczące zasobów SQL, które mają być przesyłane strumieniowo do obszaru roboczego usługi Log Analytics.

Jeśli niektóre metryki lub dzienniki nie są przesyłane strumieniowo do usługi Azure Monitor, kafelki w usłudze Azure SQL Analytics nie są wypełniane informacjami monitorowania.

Widok usługi SQL Database

Po wybraniu kafelka Azure SQL Analytics dla bazy danych zostanie wyświetlony pulpit nawigacyjny monitorowania.

Zrzut ekranu przedstawiający panel monitorowania.

Wybranie dowolnej płytki powoduje otwarcie szczegółowego raportu w określonej perspektywie. Po wybraniu perspektywy zostanie otwarty raport szczegółowy.

Zrzut ekranu przedstawiający raport drill-down w konkretnej perspektywie.

Każda perspektywa w tym widoku zawiera podsumowania na poziomie subskrypcji, serwera, elastycznej puli i bazy danych. Ponadto każda perspektywa przedstawia specyficzne ujęcie raportu widocznego po prawej stronie. Wybranie subskrypcji, serwera, puli lub bazy danych z listy kontynuuje przechodzenie do szczegółów.

Widok wystąpienia zarządzanego SQL

Po wybraniu kafelka usługi Azure SQL Analytics dla baz danych zostanie wyświetlony pulpit nawigacyjny monitorowania.

Omówienie usługi Azure SQL Analytics

Wybranie dowolnego kafelka powoduje otwarcie raportu szczegółowego w określonej perspektywie. Po wybraniu perspektywy zostanie otwarty raport szczegółowy.

Wybranie widoku wystąpienia zarządzanego SQL zawiera szczegółowe informacje o wykorzystaniu wystąpienia, bazach danych wystąpień i telemetrii zapytań wykonywanych w wystąpieniu zarządzanym.

Limity czasu usługi Azure SQL Analytics

Raport usługi Intelligent Insights

Usługa Azure SQL Database Intelligent Insights informuje o tym, co dzieje się z wydajnością wszystkich baz danych Azure SQL Database. Wszystkie zebrane inteligentne wnioski można wizualizować i uzyskiwać do nich dostęp z perspektywy Insights.

Azure SQL Analytics Insights

Elastyczne pule i raporty bazy danych

Zarówno elastyczne pule, jak i bazy danych mają własne raporty, które pokazują wszystkie dane zebrane dla zasobu w określonym czasie.

Azure SQL Analytics Database

Elastyczna pula Azure SQL

Raporty zapytań

Podczas analizy czasu trwania i czasu oczekiwania zapytań można skorelować wydajność dowolnego zapytania w raporcie zapytania. Ten raport porównuje wydajność zapytań w różnych bazach danych i ułatwia wskazanie baz danych, które dobrze wykonują wybrane zapytania, a te, które są powolne.

Zapytania usługi Azure SQL Analytics

Uprawnienia

Aby korzystać z usługi Azure SQL Analytics (wersja zapoznawcza), użytkownicy muszą mieć minimalne uprawnienia roli Czytelnik na platformie Azure. Ta rola nie zezwala jednak użytkownikom na wyświetlanie tekstu zapytania ani wykonywanie żadnych akcji automatycznego dostrajania. Więcej ról permissywnych na platformie Azure, które umożliwiają korzystanie z usługi Azure SQL Analytics w najszerszym zakresie, to właściciel, współautor, współautor bazy danych SQL lub współautor programu SQL Server. Warto również rozważyć utworzenie roli niestandardowej w portalu z określonymi uprawnieniami wymaganymi tylko do korzystania z usługi Azure SQL Analytics i bez dostępu do zarządzania innymi zasobami.

Tworzenie roli niestandardowej w portalu

Uwaga / Notatka

Zalecamy użycie modułu Azure Az PowerShell do interakcji z Azure. Zobacz Instalowanie programu Azure PowerShell , aby rozpocząć pracę. Aby dowiedzieć się, jak przeprowadzić migrację do modułu Az programu PowerShell, zobacz Migrowanie programu Azure PowerShell z modułu AzureRM do modułu Az.

Uznając, że niektóre organizacje wymuszają ścisłe kontrole uprawnień na platformie Azure, znajdź następujący skrypt programu PowerShell umożliwiający utworzenie roli niestandardowej "Operator monitorowania usługi SQL Analytics" w witrynie Azure Portal z minimalnymi uprawnieniami do odczytu i zapisu wymaganymi do korzystania z usługi Azure SQL Analytics w najszerszym zakresie.

Zastąp element "{SubscriptionId}" w poniższym skrypcie identyfikatorem Twojej subskrypcji Azure i wykonaj skrypt, będąc zalogowanym jako rola Właściciela lub Współautora w platformie 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

Po utworzeniu nowej roli przypisz tę rolę każdemu użytkownikowi, którego musisz udzielić uprawnień niestandardowych do korzystania z usługi Azure SQL Analytics.

Analizowanie danych i tworzenie alertów

Analiza danych w usłudze Azure SQL Analytics jest oparta na języku usługi Log Analytics na potrzeby niestandardowego wykonywania zapytań i raportowania. Znajdź opis dostępnych danych zebranych z zasobu bazy danych na potrzeby wykonywania zapytań niestandardowych w dostępnych metrykach i dziennikach.

Automatyczne alerty w usłudze Azure SQL Analytics są oparte na pisaniu zapytania usługi Log Analytics, które wyzwala alert po spełnieniu warunku. Poniżej przedstawiono kilka przykładów zapytań usługi Log Analytics, na których można skonfigurować alerty w usłudze Azure SQL Analytics.

Tworzenie alertów dla usługi Azure SQL Database

Alerty można łatwo tworzyć przy użyciu danych pochodzących z zasobów usługi Azure SQL Database. Poniżej przedstawiono kilka przydatnych zapytań dziennika , których można użyć z alertem dziennika:

Wysokie zużycie procesora

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

Uwaga / Notatka

  • Wstępne wymaganie dotyczące konfigurowania tego alertu polega na tym, że monitorowane bazy danych przesyłają strumieniowo podstawowe metryki do obszaru roboczego usługi Log Analytics używanego przez usługę Azure SQL Analytics.
  • Zamień wartość MetricName cpu_percent na dtu_consumption_percent, aby uzyskać wysokie wyniki DTU.

Wysokie użycie procesora w pulach elastycznych

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

Uwaga / Notatka

  • Wstępne wymaganie dotyczące konfigurowania tego alertu polega na tym, że monitorowane bazy danych przesyłają strumieniowo metryki podstawowe do obszaru roboczego usługi Log Analytics używanego przez usługę Azure SQL Analytics.
  • Zastąp wartość cpu_percent wartością dtu_consumption_percent , aby uzyskać wysokie wyniki DTU.

Magazyn średnio powyżej 95% w ciągu ostatnich 1 godzin

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

Uwaga / Notatka

  • Wstępne wymaganie dotyczące konfigurowania tego alertu polega na tym, że monitorowane bazy danych przesyłają strumieniowo podstawowe metryki do obszaru roboczego usługi Log Analytics używanego przez usługę Azure SQL Analytics.
  • To zapytanie wymaga skonfigurowania reguły alertu w celu wyzwolenia alertu, gdy istnieją wyniki (> 0 wyników) z zapytania, co oznacza, że warunek istnieje w niektórych bazach danych. Dane wyjściowe to lista zasobów bazy danych, które znajdują się ponad storage_threshold w obrębie zdefiniowanego time_range.
  • Dane wyjściowe to lista zasobów bazy danych, które znajdują się powyżej storage_threshold w ramach określonych przez time_range.

Alert dotyczący inteligentnych spostrzeżeń

Ważne

Jeśli baza danych działa prawidłowo i że nie wygenerowano żadnej funkcji Intelligent Insights, to zapytanie zakończy się niepowodzeniem z komunikatem o błędzie: Nie można rozpoznać wyrażenia skalarnego o nazwie rootCauseAnalysis_s. To zachowanie jest oczekiwane we wszystkich przypadkach, w których nie ma inteligentnych szczegółowych informacji dla bazy danych.

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

Uwaga / Notatka

  • Wstępne wymaganie dotyczące konfigurowania tego alertu polega na tym, że monitorowane bazy danych przesyłają strumieniowo dziennik diagnostyczny usługi SQLInsights do obszaru roboczego usługi Log Analytics używanego przez usługę Azure SQL Analytics.
  • To zapytanie wymaga skonfigurowania reguły alertu w celu uruchomienia z taką samą częstotliwością, jak alert_run_interval w celu uniknięcia zduplikowanych wyników. Reguła powinna zostać skonfigurowana, aby wyzwalać alert, jeśli pojawią się wyniki (> 0 wyników) z zapytania.
  • Dostosuj element alert_run_interval, aby określić zakres czasu do sprawdzenia, czy warunek wystąpił w bazach danych, które są skonfigurowane do przesyłania logów SQLInsights do Azure SQL Analytics.
  • Dostosuj insights_string, aby przechwycić wyniki analizy głównej przyczyny 'Insights'. Jest to ten sam tekst wyświetlany w interfejsie użytkownika usługi Azure SQL Analytics, którego można użyć z istniejących analiz. Alternatywnie możesz użyć poniższego zapytania, aby wyświetlić tekst wszystkich Insights wygenerowanych na twojej subskrypcji. Użyj danych wyjściowych zapytania, aby zebrać odrębne ciągi na potrzeby konfigurowania alertów w usłudze Insights.
AzureDiagnostics
| where Category == "SQLInsights" and status_s == "Active"
| distinct rootCauseAnalysis_s

Tworzenie alertów dla usługi SQL Managed Instance

Magazyn jest powyżej 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

Uwaga / Notatka

  • Warunkiem koniecznym skonfigurowania tego alertu jest, aby monitorowane wystąpienie zarządzane miało włączone przesyłanie strumieniowe dziennika ResourceUsageStats do obszaru roboczego usługi Log Analytics używanego przez Azure SQL Analytics.
  • To zapytanie wymaga skonfigurowania reguły alertu w celu wyzwolenia alertu, gdy istnieją wyniki (> 0 wyników) z zapytania, co oznacza, że warunek istnieje w wystąpieniu zarządzanym. Dane wyjściowe to procentowe użycie magazynu w wystąpieniu zarządzanym.

Średnie użycie procesora przekracza 95% w ciągu ostatniej godziny.

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

Uwaga / Notatka

  • Wstępne wymaganie skonfigurowania tego alertu polega na tym, że monitorowane wystąpienie zarządzane ma włączoną obsługę przesyłania strumieniowego dziennika ResourceUsageStats do obszaru roboczego usługi Log Analytics używanego przez usługę Azure SQL Analytics.
  • To zapytanie wymaga skonfigurowania reguły alertu w celu wyzwolenia alertu, gdy istnieją wyniki (> 0 wyników) z zapytania, co oznacza, że warunek istnieje w wystąpieniu zarządzanym. Wynik to średnie procentowe zużycie procesora w zdefiniowanym okresie na wystąpieniu zarządzanym.

Ceny

Chociaż usługa Azure SQL Analytics (wersja zapoznawcza) jest bezpłatna, możesz zostać obciążony opłatami za użycie telemetrii diagnostycznej powyżej bezpłatnych jednostek pozyskiwania danych przydzielonych każdego miesiąca, więcej informacji znajdziesz w Cennik usługi Log Analytics. Bezpłatne jednostki pozyskiwania danych umożliwiają bezpłatne monitorowanie kilku baz danych każdego miesiąca. Bardziej aktywne bazy danych z cięższymi obciążeniami pozyskiwają więcej danych w porównaniu z bezczynnymi bazami danych. Możesz łatwo monitorować zużycie związane z pozyskiwaniem danych w usłudze Azure SQL Analytics, wybierając Obszar roboczy OMS w menu nawigacji Azure SQL Analytics, a następnie wybierając Użycie i szacowane koszty.

Dalsze kroki