Azure SQL-adatbázis monitorozása Azure SQL Analytics használatával (előzetes verzió)
A KÖVETKEZŐKRE VONATKOZIK: Azure SQL Adatbázis, Azure SQL Managed Instance
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 monitorozási lehetőségekért lásd: Monitorozás és teljesítményhangolás Azure SQL adatbázisban é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 monitorozására nagy léptékben és több előfizetésben egyetlen nézetben. Azure SQL Analytics a teljesítmény hibaelhárításához beépített intelligenciával gyűjti és vizualizálja a fő teljesítménymetrikákat.
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 az Azure Monitor-nézeteket használja 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
A Azure SQL Analytics egy csak felhőalapú monitorozási megoldás, amely támogatja a diagnosztikai telemetriai adatok streamelését az összes Azure SQL adatbázishoz. Mivel Azure SQL Analytics nem használ ügynököket az Azure Monitorhoz való csatlakozáshoz, nem támogatja a helyszíni 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 a Azure SQL Analytics nem használja. |
Linux-ügynökök | No | A közvetlen Linux-ügynököket a Azure SQL Analytics nem használja. |
System Center Operations Manage felügyeleti csoport | No | A Azure SQL Analytics nem használ közvetlen kapcsolatot az Operations Manager-ügynök és az Azure Monitor között. |
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 beállításait ismerteti, az egyiket az Azure SQL-adatbázishoz, 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 megszámláló perspektíva. | Igen | Yes |
Insights | Hierarchikus lehatolást biztosít az Intelligent Insights teljesítménybeli részletezésében. | Igen | Yes |
Hibák | Hierarchikus részletezés az adatbázisokban előforduló SQL-hibákról. | Igen | Yes |
Időtúllépések | Hierarchikus lehatolást biztosít az adatbázisokon történt SQL-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 az SQL várakozási statisztikáiba az adatbázis szintjén. Tartalmazza az összes várakozási idő és a várakozási idő várakozási típusonkénti összegzését. | Igen | Nem |
Lekérdezés időtartama | Hierarchikus lehatolást biztosít a lekérdezés-végrehajtási statisztikákba, például a lekérdezések időtartamára, a processzorhasználatra, az adat I/O-használatára, a napló I/O-használatára. | Igen | Yes |
Lekérdezési várakozások | Hierarchikus lehatolást biztosít 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ó)
Az Azure Monitor-megoldások hozzáadása a megoldástárból című szakaszban leírt eljárással adja hozzá Azure SQL Analyticset (előzetes verzió) a Log Analytics-munkaterülethez.
Azure SQL-adatbázis konfigurálása diagnosztikai telemetriai adatok streameléséhez
Miután létrehozta Azure SQL Analytics-megoldást a munkaterületen, konfigurálnia kell minden monitorozni kívánt erőforrást, hogy a diagnosztikai telemetriát az Azure SQL Analyticsbe streamelje. Kövesse az ezen az oldalon található részletes utasításokat:
- Engedélyezze Azure Diagnostics az adatbázis számára a diagnosztikai telemetriai adatok streameléséhez Azure SQL Analyticsbe.
A fenti oldal azt is ismerteti, hogyan engedélyezheti több Azure-előfizetés egyetlen ablaktáblaként történő monitorozását egyetlen Azure SQL Analytics-munkaterületről.
Azure SQL Analytics használata (előzetes verzió)
Navigáljon az SQL Analytics-üzembe helyezéshez a Log Analytics-munkaterület Örökölt megoldások lapján.
Azure SQL Analytics két külön nézetet biztosít: az egyiket a monitorozási SQL Database, a másikat pedig a monitorozási SQL Managed Instance.
Azure SQL Analytics-adatok megtekintése
Az irányítópult az összes olyan adatbázis áttekintését tartalmazza, amelyet különböző szempontok szerint figyelnek. Ahhoz, hogy a különböző perspektívák működjenek, engedélyeznie kell a megfelelő metrikákat vagy naplókat az 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 tölthetők fel monitorozási információkkal.
SQL Database nézet
Az adatbázis Azure SQL Analytics csempéjének kiválasztása után megjelenik a figyelési irányítópult.
Bármelyik csempét kiválasztva megnyit egy részletezési jelentést az adott perspektívába. A perspektíva kiválasztása után megnyílik a részletezési jelentés.
Ebben a nézetben minden perspektíva az előfizetés, a kiszolgáló, a rugalmas készlet és az adatbázis szintjén biztosít összegzéseket. Emellett minden perspektíva a jobb oldali jelentésre jellemző perspektívát jelenít meg. Ha kiválasztja az előfizetést, a kiszolgálót, a készletet vagy az adatbázist a listából, a részletezés folytatódik.
SQL Managed Instance nézet
Az adatbázisok Azure SQL Analytics csempéjének kiválasztása után megjelenik a figyelési irányítópult.
Bármelyik csempét kiválasztva megnyit egy részletezési jelentést az adott perspektívába. A perspektíva kiválasztása után megnyílik a részletezési jelentés.
A SQL Managed Instance nézet kiválasztásakor a felügyelt példányon végrehajtott lekérdezések részletei láthatók a példány kihasználtságával, a példány-adatbázisokkal és a telemetriával kapcsolatban.
Intelligent Insights-jelentés
Azure SQL Database Intelligent Insights segítségével megtudhatja, mi történik az összes Azure SQL adatbázis teljesítményével. Az összes összegyűjtött Intelligent Insights megjeleníthető és elérhető az Elemzések szemszögéből.
Rugalmas készletek és adatbázisjelentések
Mind a rugalmas készletek, mind az adatbázisok saját jelentésekkel rendelkeznek, amelyek az erőforráshoz a megadott időpontban gyű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ésjelentésen keresztül. Ez a jelentés összehasonlítja a lekérdezési teljesítményt a különböző adatbázisokban, és megkönnyíti a kiválasztott lekérdezést jól végrehajtó 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 Tulajdonos, a Közreműködő, az SQL DB-közreműködő vagy a SQL Server Közreműködő. Érdemes lehet 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 az "SQL Analytics Monitorozási operátor" egyéni 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ójá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 olyan felhasználóhoz, aki egyéni engedélyeket kell adnia a 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. A rendelkezésre álló metrikákban és naplókban található egyéni lekérdezésekhez az adatbázis-erőforrásból gyűjtött elérhető 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. Alább talál néhány példát a Log Analytics-lekérdezésekre, amelyeken a riasztások beállíthatók az Azure SQL Analyticsben.
Riasztások létrehozása Azure SQL Database-hez
Egyszerűen létrehozhat riasztásokat Azure SQL adatbázis-erőforrásokból származó adatokkal. Íme néhány hasznos napló lekérdezés , amelyet naplóriasztásokkal 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 monitorozott adatbázisok alapvető metrikákat streameljenek az Azure SQL Analytics által használt Log Analytics-munkaterületre.
- Cserélje le a MetricName értéket
cpu_percent
adtu_consumption_percent
magas DTU-eredmények lekéréséhez.
Magas processzorhasználat rugalmas készleteken
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 a Azure SQL Analytics által használt Log Analytics-munkaterületre.
- Cserélje le a MetricName értéket
cpu_percent
adtu_consumption_percent
magas DTU-eredmények lekéréséhez.
Tárolás á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 monitorozott adatbázisok alapvető metrikákat streameljenek az Azure SQL Analytics által használt Log Analytics-munkaterületre.
- 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
megadotton belül vannak. - A kimenet azon adatbázis-erőforrások listája, amelyek a
storage_threshold
time_range
megadotton belül vannak.
Riasztás intelligens megállapításokkal kapcsolatban
Fontos
Ha egy adatbázis megfelelően működik, és nem lett létrehozva Intelligent Insights, a lekérdezés egy hibaüzenettel fog meghiúsulni: A nevű rootCauseAnalysis_s
skaláris kifejezés nem oldható fel. Ez a viselkedés minden olyan esetben várható, amikor nincs intelligens elemzé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 a Azure SQL Analytics által használt Log Analytics-munkaterületre.
- Ehhez a lekérdezéshez riasztási szabályt kell beállítani, hogy ugyanazzal a gyakorisággal fusson, 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 vannak eredmények (> 0 találat). - Szabja testre a
alert_run_interval
beállítást, hogy megadja az 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. - Szabja testre a insights_string az Elemzések alapvető okok elemzése szöveg kimenetének rögzítéséhez. 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és szövegét. A lekérdezés kimenetével gyűjtse be a különböző sztringeket az Insights riasztásainak beállításához.
AzureDiagnostics
| where Category == "SQLInsights" and status_s == "Active"
| distinct rootCauseAnalysis_s
Riasztások létrehozása SQL Managed Instance
A tárterület 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 a Azure SQL Analytics által használt Log Analytics-munkaterületre.
- Ehhez a lekérdezéshez be kell állítani egy riasztási szabályt, hogy riasztást aktiváljon, ha a lekérdezésből vannak 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 a Azure SQL Analytics által használt Log Analytics-munkaterületre.
- Ehhez a lekérdezéshez be kell állítani egy riasztási szabályt, hogy riasztást aktiváljon, ha a lekérdezésből vannak 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 meghatározott időszakban a felügyelt példányon.
Díjszabás
Bár az Azure SQL Analytics (előzetes verzió) ingyenesen használható, a diagnosztikai telemetriai adatok használata az egyes hónapokban lefoglalt ingyenes adatbetöltési egységeknél magasabb, lásd: Log Analytics díjszabása. Az ingyenes adatbetöltési egységek lehetővé teszik több adatbázis ingyenes figyelését havonta. Az aktívabb, nagyobb számítási feladatokkal rendelkező adatbázisok több adatot, mint tétlen adatbázist betöltenek. A Azure SQL Analyticsben egyszerűen monitorozhatja az adatbetöltési felhasználást, ha a Azure SQL Analytics navigációs menüjében az OMS-munkaterület lehetőséget választja, majd a Használati és becsült költségek lehetőséget választja.
Következő lépések
- Napló lekérdezések használata az Azure Monitorban részletes Azure SQL adatok megtekintéséhez.
- 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.
- Az Azure SQL Database monitorozása az Azure Monitor segítségével
- Azure SQL Managed Instance monitorozása az Azure Monitorral