Azure SQL Analytics (プレビュー) を使用した Azure SQL Database の監視Monitor Azure SQL Database using Azure SQL Analytics (Preview)

Azure SQL Analytics のシンボル

Azure SQL Analytics は、複数のサブスクリプションにわたって大規模に Azure SQL データベース、エラスティック プール、マネージド インスタンスのパフォーマンスを監視するためのクラウド監視ソリューションです。Azure SQL Analytics is a cloud monitoring solution for monitoring performance of Azure SQL databases, elastic pools, and Managed Instances at scale and across multiple subscriptions. これを使用すると、パフォーマンスのトラブルシューティングのために、組み込みのインテリジェンスを使用して Azure SQL Database の重要なパフォーマンス メトリックを収集し、視覚化できます。It collects and visualizes important Azure SQL Database performance metrics with built-in intelligence for performance troubleshooting.

このソリューションを使用して収集できるメトリックを使用して、独自の監視ルールおよびアラートを作成できます。By using metrics that you collect with the solution, you can create custom monitoring rules and alerts. このソリューションは、アプリケーション スタックの各層の問題を特定するのに役立ちます。The solution helps you to identify issues at each layer of your application stack. Azure 診断メトリックと Log Analytics ビューを使用して、すべての Azure SQL データベース、エラスティック プール、マネージド インスタンスのデータベースに関するデータを、単一の Log Analytics ワークスペースに表示します。It uses Azure Diagnostic metrics along with Log Analytics views to present data about all your Azure SQL databases, elastic pools, and databases in Managed Instances in a single Log Analytics workspace. Log Analytics では、収集、関連付けのほか、構造化データおよび非構造化データの視覚化ができます。Log Analytics helps you to collect, correlate, and visualize structured and unstructured data.

Azure SQL Analytics ソリューションの使用に関する実践的な概要と、一般的な使用シナリオについては、埋め込みのビデオをご覧ください。For a hands-on overview on using Azure SQL Analytics solution and for typical usage scenarios, see the embedded video:

接続先ソースConnected sources

Azure SQL Analytics は、Azure SQL Database、マネージド インスタンス データベース、およびエラスティック プールの診断テレメトリのストリーミングをサポートする唯一のクラウド監視ソリューションです。Azure SQL Analytics is a cloud only monitoring solution supporting streaming of diagnostics telemetry for Azure SQL Database, Managed Instance databases and elastic pools.

このソリューションでは、Log Analytics サービスに接続するためのエージェントが使用されないため、オンプレミスまたは VM でホストされる SQL Server の監視はサポートされません。次の互換性に関する表を参照してください。As the solution does not use agents to connect to the Log Analytics service, the solution does not support monitoring of SQL Server hosted on-premises or in VMs, see the compatibility table below.

接続先ソースConnected Source サポートされていますSupported 説明Description
Azure 診断Azure Diagnostics はいYes Azure のメトリックおよびログ データは、Azure によって直接 Log Analytics に送信されます。Azure metric and log data are sent to Log Analytics directly by Azure.
Azure Storage アカウントAzure storage account いいえ No Log Analytics は、ストレージ アカウントからデータを読み取ることはしません。Log Analytics doesn't read the data from a storage account.
Windows エージェントWindows agents いいえ No このソリューションでは、直接の Windows エージェントは使用されません。Direct Windows agents aren't used by the solution.
Linux エージェントLinux agents いいえ No このソリューションでは、直接の Linux エージェントは使用されません。Direct Linux agents aren't used by the solution.
SCOM 管理グループSCOM management group いいえ No このソリューションでは、SCOM エージェントから Log Analytics への直接接続は使用しません。A direct connection from the SCOM agent to Log Analytics is not used by the solution.

構成Configuration

Azure SQL Analytics ソリューションを Azure ダッシュボードに追加するには、次の手順を実行します。Perform the following steps to add the Azure SQL Analytics solution to your Azure dashboard.

  1. Azure Marketplace から Azure SQL Analytics ソリューションをワークスペースに追加します。Add the Azure SQL Analytics solution to your workspace from Azure marketplace.
  2. Azure portal で [+ リソースの作成] をクリックし、次に Azure SQL Analytics を検索します。In the Azure portal, click + Create a resource, then search for Azure SQL Analytics.
    監視 + 管理Monitoring + Management
  3. 一覧から Azure SQL Analytics (プレビュー) を選択しますSelect Azure SQL Analytics (Preview) from the list
  4. [Azure SQL Analytics (プレビュー)] 領域で、[作成] をクリックします。In the Azure SQL Analytics (Preview) area, click Create.
    作成Create
  5. [新しいソリューションの作成] 領域で、ソリューションを追加するワークスペースを新規作成するか既存のワークスペースを選択し、[作成] をクリックします。In the Create new solution area, create new, or select an existing workspace that you want to add the solution to, and then click Create.

    ワークスペースに追加

診断テレメトリをストリーム配信するための Azure SQL Database、エラスティック プール、および Managed Instance の構成Configure Azure SQL Databases, elastic pools and Managed Instances to stream diagnostics telemetry

ワークスペースに Azure SQL Analytics ソリューションを作成した後に、Azure SQL Database、Managed Instance データベース、およびエラスティック プールのパフォーマンスを監視するには、診断テレメトリをソリューションにストリーム配信するように、監視するこれらのリソースそれぞれを構成する必要があります。Once you have created Azure SQL Analytics solution in your workspace, in order to monitor performance of Azure SQL databases, Managed Instance databases and elastic pools, you will need to configure each of these resources you wish to monitor to stream its diagnostics telemetry to the solution.

複数の Azure サブスクリプションの構成方法To configure multiple Azure subscriptions

複数のサブスクリプションをサポートするためには、「Enable Azure resource metrics logging using PowerShell (PowerShell を使用して Azure リソース メトリックのログ記録を有効にする)」の PowerShell スクリプトを使用します。To support multiple subscriptions, use the PowerShell script from Enable Azure resource metrics logging using PowerShell. スクリプトを実行するときにパラメーターとしてワークスペース リソース ID を入力すると、1 つの Azure サブスクリプション内のリソースから別の Azure サブスクリプションのワークスペースに診断データを送信できます。Provide the workspace resource ID as a parameter when executing the script to send diagnostic data from resources in one Azure subscription to a workspace in another Azure subscription.

Example

PS C:\> $WSID = "/subscriptions/<subID>/resourcegroups/oms/providers/microsoft.operationalinsights/workspaces/omsws"
PS C:\> .\Enable-AzureRMDiagnostics.ps1 -WSID $WSID

ソリューションの使用Using the solution

ソリューションをワークスペースに追加すると、Azure SQL Analytics のタイルがワークスペースに追加され、[概要] に表示されます。When you add the solution to your workspace, the Azure SQL Analytics tile is added to your workspace, and it appears in Overview. タイルには、ソリューションが診断テレメトリを受信する Azure SQL Database、エラスティック プール、Managed Instance、および Managed Instance 内のデータベースの数が表示されます。The tile shows the number of Azure SQL databases, elastic pools, Managed Instances, and databases in Managed instances that the solution is receiving diagnostics telemetry from.

Azure SQL Analytics のタイル

ソリューションには、2 つの独立したビューが用意されています。1 つは Azure SQL Database とエラスティック プールの監視用で、他のビューは、Managed Instance と、Managed Instance 内のデータベースの監視用です。The solution provides two separate views -- one for monitoring Azure SQL Databases and elastic pools, and the other view for monitoring Managed Instance, and databases in Managed Instances.

Azure SQL Database とエラスティック プール用の Azure SQL Analytics 監視ダッシュボードを表示するには、タイルの上部をクリックします。To view Azure SQL Analytics monitoring dashboard for Azure SQL Databases and elastic pools, click on the upper part of the tile. Managed Instance と、Managed Instance 内のデータベース用の Azure SQL Analytics 監視ダッシュボードを表示するには、タイルの下部をクリックします。To view Azure SQL Analytics monitoring dashboard for Managed Instance, and databases in Managed Instance, click on the lower part of the tile.

Azure SQL Analytics データの表示Viewing Azure SQL Analytics data

ダッシュボードには、さまざまなパースペクティブから監視されるすべてのデータベースの概要が含まれています。The dashboard includes the overview of all databases that are monitored through different perspectives. さまざまなパースペクティブが動作するには、適切なメトリックを有効にするか、SQL リソースにログオンして、Azure Log Analytics ワークスペースにストリーミングする必要があります。For different perspectives to work, you must enable proper metrics or logs on your SQL resources to be streamed to Azure Log Analytics workspace.

Azure Log Analytics に一部のメトリックまたはログがストリーム配信されない場合は、ソリューションのタイルに監視情報が表示されません。Please note that if some metrics or logs are not streamed into Azure Log Analytics, the tiles in the solution will not be populated with monitoring information.

Azure SQL Database とエラスティック プールのビューAzure SQL Database and elastic pool view

Azure SQL Database とエラスティック プールの Azure SQL Analytics タイルが選択されると、監視ダッシュボードが表示されます。Once the Azure SQL Analytics tile for Azure SQL Database and elastic pools is selected, the monitoring dashboard is shown.

Azure SQL Analytics の概要

タイルのいずれかを選択すると、特定のパースペクティブでドリルダウン レポートが開きます。Selecting any of the tiles, opens a drill-down report into the specific perspective. パースペクティブを選択すると、ドリル ダウン レポートが開きます。Once the perspective is selected, the drill-down report is opened.

Azure SQL Analytics のタイムアウト

このビューの各パースペクティブは、サブスクリプション、サーバー、エラスティック プール、およびデータベース レベルの概要を提供します。Each perspective in this view provides summaries on subscription, server, elastic pool, and database level. さらに、各パースペクティブは、右側にパースペクティブ特定のレポートを示します。In addition, each perspective shows a perspective specific to the report on the right. 一覧からサブスクリプション、サーバー、プール、またはデータベースを選択するとドリル ダウンが続行されます。Selecting subscription, server, pool, or database from the list continues the drill-down.

Managed Instance と Managed Instance 内のデータベースのビューManaged Instance and databases in Managed Instance view

Managed Instance と Managed Instance データベースの Azure SQL Analytics タイルが選択されると、監視ダッシュボードが表示されます。Once the Azure SQL Analytics tile for Managed Instances and Managed Instnace databases is selected, the monitoring dashboard is shown.

Azure SQL Analytics の概要

タイルのいずれかを選択すると、特定のパースペクティブでドリルダウン レポートが開きます。Selecting any of the tiles, opens a drill-down report into the specific perspective. パースペクティブを選択すると、ドリル ダウン レポートが開きます。Once the perspective is selected, the drill-down report is opened.

Managed Instance のビューを選択すると、Managed Instance の使用率、それに含まれるデータベース、インスタンス全体で実行されたクエリに関するテレメトリの詳細が表示されます。Selecting Managed Instance view, shows details on the Managed Instance utilization, databases it contains, and telemetry on the queries executed across the instance.

Azure SQL Analytics のタイムアウト

パースペクティブPerspectives

次の表に、2 つのバージョンのダッシュボードでサポートされるパースペクティブの概要を示します。1 つは Azure SQL Database とエラスティック プール用で、もう 1 つが Managed Instance 用です。The below table outlines perspectives supported for two versions of the dashboard, one for Azure SQL database and elastic pools, and the other one for Managed Instance.

パースペクティブPerspective 説明Description SQL Database とエラスティック プールのサポートSQL Database and elastic pools support Managed Instance のサポートManaged Instance support
種類別のリソースResource by type 監視対象のすべてのリソースをカウントするパースペクティブです。Perspective that counts all the resources monitored. [はい]Yes [はい]Yes
洞察Insights パフォーマンスに対する Intelligent Insights の階層型のドリルダウンを提供します。Provides hierarchical drill-down into Intelligent Insights into performance. [はい]Yes [はい]Yes
ErrorsErrors データベースで発生した SQL エラーの階層型のドリルダウンを提供しますProvides hierarchical drill-down into SQL errors that happened on the databases. [はい]Yes [はい]Yes
TimeoutsTimeouts データベースで発生した SQL タイムアウトの階層型のドリルダウンを提供しますProvides hierarchical drill-down into SQL timeouts that happened on the databases. [はい]Yes いいえ No
ブロッキングBlockings データベースで発生した SQL ブロッキングの階層型のドリルダウンを提供しますProvides hierarchical drill-down into SQL blockings that happened on the databases. [はい]Yes いいえ No
データベース待機Database waits データベース レベルで発生した SQL 待機統計の階層型のドリルダウンを提供しますProvides hierarchical drill-down into SQL wait statistics on the database level. 合計待機時間と待機の種類ごとの待機時間の概要が含まれます。Includes summaries of total waiting time and the waiting time per wait type. [はい]Yes [はい]Yes
クエリ実行時間Query duration クエリの実行時間、CPU 使用率、データ IO 使用率、ログ IO 使用率などのクエリ実行の統計の階層型のドリルダウンを提供します。Provides hierarchical drill-down into the query execution statistics such as query duration, CPU usage, Data IO usage, Log IO usage. [はい]Yes [はい]Yes
クエリ待機Query waits 待機カテゴリ別に、クエリ待機統計の階層型のドリルダウンを提供しますProvides hierarchical drill-down into the query wait statistics by wait category. [はい]Yes [はい]Yes

Intelligent Insights レポートIntelligent Insights report

Azure SQL Database Intelligent Insights では、Azure SQL Database と Managed Instance データベースのパフォーマンスに何が起きているかを把握できます。Azure SQL Database Intelligent Insights lets you know what is happening with performance of Azure SQL Databases and Managed Instance databases. 収集されたすべてのインテリジェントな洞察を Insights パースペクティブを使用して視覚化およびアクセスできます。All Intelligent Insights collected can be visualized and accessed through the Insights perspective.

Azure SQL Analytics Insights

エラスティック プールとデータベースのレポートElastic pool and Database reports

エラスティック プールと SQL Database の両方に、指定された期間内にリソースについて収集されたすべてのデータを表示する、独自の具体的なレポートがあります。Both elastic pools and SQL Databases have their own specific reports that show all the data that is collected for the resource in the specified time.

Azure SQL Analytics データベース

Azure SQL エラスティック プール

クエリのレポートQuery reports

クエリの実行時間とクエリの待機のパースペクティブでは、クエリ レポートを介してクエリのパフォーマンスを関連付けることができます。Through the Query duration and query waits perspectives, you can correlate the performance of any query through the query report. このレポートは、異なるデータベース間で、クエリのパフォーマンスを比較し、選択したクエリの処理速度が速いデータベースと遅いデータベースを簡単に特定できるようになります。This report compares the query performance across different databases and makes it easy to pinpoint databases that perform the selected query well versus ones that are slow.

Azure SQL Analytics のクエリ

データの分析とアラートの作成Analyze data and create alerts

Azure SQL Database のアラートの作成Creating alerts for Azure SQL Database

Azure SQL Database リソースから送られるデータを使用して簡単にアラートを作成できます。You can easily create alerts with the data coming from Azure SQL Database resources. ログ アラートで使用できる実用的なログ検索クエリをいくつか示します。Here are some useful log search queries that you can use with a log alert:

高 CPU (Azure SQL Database 上)High CPU on Azure SQL Database

AzureMetrics 
| where ResourceProvider=="MICROSOFT.SQL"
| where ResourceId contains "/DATABASES/"
| where MetricName=="cpu_percent" 
| summarize AggregatedValue = max(Maximum) by bin(TimeGenerated, 5m)
| render timechart

注意

  • このアラートを設定するための前提条件は、監視されるデータベースが診断メトリック ([すべてのメトリック] オプション) をソリューションにストリーム配信することです。Pre-requirement of setting up this alert is that monitored databases stream diagnostics metrics ("All metrics" option) to the solution.
  • 高い DTU 結果を得るために、MetricName 値の cpu_percent を dtu_consumption_percent に置き換えます。Replace the MetricName value cpu_percent with dtu_consumption_percent to obtain high DTU results instead.

高 CPU (Azure SQL Database エラスティック プール上)High CPU on Azure SQL Database elastic pools

AzureMetrics 
| where ResourceProvider=="MICROSOFT.SQL"
| where ResourceId contains "/ELASTICPOOLS/"
| where MetricName=="cpu_percent" 
| summarize AggregatedValue = max(Maximum) by bin(TimeGenerated, 5m)
| render timechart

注意

  • このアラートを設定するための前提条件は、監視されるデータベースが診断メトリック ([すべてのメトリック] オプション) をソリューションにストリーム配信することです。Pre-requirement of setting up this alert is that monitored databases stream diagnostics metrics ("All metrics" option) to the solution.
  • 高い DTU 結果を得るために、MetricName 値の cpu_percent を dtu_consumption_percent に置き換えます。Replace the MetricName value cpu_percent with dtu_consumption_percent to obtain high DTU results instead.

"過去 1 時間の平均が 95% を超える Azure SQL Database ストレージ"Azure SQL Database storage in average above 95% in the last 1 hr

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

注意

  • このアラートを設定するための前提条件は、監視されるデータベースが診断メトリック ([すべてのメトリック] オプション) をソリューションにストリーム配信することです。Pre-requirement of setting up this alert is that monitored databases stream diagnostics metrics ("All metrics" option) to the solution.
  • このクエリでは、クエリの結果が存在する (結果 > 0 である) とき、つまり条件がいくつかのデータベース上に存在するときにアラートが発生するようにアラート ルールを設定する必要があります。This query requires an alert rule to be set up to fire off an alert when there exist results (> 0 results) from the query, denoting that the condition exists on some databases. 出力は、定義された time_range 内で storage_threshold より上のデータベース リソースの一覧です。The output is a list of database resources that are above the storage_threshold within the time_range defined.
  • 出力は、定義された time_range 内で storage_threshold より上のデータベース リソースの一覧です。The output is a list of database resources that are above the storage_threshold within the time_range defined.

Intelligent Insights に対するアラートAlert on Intelligent insights

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

注意

  • このアラートを設定するための前提条件は、監視されるデータベースが SQLInsights 診断ログをソリューションにストリーム配信することです。Pre-requirement of setting up this alert is that monitored databases stream SQLInsights diagnostics log to the solution.
  • このクエリでは、結果の重複を回避するために、alert_run_interval と同じ頻度で実行するようにアラート ルールを設定する必要があります。This query requires an alert rule to be set up to run with the same frequency as alert_run_interval in order to avoid duplicate results. ルールは、クエリの結果が存在する (結果が > 0 である) ときにアラートが発生するように設定してください。The rule should be set up to fire off the alert when there exist results (> 0 results) from the query.
  • alert_run_interval をカスタマイズして、SQLInsights ログをソリューションにストリーミングするように構成したデータベースで条件が発生したかどうかをチェックする時間範囲を指定します。Customize the alert_run_interval to specify the time range to check if the condition has occurred on databases configured to stream SQLInsights log to the solution.
  • insights_string をカスタマイズして、Insights の根本原因分析テキストの出力をキャプチャします。Customize the insights_string to capture the output of the Insights root cause analysis text. これは、既存の分析情報から使用できる、ソリューションの UI に表示されるのと同じテキストです。This is the same text displayed in the UI of the solution that you can use from the existing insights. または、次のクエリを使用して、サブスクリプションに対して生成されるすべての分析情報のテキストを見ることもできます。Alternatively, you can use the query below to see the text of all Insights generated on your subscription. Insights に対するアラートを設定するために、クエリの出力を使用して特別な文字列を収集します。Use the output of the query to harvest the distinct strings for setting up alerts on Insights.
AzureDiagnostics
| where Category == "SQLInsights" and status_s == "Active" 
| distinct rootCauseAnalysis_s

Managed Instance のアラートの作成Creating alerts for Managed Instance

*Managed Instance ストレージは 90% より上です*Managed Instance storage is above 90%

let storage_percentage_treshold = 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_treshold

注意

  • このアラートを設定する際の事前要件は、監視対象の Managed Instance で、ソリューションへの ResourceUsageStats ログのストリーミングが有効になっていることです。Pre-requirement of setting up this alert is that monitored Managed Instance has the the streaming of ResourceUsageStats log enabled to the solution.
  • このクエリでは、クエリの結果が存在する (結果が 0 より多い) ときにアラートが発生するようアラート ルールを設定する必要があります。それにより、条件が Managed Instance 上に存在することが示されます。This query requires an alert rule to be set up to fire off an alert when there exist results (> 0 results) from the query, denoting that the condition exists on the Managed Instance. 出力は、Managed Instance でのストレージの消費の割合です。The output is storage percentage consumption on the Managed Instance.

次の手順Next steps