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:
- Włącz Diagnostyka Azure dla bazy danych, aby przesyłać strumieniowo dane telemetryczne diagnostyczne do usługi Azure SQL Analytics.
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.
Wybranie dowolnego kafelka powoduje otwarcie raportu przechodzenia do szczegółów w określonej perspektywie. Po wybraniu perspektywy zostanie otwarty raport przechodzenia do szczegółów.
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.
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.
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.
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.
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.
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_percent
dtu_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_percent
dtu_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
zdefiniowanejtime_range
wartości. - Dane wyjściowe to lista zasobów bazy danych, które znajdują się powyżej
storage_threshold
zdefiniowanejtime_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
- Użyj zapytań dzienników w usłudze Azure Monitor, aby wyświetlić szczegółowe dane Azure SQL.
- Utwórz własne pulpity nawigacyjne z danymi Azure SQL.
- Utwórz alerty, gdy wystąpią określone zdarzenia Azure SQL.
- Monitorowanie usługi Azure SQL Database za pomocą usługi Azure Monitor
- Monitorowanie Azure SQL Managed Instance za pomocą usługi Azure Monitor