Sdílet prostřednictvím


Monitorování služby 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í monitorování už není aktivní ve 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 databází Azure SQL ve velkém měřítku a napříč několika předplatnými v jediném 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 upozornění. Azure SQL Analytics pomáhá identifikovat problémy v každé vrstvě zásobníku aplikací. Azure SQL Analytics používá metriky Azure Diagnostics 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 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 Serveru hostovaného místně ani na virtuálních počítačích.

Připojený zdroj Podporováno Popis
Nastavení diagnostiky Ano Metriky Azure a data protokolů se odesílají přímo do Azure Monitoru.
Účet služby Azure Storage Ne Azure Monitor nečte data z účtu úložiště.
Agenti Windows Ne Azure SQL Analytics nepoužívá přímé agenty Windows.
Agenti Linuxu Ne Azure SQL Analytics nepoužívá přímé linuxové agenty.
Skupina pro správu nástroje System Center Operations Manager Ne 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 databáze Azure SQL Managed Instance.

Možnost Azure SQL Analytics Popis Podpora služby SQL Database Podpora SQL Managed Instance
Prostředek podle typu Perspektiva, která počítá všechny monitorované prostředky. Ano Ano
Vhledy Poskytuje hierarchický průzkum inteligentních analýz výkonu. Ano Ano
Chyby Poskytuje hierarchický přechod k podrobnostem o chybách SQL, ke kterým došlo v databázích. Ano Ano
Časové limity Poskytuje hierarchický přechod k podrobnostem o časových limitech SQL, ke kterým došlo v databázích. Ano Ne
Blokování Poskytuje hierarchický přechod k podrobnostem o blokování SQL, ke kterým došlo v databázích. Ano Ne
Čekání databáze Poskytuje hierarchický přechod k podrobnostem o statistikách čekání SQL na úrovni databáze. Obsahuje souhrny celkové doby čekání a doby čekání na typ čekání. Ano Ne
Doba trvání dotazu Poskytuje hierarchický přechod k podrobnostem statistik 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í protokolu. Ano Ano
Čekání dotazů Umožňuje hierarchický přístup k podrobnostem statistik čekání dotazu v jednotlivých kategoriích čekání. Ano Ano

Konfigurace Azure SQL Analytics (náhled)

Pomocí procesu 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

Po vytvoření řešení Azure SQL Analytics ve vašem pracovním prostoru je potřeba nakonfigurovat každý prostředek, který chcete monitorovat, aby streamovala telemetrická data diagnostiky do Azure SQL Analytics. Postupujte podle podrobných pokynů na této stránce:

Na výše uvedené stránce najdete také pokyny k povolení podpory monitorování více předplatných Azure z jednoho pracovního prostoru Azure SQL Analytics jako jediného podokna skla.

Použití Azure SQL Analytics (předběžná verze)

Přejděte na nasazení SQL Analytics ze stránky Legacy solutions prostoru Log Analytics.

Azure SQL Analytics poskytuje dvě samostatná zobrazení: jedno pro monitorování služby SQL Database a druhé zobrazení pro monitorování služby SQL Managed Instance.

Zobrazení dat Azure SQL Analytics

Řídicí panel obsahuje přehled všech databází, které jsou monitorovány prostřednictvím různých perspektiv. Aby fungovaly různé perspektivy, musíte povolit správné metriky nebo protokoly vašich prostředků SQL, aby se streamovaly do pracovního prostoru služby Log Analytics.

Pokud některé metriky nebo protokoly nejsou streamovány do služby Azure Monitor, dlaždice v Azure SQL Analytics se nenaplní informacemi o monitorování.

Zobrazení SQL databáze

Po výběru dlaždice Azure SQL Analytics pro databázi se zobrazí řídicí panel monitorování.

Snímek obrazovky znázorňující řídicí panel monitorování

Když vyberete některou z dlaždic, otevře se podrobný report do určité perspektivy. Po zvolení perspektivy se otevře detailní sestava.

Snímek obrazovky znázorňující podrobnou sestavu z konkrétního pohledu.

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 specifickou perspektivu zprávy, která se nachází vpravo. Výběrem předplatného, serveru, fondu nebo databáze v seznamu přejdete k podrobnostem.

Přehled spravované instance SQL

Po výběru dlaždice Azure SQL Analytics pro databáze se zobrazí řídicí panel monitorování.

Přehled Azure SQL Analytics

Když vyberete některou z dlaždic, otevře se podrobný report do určité perspektivy. Po zvolení perspektivy se otevře detailní sestava.

Výběrem zobrazení sql Managed Instance se zobrazí podrobnosti o využití instance, databázích instancí a telemetrii dotazů spuštěných napříč spravovanou instancí.

Časové limity Azure SQL Analytics

Zpráva Inteligentní Postřehy

Azure SQL Database Intelligent Insights vám umožní zjistit, co se děje s výkonem všech databází Azure SQL. Všechny shromážděné inteligentní přehledy lze vizualizovat a přistupovat k nim v rámci Perspektivy Přehledy.

Přehledy Azure SQL Analytics

Elastické fondy a databázové reporty

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

Azure SQL Analytics Database

Elastický fond Azure SQL

Zprávy z dotazů

Z pohledu trvání a čekání na dotazy můžete ve zprávě o dotazu analyzovat výkon jakéhokoli dotazu. Tato sestava porovnává výkon dotazů v různých databázích a usnadňuje určení databází, které provádějí vybraný dotaz dobře a které jsou pomalé.

Dotazy Azure SQL Analytics

Dovolení

Pokud chcete používat Azure SQL Analytics (Preview), musí mít uživatelé v Azure udělená minimální oprávnění role Čtenář. Tato role ale neumožňuje uživatelům zobrazit text dotazu ani provádět žádné akce automatického ladění. Další permisivní role v Azure, které umožňují používat Azure SQL Analytics v plném rozsahu, jsou Vlastník, Přispěvatel, Přispěvatel DATABÁZE SQL nebo Přispěvatel SQL Serveru. Můžete také zvážit vytvoření vlastní role na portálu s konkrétními oprávněními potřebnými jenom pro použití Azure SQL Analytics a bez přístupu ke správě dalších prostředků.

Vytvoření vlastní role na portálu

Poznámka:

K interakci s Azure doporučujeme použít modul Azure Az PowerShell. Viz Instalace Azure PowerShell, abyste mohli začít. Informace o tom, jak migrovat na modul Az PowerShell, najdete v tématu Migrace Azure PowerShellu z AzureRM na Az.

Když zjistíte, že některé organizace v Azure vynucují přísné řízení oprávnění, najděte následující skript PowerShellu, který umožňuje vytvoření vlastní role Operátor monitorování SQL Analytics na webu Azure Portal s minimálními oprávněními ke čtení a zápisu vyžadovaným k použití Azure SQL Analytics v plném rozsahu.

Položku {SubscriptionId} v následujícím skriptu nahraďte ID 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 v Azure SQL Analytics je založená na jazyce Log Analytics pro vlastní dotazování a vytváření sestav. Vyhledejte popis dostupných dat shromážděných z databázového prostředku pro vlastní dotazování v metrikách a dostupných protokolech.

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

Vytváření upozornění pro Azure SQL Database

S daty přicházejícími z prostředků Azure SQL Database můžete snadno vytvářet upozornění . Tady je několik užitečných dotazů protokolu , 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 to, že monitorované databáze streamují základní metriky do pracovního prostoru služby Log Analytics, který používá Azure SQL Analytics.
  • Nahraďte hodnotu MetricName cpu_percent hodnotou dtu_consumption_percent pro dosažení vysokých výsledků DTU.

Vysoké využití CPU v elastických fondech

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ředběžný požadavek na nastavení této výstrahy spočívá v tom, že monitorované databáze streamují základní metriky do pracovního prostoru služby Log Analytics, který používá Azure SQL Analytics.
  • Nahraďte hodnotu MetricName cpu_percent hodnotou dtu_consumption_percent pro dosažení vysokých výsledků DTU.

Úložiště v průměru nad 95% za poslední 1 hodinu

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 to, že monitorované databáze streamují základní metriky 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 aktivovalo upozornění, pokud z dotazu existují výsledky (> 0 výsledků), což označuje, že podmínka existuje v některých databázích. Výstup je seznam databázových prostředků, které jsou nad storage_threshold v rámci definovaného time_range.
  • Výstup je seznam databázových prostředků, které jsou nad storage_threshold v rámci definovaného time_range.

Upozornění na Inteligentní přehledy

Důležité

V případě, že databáze funguje dobře a že se negenerovaly žá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í tohoto upozornění je to, že monitorované databáze streamují protokol diagnostiky 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ěly se stejnou frekvencí jako alert_run_interval v zájmu zabránění duplicitním výsledkům. Pravidlo by mělo být nastavené tak, aby se upozornění aktivovalo, když v dotazu existují výsledky (> 0 výsledků).
  • Přizpůsobte si alert_run_interval tak, abyste určili časový rozsah a ověřili, zda se podmínka vyskytla u databází nakonfigurovaných pro streamování protokolů SQLInsights do Azure SQL Analytics.
  • Upravte insights_string pro zachycení výstupu textu analýzy původní příčiny v rámci Insights. Jedná se o stejný text zobrazený v uživatelském rozhraní 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. Pomocí výstupu dotazu získejte jedinečné řetězce pro nastavení upozornění ve službě Insights.
AzureDiagnostics
| where Category == "SQLInsights" and status_s == "Active"
| distinct rootCauseAnalysis_s

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

Úložiště má teplotu přes 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, který používá Azure SQL Analytics.
  • Tento dotaz vyžaduje, aby pravidlo upozornění bylo nastaveno tak, aby aktivovalo výstrahu, pokud v dotazu existují výsledky (> 0 výsledků), což označuje, že podmínka existuje ve spravované instanci. Výstupem je procento spotřeby úložiště ve spravované instanci.

Průměrná spotřeba procesoru překračuje 95% za posledních 1 hodin

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, který používá Azure SQL Analytics.
  • Tento dotaz vyžaduje, aby pravidlo upozornění bylo nastaveno tak, aby aktivovalo výstrahu, pokud v dotazu existují výsledky (> 0 výsledků), což označuje, že podmínka existuje ve spravované instanci. Výstupem je průměrná procentuální spotřeba využití procesoru v definovaném období ve spravované instanci.

Stanovení cen

I když je Azure SQL Analytics (Preview) bezplatná, na využití telemetrie diagnostiky nad bezplatnými jednotkami příjmu dat přidělenými každý měsíc se uplatňují ceny Log Analytics. Bezplatné jednotky příjmu dat poskytují bezplatné monitorování několika databází každý měsíc. Aktivnější databáze s těžšími úlohami ingestují více dat než nečinné databáze. Spotřebu dat ve službě Azure SQL Analytics můžete snadno monitorovat výběrem pracovního prostoru OMS v navigační nabídce Azure SQL Analytics a následným výběrem možnosti Využití a Odhadované náklady.

Další kroky