Azure SQL Database monitorozása a Azure SQL Analytics (előzetes verzió) használatával
Figyelemfelhívás
Azure SQL Analytics (előzetes verzió) egy integráció az Azure Monitorral, ahol számos monitorozási megoldás már nem aktív fejlesztés alatt áll. További figyelési lehetőségekért lásd: Monitorozás és teljesítményhangolás Azure SQL Database és Azure SQL Managed Instance.
A Azure SQL Analytics (előzetes verzió) egy fejlett felhőmonitorozási megoldás, a Azure SQL-adatbázisok teljesítményének nagy léptékű és több előfizetésre kiterjedő monitorozására egyetlen nézetben. Azure SQL Analytics beépített intelligenciával gyűjti és vizualizálja a fő teljesítménymetrikákat a teljesítménnyel kapcsolatos hibaelhárításhoz.
Az összegyűjtött metrikák használatával egyéni figyelési szabályokat és riasztásokat hozhat létre. Azure SQL Analytics segít azonosítani a problémákat az alkalmazásverem minden rétegében. Azure SQL Analytics Azure Diagnostics metrikákat és Azure Monitor-nézeteket használ az összes Azure SQL-adatbázis adatainak egyetlen Log Analytics-munkaterületen való bemutatásához. Az Azure Monitor segítségével strukturált és strukturálatlan adatokat gyűjthet, korrelálhat és jeleníthet meg.
Összekapcsolt források
Azure SQL Analytics egy kizárólag felhőalapú monitorozási megoldás, amely támogatja a diagnosztikai telemetriai adatok streamelését az összes Azure SQL-adatbázishoz. Mivel a Azure SQL Analytics nem használ ügynököket az Azure Monitorhoz való csatlakozáshoz, nem támogatja a helyszínen vagy virtuális gépeken üzemeltetett SQL Server monitorozását.
Összekapcsolt forrás | Támogatott | Description |
---|---|---|
Diagnosztikai beállítások | Igen | Az Azure metrika- és naplóadatait közvetlenül az Azure küldi el az Azure Monitor-naplókba. |
Azure Storage-fiók | No | Az Azure Monitor nem olvassa be az adatokat egy tárfiókból. |
Windows-ügynökök | No | A közvetlen Windows-ügynököket az Azure SQL Analytics nem használja. |
Linux-ügynökök | No | A közvetlen Linux-ügynököket az Azure SQL Analytics nem használja. |
System Center Operations Manage felügyeleti csoport | No | Az Operations Manager-ügynök és az Azure Monitor közötti közvetlen kapcsolatot az Azure SQL Analytics nem használja. |
Azure SQL Analytics beállításai
Az alábbi táblázat a Azure SQL Analytics-irányítópult két verziójának támogatott lehetőségeit ismerteti, egyet a Azure SQL Database, a másikat pedig az Azure SQL Managed Instance-adatbázisokhoz.
Azure SQL Analytics lehetőség | Description | SQL Database támogatás | Az SQL Managed Instance támogatása |
---|---|---|---|
Erőforrás típus szerint | A figyelt erőforrásokat számláló perspektíva. | Igen | Yes |
Insights | Hierarchikus lehatolást biztosít az Intelligens Elemzések a teljesítményre. | Igen | Yes |
Hibák | Hierarchikus részletezés az adatbázisokban SQL hibákról. | Igen | Yes |
Időtúllépések | Hierarchikus lehatolást biztosít SQL adatbázisokon történt időtúllépésekre. | Igen | Nem |
Blokkolások | Hierarchikus lehatolást biztosít az adatbázisokon történt SQL blokkolásokra. | Igen | Nem |
Adatbázis-várakozások | Hierarchikus lehatolást biztosít SQL várakozási statisztikákra az adatbázis szintjén. A teljes várakozási idő és a várakozási típusonkénti várakozási idő összegzését tartalmazza. | Igen | Nem |
Lekérdezés időtartama | Hierarchikus részletes elemzést biztosít a lekérdezés-végrehajtási statisztikákról, például a lekérdezések időtartamáról, a CPU-használatról, az adat-I/O-használatról és a napló I/O-használatáról. | Igen | Yes |
Lekérdezési várakozások | Hierarchikus részletezés a lekérdezés várakozási statisztikáiba várakozási kategória szerint. | Igen | Yes |
A Azure SQL Analytics konfigurálása (előzetes verzió)
A Megoldástár Azure Monitor-megoldások hozzáadása című témakörében leírt eljárással adja hozzá Azure SQL Analyticset (előzetes verzió) a Log Analytics-munkaterülethez.
Azure SQL Database konfigurálása diagnosztikai telemetria streameléséhez
Miután létrehozta Azure SQL Analytics-megoldást a munkaterületen, konfigurálnia kell minden figyelni kívánt erőforrást, hogy a diagnosztikai telemetriát streamelje Azure SQL Analyticsbe. Kövesse az oldalon található részletes utasításokat:
- Engedélyezze Azure Diagnostics, hogy az adatbázis diagnosztikai telemetriai adatokat streameljen Azure SQL Analyticsbe.
A fenti oldal útmutatást nyújt több Azure-előfizetés egyetlen Azure SQL Analytics-munkaterületről történő monitorozásának engedélyezéséhez egyetlen ablaktáblaként.
A Azure SQL Analytics használata (előzetes verzió)
Lépjen a SQL Analytics üzemelő példányára a Log Analytics-munkaterület Megoldások lapján.
Azure SQL Analytics két külön nézetet biztosít: az egyiket a figyelési SQL Database, a másikat pedig a figyelési SQL Managed Instance.
Azure SQL Analytics-adatok megtekintése
Az irányítópult a különböző szempontok szerint figyelt összes adatbázis áttekintését tartalmazza. A különböző perspektívák működéséhez engedélyeznie kell a megfelelő metrikákat vagy naplókat a SQL-erőforrásokon a Log Analytics-munkaterületre való streameléshez.
Ha egyes metrikákat vagy naplókat nem streamel az Azure Monitorba, a Azure SQL Analytics csempéi nem jelennek meg monitorozási információkkal.
SQL Database nézet
Az adatbázishoz tartozó Azure SQL Analytics csempe kiválasztása után megjelenik a figyelési irányítópult.
Bármelyik csempét kiválasztva megnyílik egy részletes jelentés az adott perspektívára vonatkozóan. A perspektíva kiválasztása után megnyílik a részletezési jelentés.
A nézet minden perspektívája összegzéseket tartalmaz az előfizetés, a kiszolgáló, a rugalmas készlet és az adatbázis szintjén. Emellett minden perspektíva a jelentésre jellemző perspektívát jelenít meg a jobb oldalon. Az előfizetés, a kiszolgáló, a készlet vagy az adatbázis listából való kiválasztása folytatja a részletezést.
SQL Managed Instance nézet
Miután kiválasztotta az adatbázisokhoz tartozó Azure SQL Analytics csempét, megjelenik a figyelési irányítópult.
Bármelyik csempét kiválasztva megnyílik egy részletes jelentés az adott perspektívára vonatkozóan. A perspektíva kiválasztása után megnyílik a részletezési jelentés.
A SQL Managed Instance nézet kiválasztásával részletes információkat jelenít meg a példányok kihasználtságáról, a példány-adatbázisokról és a felügyelt példányon végrehajtott lekérdezések telemetriáiról.
Intelligens Elemzések jelentés
Azure SQL Database Intelligent Elemzések tudatja Önnel, hogy mi történik az összes Azure SQL adatbázis teljesítményével. Az összegyűjtött intelligens Elemzések a Elemzések szemszögéből jeleníthetők meg és érhetők el.
Rugalmas készletek és adatbázis-jelentések
Mind a rugalmas készletek, mind az adatbázisok saját jelentésekkel rendelkeznek, amelyek az erőforráshoz a megadott időpontban összegyűjtött összes adatot megjelenítik.
Jelentések lekérdezése
A lekérdezés időtartamán és a lekérdezés várakozási perspektíváin keresztül bármely lekérdezés teljesítményét korrelálhatja a lekérdezési jelentésen keresztül. Ez a jelentés összehasonlítja a különböző adatbázisok lekérdezési teljesítményét, és megkönnyíti a kiválasztott lekérdezést jól teljesítő adatbázisok és a lassúak rögzítését.
Engedélyek
A Azure SQL Analytics (előzetes verzió) használatához a felhasználóknak meg kell adni az Olvasó szerepkör minimális engedélyét az Azure-ban. Ez a szerepkör azonban nem teszi lehetővé, hogy a felhasználók lássák a lekérdezés szövegét, és ne hajtsanak végre automatikus hangolási műveleteket. Az Azure-ban a Azure SQL Analytics teljes körű használatát lehetővé tevő megengedő szerepkörök a következők: Tulajdonos, Közreműködő, SQL ADATBÁZIS-közreműködő vagy SQL Server Közreműködő. Érdemes lehet olyan egyéni szerepkört létrehozni a portálon, amely csak a Azure SQL Analytics használatához szükséges engedélyekkel rendelkezik, és nincs hozzáférése más erőforrások kezeléséhez.
Egyéni szerepkör létrehozása a portálon
Megjegyzés
Ez a cikk az Azure Az PowerShell-modult használja, amely az Azure-ral való interakcióhoz ajánlott PowerShell-modul. Az Az PowerShell-modul használatának megkezdéséhez lásd az Azure PowerShell telepítését ismertető szakaszt. Az Az PowerShell-modulra történő migrálás részleteiről lásd: Az Azure PowerShell migrálása az AzureRM modulból az Az modulba.
Felismerve, hogy egyes szervezetek szigorú engedélyvezérlőket kényszerítenek ki az Azure-ban, keresse meg a következő PowerShell-szkriptet, amely lehetővé teszi egy egyéni "SQL Analytics Monitoring Operator" szerepkör létrehozását Azure Portal a Azure SQL Analytics teljes körű használatához szükséges minimális olvasási és írási engedélyekkel.
Cserélje le az alábbi szkript "{SubscriptionId}" elemét az Azure-előfizetés-azonosítóra, és hajtsa végre a tulajdonosi vagy közreműködői szerepkörként bejelentkezett szkriptet az Azure-ban.
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
Az új szerepkör létrehozása után rendelje hozzá ezt a szerepkört minden felhasználóhoz, aki egyéni engedélyeket kell adnia az Azure SQL Analytics használatához.
Adatok elemzése és riasztások létrehozása
A Azure SQL Analytics adatelemzése az egyéni lekérdezések és jelentések Log Analytics-nyelvén alapul. Az adatbázis-erőforrásból az elérhető metrikákban és naplókban történő egyéni lekérdezéshez gyűjtött rendelkezésre álló adatok leírását találja.
Az automatikus riasztások Azure SQL Analyticsben egy Log Analytics-lekérdezés írásán alapulnak, amely riasztást aktivál egy feltétel teljesülése esetén. Az alábbiakban néhány példát talál a Log Analytics-lekérdezésekre, amelyeken riasztások állíthatók be Azure SQL Analyticsben.
Riasztások létrehozása Azure SQL Database
Egyszerűen létrehozhat riasztásokat Azure SQL Database erőforrásokból származó adatokkal. Íme néhány hasznos napló lekérdezés , amelyet naplóriasztással használhat:
Magas CPU-használat
AzureMetrics
| where ResourceProvider=="MICROSOFT.SQL"
| where ResourceId contains "/DATABASES/"
| where MetricName=="cpu_percent"
| summarize AggregatedValue = max(Maximum) by bin(TimeGenerated, 5m)
| render timechart
Megjegyzés
- A riasztás beállításának előfeltétele, hogy a figyelt adatbázisok alapvető metrikákat streameljenek Azure SQL Analyticsbe.
- Cserélje le a MetricName értéket
cpu_percent
dtu_consumption_percent
a magas DTU-eredmények lekéréséhez.
Rugalmas készletek magas processzorhasználata
AzureMetrics
| where ResourceProvider=="MICROSOFT.SQL"
| where ResourceId contains "/ELASTICPOOLS/"
| where MetricName=="cpu_percent"
| summarize AggregatedValue = max(Maximum) by bin(TimeGenerated, 5m)
| render timechart
Megjegyzés
- A riasztás beállításának előfeltétele, hogy a figyelt adatbázisok alapszintű metrikákat streameljenek Azure SQL Analyticsbe.
- Cserélje le a MetricName értéket
cpu_percent
dtu_consumption_percent
a magas DTU-eredmények lekéréséhez.
Storage átlagosan 95% felett az elmúlt 1 óra során
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
Megjegyzés
- A riasztás beállításának előfeltétele, hogy a figyelt adatbázisok alapvető metrikákat streameljenek Azure SQL Analyticsbe.
- Ehhez a lekérdezéshez be kell állítani egy riasztási szabályt, amely riasztást aktivál, ha a lekérdezésből vannak eredmények (> 0 találat), jelezve, hogy a feltétel bizonyos adatbázisokban létezik. A kimenet azon adatbázis-erőforrások listája, amelyek a
storage_threshold
time_range
definiáltnál magasabbak. - A kimenet azon adatbázis-erőforrások listája, amelyek a
storage_threshold
time_range
definiáltnál magasabbak.
Riasztás az Intelligens elemzések szolgáltatásról
Fontos
Ha egy adatbázis megfelelően működik, és nem lett létrehozva intelligens Elemzések, a lekérdezés a következő hibaüzenettel fog meghiúsulni: Nem sikerült feloldani a nevesített rootCauseAnalysis_s
skaláris kifejezést. Ez a viselkedés minden olyan esetben várható, amikor nincs intelligens megállapítás az adatbázishoz.
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
Megjegyzés
- A riasztás beállításának előfeltétele, hogy a monitorozott adatbázisok streameljék az SQLInsights diagnosztikai naplóját Azure SQL Analyticsbe.
- A lekérdezéshez be kell állítani egy riasztási szabályt, amely ugyanolyan gyakorisággal fut, mint
alert_run_interval
az ismétlődő eredmények elkerülése érdekében. A szabályt úgy kell beállítani, hogy aktiválja a riasztást, ha a lekérdezésből léteznek eredmények (> 0 találat). - Testre szabhatja az
alert_run_interval
időtartományt annak ellenőrzéséhez, hogy történt-e a feltétel az SQLInsights-napló Azure SQL Analyticsbe való streamelésére konfigurált adatbázisokban. - A insights_string testreszabásával rögzítheti az Elemzések kiváltó okok elemzési szövegének kimenetét. Ez ugyanaz a szöveg jelenik meg a Azure SQL Analytics felhasználói felületén, amelyet a meglévő megállapításokból használhat. Másik lehetőségként az alábbi lekérdezéssel megtekintheti az előfizetésben létrehozott összes Elemzések szövegét. A lekérdezés kimenetével gyűjtse össze a különböző sztringeket a riasztások beállításához Elemzések.
AzureDiagnostics
| where Category == "SQLInsights" and status_s == "Active"
| distinct rootCauseAnalysis_s
Riasztások létrehozása SQL Managed Instance
Storage 90% felett van
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
Megjegyzés
- A riasztás beállításának előfeltétele, hogy a figyelt felügyelt példányon engedélyezve legyen a ResourceUsageStats napló streamelése az Azure SQL Analytics számára.
- Ehhez a lekérdezéshez be kell állítani egy riasztási szabályt, amely aktiválja a riasztást, ha a lekérdezésből léteznek eredmények (> 0 találat), jelezve, hogy a feltétel létezik a felügyelt példányon. A kimenet a tárterület százalékos felhasználása a felügyelt példányon.
A processzor átlagos felhasználása 95% felett van az elmúlt 1 óra során
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
Megjegyzés
- A riasztás beállításának előfeltétele, hogy a figyelt felügyelt példányon engedélyezve legyen a ResourceUsageStats napló streamelése az Azure SQL Analytics számára.
- Ehhez a lekérdezéshez be kell állítani egy riasztási szabályt, amely aktiválja a riasztást, ha a lekérdezésből léteznek eredmények (> 0 találat), jelezve, hogy a feltétel létezik a felügyelt példányon. A kimenet a processzorhasználat átlagos százalékos kihasználtsága a felügyelt példány meghatározott időszakában.
Díjszabás
Bár a Azure SQL Analytics (előzetes verzió) ingyenesen használható, a diagnosztikai telemetriai adatok felhasználása az egyes hónapokban lefoglalt ingyenes adatbetöltési egységek felett érvényes, lásd a Log Analytics díjszabását. A megadott ingyenes adatbetöltési egységek lehetővé teszik több adatbázis ingyenes monitorozását havonta. Az aktívabb, nagyobb számítási feladatokkal rendelkező adatbázisok több adatot dolgoznak fel, mint tétlen adatbázisokat. A Azure SQL Analyticsben egyszerűen figyelheti az adatbetöltési felhasználást. Ehhez válassza az OMS-munkaterületet a Azure SQL Analytics navigációs menüjében, majd válassza a Használat és a Becsült költségek lehetőséget.
Következő lépések
- Az Azure Monitor napló lekérdezései segítségével részletes Azure SQL adatokat tekinthet meg.
- Hozzon létre saját irányítópultokat, amelyeken Azure SQL adatok láthatók.
- Riasztások létrehozása adott Azure SQL események bekövetkezésekor.