Monitorování Azure SQL Database pomocí Azure SQL Analytics (Preview)

PLATÍ PRO: Azure SQL Database, Azure SQL Managed Instance

Upozornění

Azure SQL Analytics (Preview) je integrace se službou Azure Monitor, kde mnoho řešení pro monitorování už není v aktivním vývoji. Další možnosti monitorování najdete v tématu Monitorování a ladění výkonu ve službě Azure SQL Database a Azure SQL Managed Instance.

Azure SQL Analytics (Preview) je pokročilé cloudové řešení pro monitorování výkonu všech Azure SQL databází ve velkém měřítku a napříč několika předplatnými v jednom zobrazení. Azure SQL Analytics shromažďuje a vizualizuje klíčové metriky výkonu pomocí integrovaných inteligentních funkcí pro řešení potíží s výkonem.

Pomocí těchto shromážděných metrik můžete vytvořit vlastní pravidla monitorování a výstrahy. Azure SQL Analytics pomáhá identifikovat problémy v každé vrstvě zásobníku aplikací. Azure SQL Analytics používá Azure Diagnostics metriky spolu se zobrazeními Služby Azure Monitor k prezentaci dat o všech databázích Azure SQL v jednom pracovním prostoru služby Log Analytics. Azure Monitor pomáhá shromažďovat, korelovat a vizualizovat strukturovaná a nestrukturovaná data.

Připojené zdroje

Azure SQL Analytics je výhradně cloudové řešení pro monitorování, které podporuje streamování diagnostických telemetrických dat pro všechny databáze Azure SQL. Vzhledem k tomu, že Azure SQL Analytics nepoužívá agenty pro připojení ke službě Azure Monitor, nepodporuje monitorování SQL Server hostovaných místně ani na virtuálních počítačích.

Připojený zdroj Podporováno Description
Nastavení diagnostiky Ano Metriky a data protokolů Azure odesílají do protokolů Azure Monitoru přímo Azure.
Účet úložiště Azure No Azure Monitor nečte data z účtu úložiště.
Agenti systému Windows No Azure SQL Analytics nepoužívají přímé agenty Windows.
Agenti systému Linux No Azure SQL Analytics nepoužívají přímé linuxové agenty.
Skupina pro správu nástroje System Center Operations Manager No Azure SQL Analytics nepoužívá přímé připojení z agenta Operations Manageru ke službě Azure Monitor.

Možnosti Azure SQL Analytics

Následující tabulka popisuje podporované možnosti pro dvě verze řídicího panelu Azure SQL Analytics, jednu pro Azure SQL Database a druhou pro Azure SQL Managed Instance databáze.

Možnost Azure SQL Analytics Description podpora SQL Database Podpora SQL Managed Instance
Prostředek podle typu Perspektiva, která počítá všechny monitorované prostředky. Yes Yes
Insights Poskytuje hierarchický přechod k podrobnostem o výkonu v Intelligent Insights. Yes Yes
Chyby Poskytuje hierarchický přechod k podrobnostem o chybách SQL, ke kterým došlo v databázích. Yes Yes
Časové limity Poskytuje hierarchický přechod k podrobnostem o časových limitech SQL, ke kterým došlo v databázích. Yes No
Blokování Poskytuje hierarchický přechod k podrobnostem o blokování SQL, ke kterým došlo v databázích. Yes No
Čekání databáze Poskytuje hierarchický přechod k podrobnostem o statistikách čekání SQL na úrovni databáze. Zahrnuje souhrny celkové doby čekání a doby čekání podle typu čekání. Yes No
Doba trvání dotazu Poskytuje hierarchický přechod k podrobnostem o statistikách provádění dotazů, jako je doba trvání dotazu, využití procesoru, využití vstupně-výstupních operací dat, využití vstupně-výstupních operací protokolování. Yes Yes
Query waits (Čekání dotazu) Poskytuje hierarchický přechod k podrobnostem statistiky čekání dotazu podle kategorie čekání. Yes Yes

Konfigurace Azure SQL Analytics (Preview)

Pomocí postupu popsaného v tématu Přidání řešení Azure Monitor z galerie řešení přidejte Azure SQL Analytics (Preview) do pracovního prostoru služby Log Analytics.

Konfigurace Azure SQL Database pro streamování telemetrie diagnostiky

Jakmile ve svém pracovním prostoru vytvoříte řešení Azure SQL Analytics, musíte nakonfigurovat každý prostředek, který chcete monitorovat, aby streamovaly jeho diagnostická telemetrická data do Azure SQL Analytics. Postupujte podle podrobných pokynů na této stránce:

Výše uvedená stránka obsahuje také pokyny k povolení podpory monitorování několika předplatných Azure z jednoho pracovního prostoru Azure SQL Analytics jako jediného skleněného podokna.

Použití Azure SQL Analytics (Preview)

Na stránce Starší řešení pracovního prostoru služby Log Analytics přejděte k nasazení SQL Analytics.

Azure SQL Analytics nabízí dvě samostatná zobrazení: jedno pro monitorování SQL Database a druhé zobrazení pro monitorování SQL Managed Instance.

Zobrazení dat Azure SQL Analytics

Řídicí panel obsahuje přehled všech databází, které jsou monitorovány z různých úhlů pohledu. Aby fungovaly různé perspektivy, musíte povolit streamování správných metrik nebo protokolů prostředků SQL do pracovního prostoru služby Log Analytics.

Pokud se některé metriky nebo protokoly nestreamují do služby Azure Monitor, dlaždice ve službě Azure SQL Analytics se nenaplní informacemi o monitorování.

zobrazení SQL Database

Jakmile vyberete dlaždici Azure SQL Analytics pro databázi, zobrazí se řídicí panel monitorování.

Snímek obrazovky s řídicím panelem monitorování

Když vyberete některou z dlaždic, otevře se sestava přechodu k podrobnostem o konkrétní perspektivě. Jakmile vyberete perspektivu, otevře se sestava přechodu k podrobnostem.

Snímek obrazovky znázorňující sestavu přechodu k podrobnostem v konkrétní perspektivě

Každá perspektiva v tomto zobrazení poskytuje souhrny na úrovni předplatného, serveru, elastického fondu a databáze. Kromě toho každá perspektiva zobrazuje perspektivu specifickou pro sestavu na pravé straně. Výběrem předplatného, serveru, fondu nebo databáze ze seznamu budete pokračovat v přechodu k podrobnostem.

zobrazení SQL Managed Instance

Jakmile vyberete dlaždici Azure SQL Analytics pro databáze, zobrazí se řídicí panel monitorování.

Přehled Azure SQL Analytics

Když vyberete některou z dlaždic, otevře se sestava přechodu k podrobnostem o konkrétní perspektivě. Jakmile vyberete perspektivu, otevře se sestava přechodu k podrobnostem.

Výběrem zobrazení SQL Managed Instance zobrazíte podrobnosti o využití instance, databázích instancí a telemetrii dotazů prováděných v rámci spravované instance.

Vypršení časových limitů analýzy Azure SQL

Sestava Intelligent Insights

Azure SQL Database Intelligent Insights vás informuje o tom, co se děje s výkonem všech Azure SQL databází. Všechny shromážděné inteligentní přehledy je možné vizualizovat a přistupovat k němu z perspektivy Insights.

přehledy Azure SQL Analytics

Elastické fondy a sestavy databází

Elastické fondy i databáze mají své vlastní specifické sestavy, které zobrazují všechna data shromážděná pro daný prostředek v zadaném čase.

databáze Azure SQL Analytics

Azure SQL elastického fondu

Dotazování sestav

Prostřednictvím doby trvání dotazu a perspektiv čekání dotazu můžete korelovat výkon libovolného dotazu prostřednictvím sestavy dotazu. Tato sestava porovnává výkon dotazů napříč různými databázemi a usnadňuje určení databází, které správně provádějí vybraný dotaz, a databází, které jsou pomalé.

dotazy Azure SQL Analytics

Oprávnění

Pokud chtějí uživatelé používat Azure SQL Analytics (Preview), musí mít v Azure udělené minimální oprávnění role Čtenář. Tato role ale uživatelům neumožňuje zobrazit text dotazu ani provádět žádné akce automatického ladění. V Azure jsou nejpřímější role, které umožňují plně využívat Azure SQL Analytics, jako vlastník, přispěvatel, přispěvatel databáze SQL nebo přispěvatel SQL Server. Můžete také zvážit vytvoření vlastní role na portálu se specifickými oprávněními požadovanými pouze pro použití Azure SQL Analytics a bez přístupu ke správě jiných prostředků.

Vytvoření vlastní role na portálu

Poznámka

Při práci s Azure doporučujeme používat modul Azure Az PowerShellu. Začněte tím, že si projdete téma Instalace Azure PowerShellu. Informace o tom, jak migrovat na modul Az PowerShell, najdete v tématu Migrace Azure PowerShellu z AzureRM na Az.

S vědomím, že některé organizace vynucují přísné kontroly oprávnění v Azure, najdete následující skript PowerShellu, který umožňuje vytvořit vlastní roli Operátor monitorování ANALÝZY SQL v Azure Portal s minimálními oprávněními ke čtení a zápisu požadovaným pro maximální využití služby Azure SQL Analytics.

Nahraďte {SubscriptionId} v následujícím skriptu ID vašeho předplatného Azure a spusťte skript přihlášený jako role vlastníka nebo přispěvatele v 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 vytvoření nové role přiřaďte tuto roli každému uživateli, kterému potřebujete udělit vlastní oprávnění k používání Azure SQL Analytics.

Analýza dat a vytváření upozornění

Analýza dat ve službě Azure SQL Analytics je založená na jazyce Log Analytics pro vlastní dotazování a vytváření sestav. V metrikách a protokolech najdete popis dostupných dat shromážděných z prostředků databáze pro vlastní dotazování v dostupných metrikách a protokolech.

Automatizované upozorňování ve službě Azure SQL Analytics je založené na napsání dotazu Log Analytics, který aktivuje upozornění při splnění podmínky. Níže najdete několik příkladů dotazů Log Analytics, u kterých je možné nastavit upozornění ve službě Azure SQL Analytics.

Vytvoření upozornění pro Azure SQL Database

Výstrahy můžete snadno vytvářet s daty pocházejícími z prostředků Azure SQL Database. Tady je několik užitečných dotazů na protokol, které můžete použít s upozorněním protokolu:

Vysoké využití procesoru

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

Poznámka

  • Předpokladem nastavení tohoto upozornění je, aby monitorované databáze streamovaly základní metriky do pracovního prostoru služby Log Analytics, který používá Azure SQL Analytics.
  • Nahraďte hodnotu MetricName hodnotou cpu_percent , dtu_consumption_percent abyste místo toho získali vysoké výsledky DTU.

Vysoké využití procesoru u elastických fondů

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

Poznámka

  • Předpokladem nastavení tohoto upozornění je, aby monitorované databáze streamovaly metriky Basic do pracovního prostoru služby Log Analytics, který používá Azure SQL Analytics.
  • Nahraďte hodnotu MetricName hodnotou cpu_percent , dtu_consumption_percent abyste místo toho získali vysoké výsledky DTU.

Průměrné úložiště za poslední 1 hodinu nad 95 %

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

Poznámka

  • Předpokladem nastavení tohoto upozornění je, aby monitorované databáze streamovaly základní metriky do pracovního prostoru služby Log Analytics, který používá Azure SQL Analytics.
  • Tento dotaz vyžaduje, aby bylo nastavené pravidlo upozornění, které aktivuje upozornění, když z dotazu existují výsledky (> 0 výsledků), které označuje, že podmínka existuje v některých databázích. Výstupem je seznam databázových prostředků, které jsou nad storage_threshold definovanými time_range prostředky.
  • Výstupem je seznam databázových prostředků, které jsou nad storage_threshold definovanými time_range prostředky.

Upozornění na Intelligent Insights

Důležité

V případě, že databáze funguje dobře a nebyly vygenerovány žádné inteligentní přehledy, tento dotaz selže s chybovou zprávou: Nepodařilo se vyřešit skalární výraz s názvem rootCauseAnalysis_s. Toto chování se očekává ve všech případech, kdy pro databázi neexistují žádné inteligentní přehledy.

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

Poznámka

  • Předpokladem nastavení této výstrahy je, aby monitorované databáze streamovaly diagnostický protokol SQLInsights do pracovního prostoru služby Log Analytics, který používá Azure SQL Analytics.
  • Tento dotaz vyžaduje, aby pravidlo upozornění bylo nastaveno tak, aby se spouštěla se stejnou frekvencí jako alert_run_interval , aby se zabránilo duplicitním výsledkům. Pravidlo by mělo být nastavené tak, aby se upozornění aktivovalo, když z dotazu existují výsledky (> 0 výsledků).
  • Přizpůsobením alert_run_interval zadejte časový rozsah a zkontrolujte, jestli došlo k podmínce u databází nakonfigurovaných pro streamování protokolu SQLInsights do Azure SQL Analytics.
  • Přizpůsobte si insights_string tak, aby se zachytil výstup textu analýzy původní příčiny Insights. Jedná se o stejný text zobrazený v uživatelském rozhraní služby Azure SQL Analytics, který můžete použít z existujících přehledů. Případně můžete pomocí následujícího dotazu zobrazit text všech přehledů vygenerovaných ve vašem předplatném. Výstup dotazu použijte k získání jedinečných řetězců pro nastavení upozornění na přehledy.
AzureDiagnostics
| where Category == "SQLInsights" and status_s == "Active"
| distinct rootCauseAnalysis_s

Vytváření upozornění pro SQL Managed Instance

Úložiště je vyšší než 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

Poznámka

  • Předpokladem nastavení tohoto upozornění je, že monitorovaná spravovaná instance má povolené streamování protokolu ResourceUsageStats do pracovního prostoru služby Log Analytics používaného službou Azure SQL Analytics.
  • Tento dotaz vyžaduje, aby bylo nastavené pravidlo upozornění, které aktivuje upozornění, když z dotazu existují výsledky (> 0 výsledků), které označuje, že ve spravované instanci existuje podmínka. Výstupem je procento využití úložiště ve spravované instanci.

Průměrná spotřeba procesoru za poslední 1 hodinu překročila 95 %

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

Poznámka

  • Předpokladem nastavení tohoto upozornění je, že monitorovaná spravovaná instance má povolené streamování protokolu ResourceUsageStats do pracovního prostoru služby Log Analytics používaného službou Azure SQL Analytics.
  • Tento dotaz vyžaduje, aby bylo nastavené pravidlo upozornění, které aktivuje upozornění, když z dotazu existují výsledky (> 0 výsledků), které označuje, že ve spravované instanci existuje podmínka. Výstupem je průměrné procento využití procesoru ve spravované instanci ve definovaném období.

Ceny

I když je použití služby Azure SQL Analytics (Preview) bezplatné, platí spotřeba diagnostické telemetrie nad bezplatnými jednotkami příjmu dat přidělenou každý měsíc. Viz Ceny Log Analytics. Poskytnuté bezplatné jednotky příjmu dat umožňují každý měsíc bezplatné monitorování několika databází. Aktivnější databáze s těžšími úlohami ingestují více dat v porovnání s nečinnými databázemi. Spotřebu dat ve službě Azure SQL Analytics můžete snadno monitorovat tak, že v navigační nabídce Azure SQL Analytics vyberete Pracovní prostor OMS a pak vyberete Využití a odhadované náklady.

Další kroky