監視 Azure SQL 資料庫

本文章說明:

  • 您可以為此服務收集的監視資料類別。
  • 分析資料的方式。

注意

如果您已經熟悉此服務和/或 Azure 監視器,並只想知道如何分析監視資料,請參閱本文結尾附近的分析一節。

當您有依賴 Azure 資源的重要應用程式和商務流程時,您需要監視並取得系統的警示。 Azure 監視器服務會從您系統的每個元件收集及彙總計量和記錄。 Azure 監視器提供可用性、效能及復原能力檢視,並通知您問題。 您可以使用 Azure 入口網站、PowerShell、Azure CLI、REST API 或用戶端程式庫來設定及檢視監視資料。

SQL Server 資料庫引擎有自己的監視與診斷功能,可供 Azure SQL 資料庫使用,例如:查詢存放區與動態管理檢視 (DMV)。 如需詳細資訊,請參閱使用查詢存放區監視效能使用動態管理檢視監視 Azure SQL Database 效能

如需 Azure SQL 資料庫和 Azure SQL 受控執行個體之所有監視和效能層面的詳細討論,請參閱在 Azure SQL 資料庫和 Azure SQL 受控執行個體中監視和效能微調

重要

如需一組建議的警示規則,請參閱使用 Azure 監視器計量和警示監視 Azure SQL 資料庫

深入解析

Azure 中的某些服務在 Azure 入口網站中有內建的監視儀表板,可提供監視服務的起點。 這些儀表板稱為深入解析,您可以在 Azure 入口網站中 Azure 監視器的深入解析中樞中找到這些儀表板。

Azure 監視器 SQL 見解 (預覽)

您可為 Azure SQL 資料庫、Azure SQL 受控執行個體以及 Azure VM 上的 SQL Server 設定 SQL 特定計量的 Azure 監視器 SQL 見解。 如需在 Azure SQL 系列所有產品上使用 Azure 監視器 SQL 見解的詳細資訊,請參閱使用 SQL 見解監視 SQL 部署 (預覽)

如需關於如何使用 SQL Insights 的詳細資訊,請參閱下列文章:

Intelligent Insights

適用於 Azure SQL 資料庫和 Azure SQL 受控執行個體的 Intelligent Insights 與 Azure 監視器 SQL Insights 不同。 Intelligent Insights 使用人工智慧功能持續監視資料庫使用情況,並偵測導致效能不佳的干擾性事件。 Intelligent Insights 會產生名為 SQLInsights 的資源記錄,以提供智慧型評估、根本原因分析和效能改進建議。

如需詳細資訊,請參閱 Intelligent Insights 使用 AI 來針對資料庫的效能進行監視和疑難排解 (預覽版)使用 Intelligent Insights 效能診斷記錄

查詢效能深入解析

查詢效能深入解析會使用 SQL Server 查詢存放區,針對單一和集區資料庫提供查詢計劃選擇和效能的智慧查詢分析和深入解析。 如需詳細資訊,請參閱 Azure SQL Database 的查詢效能深入解析

資源類型

Azure 會使用資源類型和識別碼的概念來識別訂用帳戶中的所有內容。 Azure 監視器同樣會依據資源類型將核心監視資料組織成計量和記錄,也稱為命名空間。 不同的計量和記錄適用於不同的資源類型。 您的服務可能會與多個資源類型相關聯。

資源類型也是 Azure 中所執行每個資源的資源識別碼組成部分。 例如,虛擬機器的資源類型是 Microsoft.Compute/virtualMachines。 如需服務及其相關聯資源類型的清單,請參閱資源提供者

如需 SQL Database 之資源類型的詳細資訊,請參閱 SQL Database 監視資料參考

資料存放區

對於 Azure 監視器:

  • 計量資料會儲存在 Azure 監視器計量資料庫中。
  • 記錄資料會儲存在 Azure 監視器記錄存放區中。 Log Analytics 是可查詢此存放區的 Azure 入口網站工具。
  • Azure 活動記錄是個單獨存放區,其介面位於 Azure 入口網站。

您可選擇性地將計量和活動記錄資料路由傳送至 Azure 監視器記錄存放區。 然後,可以使用 Log Analytics 來查詢資料,並將其與其他記錄資料相互關聯。

許多服務可以使用診斷設定,將計量和記錄資料傳送至 Azure 監視器以外的其他儲存位置。 範例包括 Azure 儲存體、託管的合作夥伴系統以及使用事件中樞的非 Azure 合作夥伴系統

如需 Azure 監視器如何儲存資料的詳細資訊,請參閱 Azure 監視器資料平台

Azure 監視器平台計量

Azure 監視器為大多數服務提供平台計量。 這些計量包括:

  • 針對每個命名空間個別定義。
  • 儲存在 Azure 監視器時間序列計量資料庫中。
  • 輕量型且能支援近乎即時的警示。
  • 用來追蹤資源效能的趨勢變化。

集合:Azure 監視器會自動收集平台計量。 不需要組態。

路由:通常您也可以將平台計量路由傳送至 Azure 監視器記錄/Log Analytics,以便與其他記錄資料一同查詢。 如需詳細資訊,請參閱計量診斷設定。 如需為服務設定診斷的說明,請參閱在 Azure 監視器中建立診斷設定

如需 Azure 監視器中所有資源可收集的計量完整清單,請參閱 Azure 監視器中所支援的計量

Azure SQL Database 計量

您可以使用計量來監視資料庫和彈性集區資源使用量和健康情況。 例如,您可以:

  • 將資料庫或彈性集區調整為適合應用程式工作負載的正確大小
  • 偵測資源使用量的逐漸增加,並主動擴大資料庫或彈性集區
  • 偵測效能問題並進行疑難排解

如需 Azure SQL Database 常用的計量清單和說明,請參閱 Azure SQL Database 計量

如需 SQL Database 所有可用計量的資料表,請參閱 SQL Database 監視資料參考

Azure 監視器資源記錄

資源記錄提供 Azure 資源所完成作業的深入解析。 系統會自動產生記錄,但您必須將其路由傳送至 Azure 監視器記錄,以便儲存或查詢記錄。 按類別組織記錄。 指定的命名空間可能會有多個資源記錄類別。

集合:在您建立「診斷設定」並將其路由傳送至一個或多個位置之前,將不會收集和儲存資源記錄。 在建立診斷設定時,您可以指定要收集的記錄類別。 有多種方式可以建立和維護診斷設定,包括 Azure 入口網站、程式設計方式,以及透過 Azure 原則。

路由:建議的預設值是將資源記錄路由傳送至 Azure 監視器記錄,以便與其他記錄資料一同查詢。 您也可以使用其他位置,例如 Azure 儲存體、Azure 事件中樞及特定 Microsoft 監視合作夥伴。 如需詳細資訊,請參閱 Azure 資源記錄資源記錄目的地

如需收集、儲存及路由資源記錄的詳細資訊,請參閱 Azure 監視器中的診斷設定

如需 Azure 監視器中所有可用資源記錄類別的清單,請參閱 Azure 監視器中支援的資源記錄

Azure 監視器中的所有資源記錄都有相同的標頭欄位,後面接著服務特定的欄位。 一般結構描述如 Azure 監視器資源記錄結構描述中所述。

Azure SQL Database 記錄

Azure SQL Database 的稽核會追蹤資料庫事件,並將事件寫入至 Azure 儲存體帳戶、Log Analytics 工作區或事件中樞中的稽核記錄。 如需詳細資訊,請參閱 Azure SQL Database 的稽核

如需 Azure SQL Database 的可用資源記錄和診斷的更多資訊,請參閱設定診斷遙測的串流匯出

如需可用的資源記錄類別、其相關聯的 Log Analytics 資料表,以及 SQL Database 的記錄結構描述,請參閱 SQL Database 監視資料參考

Azure 活動記錄

活動記錄包含訂用帳戶層級事件,用於追蹤每個 Azure 資源外部可見的作業;例如,建立新的資源或啟動虛擬機器。

集合:活動記錄事件會自動產生並收集在個別存放區中,以便在 Azure 入口網站中檢視。

路由:您可以將活動記錄資料傳送至 Azure 監視器記錄,以便與其他記錄資料一起分析。 您也可以使用其他位置,例如 Azure 儲存體、Azure 事件中樞及特定 Microsoft 監視合作夥伴。 如需路由傳送活動記錄的詳細資訊,請參閱 Azure 活動記錄概觀

分析監視資料

有許多工具可用來分析監視資料。

Azure 監視器工具

Azure 監視器支援下列基本工具:

支援更複雜的視覺效果的工具包括:

  • 儀表板可讓您將不同類型的資料合併到 Azure 入口網站中的單一窗格。
  • 活頁簿,可在 Azure 入口網站中建立的可自訂報表。 活頁簿可以包含文字、計量及記錄查詢。
  • Grafana,這是在操作儀表板中表現相當出色的開放平台工具。 您可以使用 Grafana 來建立儀表板,納入 Azure 監視器以外多個來源的資料。
  • Power BI,這是一項商務分析服務,可提供跨各種資料來源的互動式視覺效果。 你可以將 Power BI 設定為自動從 Azure 監視器匯入記錄資料,以利用這些視覺效果。

Azure 監視器匯出工具

您可以使用下列方法將資料從 Azure 監視器中提取至其他工具:

若要開始使用適用於 Azure 監視器的 REST API,請參閱 Azure 監視 REST API 逐步解說

Kusto 查詢

您可以使用 Kusto 查詢語言 (KQL) 分析 Azure 監視器記錄/Log Analytics 存放區中的監視資料。

重要

當您從入口網站的服務功能表中選取 [記錄] 時,Log Analytics 會隨即開啟,並將查詢範圍設定為目前服務。 此範圍表示記錄查詢只會包含該資源類型的資料。 如果您想要執行包含其他 Azure 服務資料的查詢,請從 [Azure 監視器] 功能表中選取 [記錄]。 如需詳細資訊,請參閱 Azure 監視器 Log Analytics 中的記錄查詢範圍和時間範圍

如需各項服務的常見查詢清單,請參閱 Log Analytics 查詢介面

注意

有時,從發出事件到事件出現在 Log Analytics 工作區中,最多可能需要 15 分鐘的時間。

使用下列查詢來監視您的資料庫。 視購買模型而定,您可能會看到不同的可用選項。

範例 A:過去一小時內的 Log_write_percent

AzureMetrics
| where ResourceProvider == "MICROSOFT.SQL"
| where TimeGenerated >= ago(60min)
| where MetricName in ('log_write_percent')
| parse _ResourceId with * "/microsoft.sql/servers/" Resource
| summarize Log_Maximum_last60mins = max(Maximum), Log_Minimum_last60mins = min(Minimum), Log_Average_last60mins = avg(Average) by Resource, MetricName

範例 B:過去 15 分鐘的 SQL Server 等候類型

AzureDiagnostics
| where ResourceProvider == "MICROSOFT.SQL"
| where TimeGenerated >= ago(15min)
| parse _ResourceId with * "/microsoft.sql/servers/" LogicalServerName "/databases/" DatabaseName
| summarize Total_count_15mins = sum(delta_waiting_tasks_count_d) by LogicalServerName, DatabaseName, wait_type_s

範例 C:過去 60 分鐘的 SQL Server 死結

AzureMetrics
| where ResourceProvider == "MICROSOFT.SQL"
| where TimeGenerated >= ago(60min)
| where MetricName in ('deadlock')
| parse _ResourceId with * "/microsoft.sql/servers/" Resource
| summarize Deadlock_max_60Mins = max(Maximum) by Resource, MetricName

範例 D:過去一小時內的平均 CPU 使用量

AzureMetrics
| where ResourceProvider == "MICROSOFT.SQL"
| where TimeGenerated >= ago(60min)
| where MetricName in ('cpu_percent')
| parse _ResourceId with * "/microsoft.sql/servers/" Resource
| summarize CPU_Maximum_last60mins = max(Maximum), CPU_Minimum_last60mins = min(Minimum), CPU_Average_last60mins = avg(Average) by Resource, MetricName

警示

在監視資料中發現特定狀況時,Azure 監視器會主動通知您。 警示可讓您及早識別系統中的問題並予以因應,避免客戶發現這些問題。 如需詳細資訊,請參閱 Azure 監視器警示

Azure 資源的常見警示有許多來源。 如需 Azure 資源的常見警示範例,請參閱記錄警示查詢範例Azure 監視器基準警示 (AMBA) 網站提供半自動化方法來實作重要的平台計量警示、儀表板和指導方針。 此網站適用於持續擴充的 Azure 服務子集,包括屬於 Azure 登陸區域 (ALZ) 的所有服務。

常見的警示結構描述會將 Azure 監視器警示通知的使用量標準化。 如需詳細資訊,請參閱一般警示結構描述

警示類型

您可以針對在 Azure 監視器資料平台中的任何計量或記錄資料來源發出警示。 警示有許多不同的類型,具體取決於您監視的服務以及所收集的監視資料。 不同類型的警示各有優缺點。 如需詳細資訊,請參閱選擇正確的監視警示類型

下列清單描述可建立的 Azure 監視器警示類型:

  • 計量警示會定期評估資源計量。 這些計量可以是平台計量、自訂計量、Azure 監視器轉換成計量的記錄,或 Application Insights 計量。 計量警示還可以套用多個條件和動態閾值。
  • 記錄警示可讓使用者使用 Log Analytics 查詢,以預先定義的頻率評估資源記錄。
  • 活動記錄警示會在發生符合定義條件的新活動記錄事件時觸發。 資源健康狀態警示和服務健康情況警示是報告服務和資源健康狀態的活動記錄警示。

某些 Azure 服務也支援智慧偵測警示Prometheus 警示建議的警示規則

對於某些服務,若要進行大規模監控,您可以將同一計量警示規則套用至相同 Azure 區域中存在的多個同類型資源。 系統會針對每個受監視的資源傳送個別通知。 如需支援的 Azure 服務和雲端,請參閱使用一個警示規則監視多個資源

SQL Database 警示規則

下表列出 SQL Database 常見和建議的警示規則。 視購買模型而定,您可能會看到不同的可用選項。

訊號名稱 運算子 彙總類型 臨界值 描述
DTU 百分比 大於 Average 80 當平均 DTU 百分比大於 80%
記錄 IO 百分比 大於 Average 80 當平均記錄 IO 百分比大於 80%
死結* 大於 Count 1 當死結計數大於 1。
CPU 百分比 大於 Average 80 當平均 CPU 百分比大於 80%

* 在某些預期會出現死結且會加以妥善處理的應用程式中,死結警示可能不必要且會產生干擾。

如需詳細了解 SQL Database 的建議警示規則和典型警示規則設定,請參閱使用 Azure 監視器計量和警示來監視 Azure SQL Database

Advisor 建議

對於一些服務,如果在資源作業期間發生重大狀況或有即將到來的變更,入口網站的服務 [概觀] 頁面上會顯示警示。 您可以在左側功能表中 [監視] 底下的 [Advisor 建議] 中找到警示的詳細資訊和建議的修正。 在正常作業期間,不會顯示 Advisor 建議。

如需 Azure Advisor 的詳細資訊,請參閱 Azure Advisor 概觀