Udostępnij za pośrednictwem


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

DOTYCZY: Azure SQL Database, Azure SQL Managed Instance

Przestroga

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łudze Azure SQL Database i Azure SQL Managed Instance.

Azure SQL Analytics (wersja zapoznawcza) to zaawansowane rozwiązanie do monitorowania wydajności wszystkich baz danych Azure SQL na dużą skalę i w wielu subskrypcjach w jednym widoku. 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. Azure SQL Analytics ułatwia identyfikowanie problemów w każdej warstwie stosu aplikacji. Azure SQL Analytics używa metryk Diagnostyka Azure 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. Ponieważ Azure SQL Analytics nie używa agentów do nawiązywania połączenia z usługą Azure Monitor, nie obsługuje monitorowania SQL Server hostowanych lokalnie ani na maszynach wirtualnych.

Połączone źródło Obsługiwane 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 danych z konta magazynu.
Agenci dla systemu Windows Nie Bezpośredni agenci systemu Windows nie są używani przez Azure SQL Analytics.
Agenci dla systemu Linux Nie Bezpośredni agenci systemu Linux nie są używani przez usługę Azure SQL Analytics.
Grupa zarządzania programu System Center Operations Manager 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, jedną dla usługi Azure SQL Database, a drugą dla Azure SQL Managed Instance baz danych.

opcja Azure SQL Analytics Opis obsługa SQL Database Obsługa usługi SQL Managed Instance
Zasób według typu Perspektywa, która zlicza wszystkie monitorowane zasoby. Tak Tak
Insights Zapewnia hierarchiczne przechodzenie do szczegółów w funkcji Intelligent Insights w celu uzyskania 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
Limity czasu Zapewnia hierarchiczne przechodzenie do szczegółów limitu czasu SQL, które wystąpiły w bazach danych. Tak Nie
Blokady Zapewnia hierarchiczne przechodzenie do szczegółów w blokach SQL, które wystąpiły w bazach danych. Tak Nie
Oczekiwania bazy danych Zapewnia hierarchiczne przechodzenie do szczegółów statystyk oczekiwania SQL na poziomie bazy danych. Obejmuje podsumowania łącznego czasu oczekiwania i czasu oczekiwania na typ oczekiwania. Tak Nie
Czas trwania zapytania Zapewnia hierarchiczne przechodzenie do szczegółów statystyk wykonywania zapytań, takich jak czas trwania zapytania, użycie procesora CPU, użycie operacji we/wy danych, użycie operacji we/wy dziennika. Tak Tak
Query waits (Czas oczekiwania na zapytania) Udostępnia hierarchiczne przechodzenie do szczegółów statystyk oczekiwania zapytań 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 w celu strumieniowego przesyłania danych telemetrycznych diagnostycznych

Po utworzeniu rozwiązania 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:

Powyższa strona zawiera 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 SQL Database, a drugi widok monitorowania SQL Managed Instance.

Wyświetlanie danych usługi Azure SQL Analytics

Pulpit nawigacyjny zawiera omówienie wszystkich baz danych, które są monitorowane z różnych perspektyw. Aby różne perspektywy działały, należy włączyć odpowiednie metryki lub dzienniki w zasobach 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 SQL Database

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

Zrzut ekranu przedstawiający pulpit nawigacyjny monitorowania.

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

Zrzut ekranu przedstawiający raport przechodzenia do szczegółów w określonej perspektywie.

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

widok SQL Managed Instance

Po wybraniu kafelka 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 przechodzenia do szczegółów w określonej perspektywie. Po wybraniu perspektywy zostanie otwarty raport przechodzenia do szczegółów.

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

limity czasu analizy Azure SQL

Raport inteligentnej analizy

Azure SQL Database Intelligent Insights informuje o tym, co dzieje się z wydajnością wszystkich Azure SQL baz danych. Wszystkie zebrane inteligentne szczegółowe informacje można wizualizować i uzyskiwać do ich dostępu za pośrednictwem perspektywy szczegółowych informacji.

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 zbierane dla zasobu w określonym czasie.

baza danych usługi Azure SQL Analytics

Azure SQL elastyczną pulę

Wykonywanie zapytań dotyczących raportów

Dzięki perspektywom czasu trwania zapytania i oczekiwania zapytań można skorelować wydajność dowolnego zapytania za pośrednictwem raportu zapytania. Ten raport porównuje wydajność zapytań w różnych bazach danych i ułatwia wskazanie baz danych, które dobrze wykonują wybrane zapytanie w porównaniu z tymi, które są powolne.

zapytania analizy Azure SQL

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 SQL Server. Możesz 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

Do interakcji z platformą Azure zalecamy używanie modułu Azure Az w programie PowerShell. Zobacz Instalowanie programu Azure PowerShell, aby rozpocząć. Aby dowiedzieć się, jak przeprowadzić migrację do modułu Az PowerShell, zobacz Migracja programu Azure PowerShell z modułu AzureRM do modułu Az.

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

Zastąp ciąg "{SubscriptionId}" w poniższym skrypcie identyfikatorem subskrypcji platformy Azure i wykonaj skrypt zalogowany jako rola właściciel lub współautor na 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óry musisz przyznać uprawnienia niestandardowe 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 opierają się 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 bazy danych Azure SQL

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

Wysokie wykorzystanie procesora CPU

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

Uwaga

  • 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.
  • Zastąp wartość MetricName wartością cpu_percentdtu_consumption_percent , aby uzyskać wyniki o wysokiej jednostki DTU.

Wysokie użycie procesora CPU 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

  • 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ść MetricName wartością cpu_percentdtu_consumption_percent , aby uzyskać wyniki o wysokiej jednostki DTU.

Przechowywanie średnio powyżej 95% w ciągu ostatnich 1 godz.

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

  • 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, oznaczając, że warunek istnieje w niektórych bazach danych. Dane wyjściowe to lista zasobów bazy danych, które znajdują się powyżej storage_threshold zdefiniowanej time_range wartości.
  • Dane wyjściowe to lista zasobów bazy danych, które znajdują się powyżej storage_threshold zdefiniowanej time_range wartości.

Alert dotyczący inteligentnych szczegółowych informacji

Ważne

Jeśli baza danych działa dobrze i że nie wygenerowano żadnej analizy inteligentnej, 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 dla wszystkich przypadków, 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

  • Wstępne wymaganie skonfigurowania 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 w celu wyzwolenia alertu, gdy istnieją wyniki (> 0 wyników) z zapytania.
  • Dostosuj parametr , alert_run_interval aby określić zakres czasu, aby sprawdzić, czy warunek wystąpił w bazach danych skonfigurowanych do przesyłania strumieniowego dziennika usługi SQLInsights do usługi Azure SQL Analytics.
  • Dostosuj insights_string, aby przechwycić dane wyjściowe tekstu analizy głównej przyczyny szczegółowych informacji. 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 szczegółowych informacji. Alternatywnie możesz użyć poniższego zapytania, aby wyświetlić tekst wszystkich szczegółowych informacji wygenerowanych w ramach subskrypcji. Użyj danych wyjściowych zapytania, aby zebrać różne ciągi służące do konfigurowania alertów w usłudze Insights.
AzureDiagnostics
| where Category == "SQLInsights" and status_s == "Active"
| distinct rootCauseAnalysis_s

Tworzenie alertów dla SQL Managed Instance

Magazyn przekracza 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

  • Wstępne wymaganie skonfigurowania tego alertu polega na tym, że monitorowane wystąpienie zarządzane ma włączoną funkcję 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, oznaczając, że warunek istnieje w wystąpieniu zarządzanym. Dane wyjściowe to użycie procentowego użycia magazynu w wystąpieniu zarządzanym.

Średnie użycie procesora CPU przekracza 95% w ciągu ostatnich 1 godz.

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

  • Wstępne wymaganie skonfigurowania tego alertu polega na tym, że monitorowane wystąpienie zarządzane ma włączoną funkcję 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, oznaczając, że warunek istnieje w wystąpieniu zarządzanym. Dane wyjściowe to średnie użycie procentowego użycia procesora CPU w zdefiniowanym okresie w wystąpieniu zarządzanym.

Cennik

Chociaż usługa Azure SQL Analytics (wersja zapoznawcza) jest bezpłatna, użycie danych telemetrycznych diagnostycznych powyżej bezpłatnych jednostek pozyskiwania danych przydzielonych każdego miesiąca ma zastosowanie, zobacz 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 większymi obciążeniami pozyskiwania większej ilości danych w porównaniu z bezczynnymi bazami danych. Możesz łatwo monitorować użycie pozyskiwania danych w usłudze Azure SQL Analytics, wybierając pozycję Obszar roboczy pakietu OMS w menu nawigacji Azure SQL Analytics, a następnie wybierając pozycję Użycie i Szacowane koszty.

Następne kroki