使用 Azure 監視器來監視 Azure SQL Database

適用于:Azure SQL資料庫

當您有依賴 Azure 資源的重要應用程式和商務程序時,您會想要監視這些資源的可用性、效能和操作。

本文會說明如何監視 Azure SQL Database 產生的資料。 Azure SQL Database 可使用 Azure 監視器進行監視。 Azure 監視器為所有使用到 Azure 監視器的 Azure 服務提供通用功能,若您對這些功能不甚熟悉,請參閱使用 Azure 監視器監視 Azure 資源

Azure 入口網站中的 [監視] 概觀頁面

直接移至Azure 入口網站中的 [Azure 監視器] 頁面,以檢視所有已連線資源的 Azure 監視器計量。 或者,在Azure SQL DB 的 [概觀] 頁面上,選取 [監視] 標題下的 [計量],以連線到 Azure 監視器。

Azure 監視器 SQL 見解 (預覽)

在 Azure 入口網站中,某些 Azure 服務具有目標明確的預建監視儀表板,可做為監控服務的起點。 這些特殊儀表板稱為「見解」,預設情況下不會啟用。 如需在 Azure SQL 系列所有產品上使用 Azure 監視器 SQL 見解的詳細資訊,請參閱使用 SQL 見解監視 SQL 部署 (預覽)

建立監視設定檔之後,您可以在 Azure VM 上設定適用于 Azure SQL Database、SQL 受管理執行個體 和 SQL Server SQL 特定計量的 Azure 監視器 SQL Insights。

注意

Azure SQL 分析 (預覽) 可與 Azure 監視器整合,其中許多監視解決方案不再處於開發中狀態。 如需更多監視選項,請參閱 Azure SQL Database 和 Azure SQL 受控執行個體監視和效能微調 (英文)。

監視資料

Azure SQL Database 會收集與其他 Azure 資源相同類型的監視資料,如監視 Azure 資源中的資料中所述。

如需 Azure SQL Database 所建立計量和計量記錄的詳細資訊,請參閱使用 Azure 監視器參考監視 Azure SQL Database (英文)。

收集和路由傳送

系統會自動收集和儲存平台計量和活動記錄,但是可以使用診斷設定將資料路由傳送至其他位置。

在您建立診斷設定並將其路由傳送至一個或多個位置之前,系統不會收集和儲存資源記錄。 資源記錄先前是指診斷記錄。

可用的診斷設定包括:

  • 記錄:SQLInsights、AutomaticTuning、QueryStoreRuntimeStatistics、QueryStoreWaitStatistics、Errors、DatabaseWaitStatistics、Timeouts、Blocks、Deadlocks
  • 計量:在 [基本] 和 [InstanceAndAppAdvanced] 類別中所有 Azure 監視器計量
  • 目的地詳細資料:傳送至 Log Analytics 工作區、封存至儲存體帳戶、串流至事件中樞、串流至夥伴解決方案

如需可用資源記錄和診斷的更多資訊,請參閱可匯出的診斷遙測 (英文)。

如需使用 Azure 入口網站、Azure CLI 或 PowerShell 建立診斷設定的詳細程序,請參閱建立診斷設定以在 Azure 中收集平台記錄和計量。 在建立診斷設定時,您可以指定要收集的記錄類別。 Azure SQL Database 類別列於 Azure SQL Database 監視資料參考

分析計量

您可以使用計量總管,從Azure 入口網站的 [監視] 功能表開啟 [計量],藉此分析Azure SQL資料庫的計量和其他 Azure 服務的計量。 如需使用此工具的詳細資訊,請參閱開始使用 Azure 計量瀏覽器

如需針對 Azure SQL Database 所收集的平台計量清單,請參閱監視 Azure SQL Database 資料參考計量 (英文)

如需參考,您可以查看 Azure 監視器中支援的所有資源計量清單。

分析記錄

Azure 監視器記錄中的資料會儲存在資料表中,其中每個資料表都有一組專屬的唯一屬性。 此資料可選擇透過診斷設定來收集。

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

活動記錄是 Azure 中的一種平台記錄,可提供訂用帳戶層級事件的深入解析。 您可以獨立檢視活動記錄,或將記錄路由至 Azure 監視器記錄,以便使用 Log Analytics 處理更為複雜的查詢作業。

如需針對 Azure SQL Database 收集的資源記錄類型清單,請參閱Azure SQL Database 的資源記錄

如需 Azure 監視器記錄所使用的資料表清單,以及 Log Analytics 可查詢的資料表,請參閱適用于 Azure SQL 資料庫的 Azure 監視器記錄資料表

範例 Kusto 查詢

重要

從資料庫的 [監視] 功能表中選取 [ 記錄 ] 會開啟 Log Analytics,並將查詢範圍設定為目前的資料庫。 這表示記錄查詢只會包含來自該資源的資料。 如果您想要執行包含其他資料庫資料或其他 Azure 服務資料的查詢,請從 [Azure 監視器] 功能表中選取 [記錄]。 如需詳細資訊,請參閱 Azure 監視器 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 監視器 Application Insights 可提供更多類型的警示。

您也可以使用 Azure CLI 或 PowerShell 來設定警示。 例如,請參閱在 Azure SQL 資料庫中使用 PowerShell 監視和調整單一資料庫

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

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

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

下一步