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:
- Povolte Azure Diagnostics pro vaši databázi, která streamuje diagnostická telemetrická data do Azure SQL Analytics.
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í.
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.
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í.
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.
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.
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.
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é.
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ýmitime_range
prostředky. - Výstupem je seznam databázových prostředků, které jsou nad
storage_threshold
definovanýmitime_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
- K zobrazení podrobných Azure SQL dat použijte dotazy na protokoly ve službě Azure Monitor.
- Vytvořte si vlastní řídicí panely zobrazující Azure SQL data.
- Vytvořte upozornění, když dojde ke konkrétním událostem Azure SQL.
- Monitorování služby Azure SQL Database s využitím služby Azure Monitor
- Monitorování Azure SQL Managed Instance s využitím Azure Monitoru