Azure SQL Database monitorozása a Azure SQL Analytics használatával (előzetes verzió)

A KÖVETKEZŐKRE VONATKOZIK: Azure SQL Database, 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 Database-ben és Azure SQL Managed Instance.

A Azure SQL Analytics (előzetes verzió) egy fejlett felhőmonitorozási megoldás, amely egyetlen nézetben monitorozza az összes Azure SQL adatbázis teljesítményét nagy léptékben és több előfizetésben. 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 Azure Monitor-nézeteket használ az összes Azure SQL adatbázis adatainak egyetlen Log Analytics-munkaterületen történő 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 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 Azure SQL Analytics nem használja a közvetlen Windows-ügynököket.
Linux-ügynökök No A Azure SQL Analytics nem használ közvetlen Linux-ügynököket.
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 lehetőségeit ismerteti, az egyiket az Azure SQL Database-hez, 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 elemzésébe. Igen Yes
Hibák Hierarchikus lehatolást biztosít az adatbázisokon előforduló SQL-hibákra. 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. Az összes 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 lehatolást biztosít a lekérdezések végrehajtási statisztikáiba, például a lekérdezések időtartamára, a processzorhasználatra, az adat I/O-használatra, a napló I/O-használatára. Igen Yes
Lekérdezési várakozások Hierarchikus lehatolást biztosít a lekérdezések 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ű cikkben 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 telemetriai adatok 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 a Azure SQL Analyticsbe streamelje. Kövesse az ezen az oldalon található részletes utasításokat:

A fenti oldal útmutatást nyújt több Azure-előfizetés egyetlen Azure SQL Analytics-munkaterületről egyetlen panelen történő monitorozásához.

A Azure SQL Analytics használata (előzetes verzió)

Lépjen az SQL Analytics üzembe helyezéséhez 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 SQL Database figyelésére, a másikat pedig a SQL Managed Instance figyelésére.

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ő perspektívákon keresztül 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ák vagy naplók nincsenek streamelve az Azure Monitorba, a Azure SQL Analytics csempéi nem jelennek meg 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.

Képernyőkép a figyelési irányítópultról.

Ha kiválasztja bármelyik csempét, megnyílik egy részletes jelentés az adott perspektívában. A perspektíva kiválasztása után megnyílik a részletezési jelentés.

Képernyőkép a részletezési jelentésről az adott perspektívába.

Ebben a nézetben minden perspektívában összegzéseket talál az előfizetés, a kiszolgáló, a rugalmas készlet és az adatbázis szintjén. Emellett minden egyes perspektíva a jelentésre jellemző perspektívát jelenít meg a jobb oldalon. 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.

Azure SQL Analytics áttekintése

Ha kiválasztja bármelyik csempét, megnyílik egy részletes jelentés az adott perspektívában. 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áról, a példányadatbázisokról és a telemetriai adatokról.

Azure SQL Analytics időtúllépései

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 Insights szemszögéből.

Azure SQL Analytics Insights

Rugalmas készletek és adatbázis-jelentések

A rugalmas készletek és az adatbázisok is rendelkeznek saját jelentésekkel, amelyek az erőforráshoz a megadott időpontban gyűjtött összes adatot megjelenítik.

Azure SQL Analytics-adatbázis

rugalmas készlet Azure SQL

Jelentések lekérdezése

A lekérdezés időtartamán és a lekérdezések 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 kijelölését.

Azure SQL Analytics-lekérdezések

Engedélyek

Az 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őbb szerepkörök: Tulajdonos, Közreműködő, SQL DB-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élyeket használja, é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

Javasoljuk, hogy az Azure-ral való interakcióhoz az Azure Az PowerShell-modult használja. Az első lépésekhez tekintse meg 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 Azure SQL Analytics használatához.

Adatok elemzése és riasztások létrehozása

Az 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 megtalálja az adatbázis-erőforrásból gyűjtött, egyéni lekérdezésekhez gyűjtött adatok leírását.

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 Azure SQL Analyticsben.

Riasztások létrehozása Azure SQL Database-hez

A Azure SQL Database-erőforrásokból származó adatokkal egyszerűen hozhat létre riasztásokat. Í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 a Azure SQL Analytics által használt Log Analytics-munkaterületre.
  • Cserélje le a MetricName értéket cpu_percent a értékre dtu_consumption_percent a 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 monitorozott adatbázisok alapszintű metrikákat streameljenek az Azure SQL Analytics által használt Log Analytics-munkaterületre.
  • Cserélje le a MetricName értéket cpu_percent a értékre dtu_consumption_percent a 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 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 léteznek 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_thresholdtime_range definiálton belül vannak.
  • A kimenet azon adatbázis-erőforrások listája, amelyek a storage_thresholdtime_range definiálton belül vannak.

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 Intelligent Insights, a lekérdezés a következő hibaüzenettel hiúsul meg: Nem sikerült feloldani a nevű rootCauseAnalysis_sskaláris kifejezést. Ez a viselkedés minden olyan esetben elvá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.
  • A lekérdezéshez be kell állítani egy riasztási szabályt úgy, 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 léteznek eredmények (> 0 találat).
  • alert_run_interval A testreszabásával adja meg 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ázisokon.
  • 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ő elemzésekbő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 össze a különböző sztringeket az Elemzések 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 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 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 léteznek eredmények (> 0 találat), jelezve, hogy a feltétel létezik a felügyelt példányon. A kimenet a felügyelt példányon meghatározott időszak átlagos processzorkihasználtságának százalékos felhasználása.

Díjszabás

Bár az Azure SQL Analytics (előzetes verzió) ingyenesen használható, a havi ingyenes adatbetöltési egységek feletti diagnosztikai telemetriai adatok felhasználása érvényes, lásd a Log Analytics díjszabását. A rendelkezésre álló 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 és tétlen adatbázist betöltenek. Az Azure SQL Analyticsben egyszerűen figyelheti az adatbetöltési felhasználást. Ehhez válassza az OMS-munkaterület lehetőséget a Azure SQL Analytics navigációs menüjében, majd válassza a Használat és becsült költségek lehetőséget.

Következő lépések