マルチテナントの Azure SQL Database SaaS アプリで Azure Monitor ログを設定して使用する

適用対象:Azure SQL Database

このチュートリアルでは、エラスティック プールおよびデータベースを監視するために、Azure Monitor ログを設定して使用します。 このチュートリアルは、パフォーマンスの監視と管理のチュートリアルを基礎とします。 Azure Monitor ログを使用して、Azure portal で提供された監視とアラート設定を拡張する方法を示します。 Azure Monitor ログでは、何千単位のエラスティック プールと何十万単位のデータベースの監視をサポートしています。 Azure Monitor ログは単一の監視ソリューションを提供し、複数の Azure サブスクリプションのさまざまなアプリケーションと Azure サービスの監視を統合することができます。

注意

この記事は最近、Log Analytics ではなく Azure Monitor ログという用語を使うように更新されました。 ログ データは引き続き Log Analytics ワークスペースに格納され、同じ Log Analytics サービスによって収集されて分析されます。 Azure Monitor のログの役割をより適切に反映させるために、用語を更新しています。 詳しくは、Azure Monitor の用語の変更に関するページをご覧ください。

このチュートリアルで学習する内容は次のとおりです。

  • Azure Monitor ログをインストールし構成する
  • Azure Monitor ログを使用してプールとデータベースを監視する

このチュートリアルを完了するには、次の前提条件を満たしておく必要があります。

SaaS のシナリオとパターン、および監視ソリューションの要件に対する影響については、パフォーマンスの監視と管理のチュートリアルに関するページを参照してください。

Azure Monitor ログ を使用してデータベースとエラスティック プールのパフォーマンスを監視および管理する

Azure SQL Database については、Azure Portal でデータベースとプールを監視してアラートを設定できます。 この組み込みの監視機能とアラート設定機能は便利ですが、リソースに固有でもあります。 つまり、大規模なインストールを監視することや、複数のリソースやサブスクリプションを統合されたビューで確認することには向いていません。

大規模なシナリオでは、監視とアラート設定に Azure Monitor ログを使用できます。 Azure Monitor は、潜在的に多数のサービスからワークスペースに収集されるログを分析できる別の Azure サービスです。 Azure Monitor ログには、オペレーション データを分析できるクエリ言語とデータ視覚化ツールが組み込まれています。 SQL Analytics ソリューションには、エラスティック プールとデータベースを監視およびアラートを設定するためのさまざまな定義済みのビューとクエリが用意されています。 Azure Monitor ログには、カスタム ビュー デザイナーも用意されています。

OMS ワークスペースは、Log Analytics ワークスペースと呼ばれるようになりました。 Log Analytics のワークスペースと分析ソリューションは、Azure portal で開きます。 Azure portal は新しいアクセス ポイントですが、一部の領域では Operations Management Suite ポータルの背後に配置される場合があります。

テナントでワークロードをシミュレートしてパフォーマンスの診断データを作成する

  1. PowerShell ISE で、..\WingtipTicketsSaaS-MultiTenantDb-master\Learning Modules\Performance Monitoring and Management\Demo-PerformanceMonitoringAndManagement.ps1 を開きます。 このスクリプトは、このチュートリアル中にいくつかのロード生成シナリオで実行することがあるため、開いたままにしておいてください。

  2. まだ行っていない場合は、テナントのバッチをプロビジョニングすることで、監視コンテキストの関連性が高まります。 このプロセスには数分かかります。

    a. $DemoScenario = 1(テナントのバッチのプロビジョニング) を設定します。

    b. F5 キーを押してスクリプトを実行し、追加の 17 テナントをデプロイします。

  3. ロード ジェネレーターを開始して、すべてのテナントで疑似ロードを実行します。

    a. $DemoScenario = 2(標準強度負荷の生成 (およそ 30 DTU)) を設定します。

    b. F5 キーを押してスクリプトを実行します。

Wingtip Tickets SaaS テナント単位データベース アプリケーションのスクリプトを入手する

Wingtip Tickets SaaS マルチテナント データベースのスクリプトとアプリケーション ソース コードは、WingtipTicketsSaaS-DbPerTenant GitHub リポジトリで入手できます。 Wingtip Tickets PowerShell スクリプトをダウンロードし、ブロックを解除する手順については、一般的なガイダンスに関する記事をご覧ください。

Log Analytics ワークスペースと Azure SQL Analytics ソリューションをインストールして構成する

Azure Monitor は別個のサービスとして構成する必要があります。 Azure Monitor ログは、ログ データ、テレメトリ、およびメトリックを Log Analytics ワークスペース内に収集します。 Azure の他のリソースと同じように、Log Analytics ワークスペースを作成する必要があります。 ワークスペースは監視対象のアプリケーションと同じリソース グループ内に作成する必要はありません。 多くの場合は、そうすることが最も理にかなっています。 Wingtip Tickets アプリの場合、単一のリソース グループを使用することで、アプリケーションによってワークスペースが確実に削除されます。

  1. PowerShell ISE で、..\WingtipTicketsSaaS-MultiTenantDb-master\Learning Modules\Performance Monitoring and Management\Log Analytics\Demo-LogAnalytics.ps1 を開きます。
  2. F5 キーを押してスクリプトを実行します。

Azure portal で Azure Monitor ログを開くことができるようになりました。 Log Analytics ワークスペース内にテレメトリが収集されて視覚化されるまで、数分かかります。 システムが診断データを収集する時間を長くすればするほど、エクスペリエンスの関連性が高くなります。

Log Analytics ワークスペースと SQL Analytics ソリューションを使用してプールとデータベースを監視する

この演習では、Azure portal で Log Analytics ワークスペースを開き、データベースとプールで収集されるテレメトリを調べます。

  1. Azure ポータルにアクセスします。 [すべてのサービス] を選択して Log Analytics ワークスペースを開きます。 Log Analytics を検索します。

    Open Log Analytics workspace

  2. wtploganalytics-<user> という名前のワークスペースを選択します。

  3. [概要] を選択して、Azure portal で Log Analytics ソリューションを開きます。

    Overview

    重要

    ソリューションがアクティブになるまで数分かかる場合があります。

  4. [Azure SQL Analytics] タイルを選択して開きます。

    Overview tile

  5. ソリューションのビューは横方向にスクロールし、固有の内部スクロール バーが下部に表示されます。 必要に応じてページを更新します。

  6. タイルまたは個別のデータベースをクリックしてドリルダウン エクスプローラーを開き、概要ページを確認します。

    Log analytics dashboard

  7. フィルター設定を切り替えて、時間の範囲を変更します。 このチュートリアルでは、 [過去 1 時間] を選択します。

    Time filter

  8. クエリの使用状況と該当のデータベースのメトリックを調査する個々のデータベースを選択します。

    Database analytics

  9. 使用状況のメトリックを表示するには、分析ページを右にスクロールします。

    Database metrics

  10. 分析ページを左にスクロールして、[リソース情報] 一覧のサーバー タイルを選択します。

    Resource Info list

    サーバー上のプールとデータベースを表示するページが開かれます。

    Server with pools and databases

  11. プールを選択します。 開かれたプール ページで、右にスクロールしてプールのメトリックを表示します。

    Pool metrics

  12. Log Analytics ワークスペースに戻り、[OMS ポータル] を選択して、このポータルでワークスペースを開きます。

    Log Analytics workspace

Log Analytics ワークスペースでは、ログとメトリック データをさらに詳細に調査できます。

Azure Monitor ログの監視とアラートは、Azure portal の各リソースで定義されているアラートとは異なり、ワークスペース内のデータに対するクエリに基づいています。 アラートがクエリに基づくようにすることで、すべてのデータベースを対象とする単一のアラートを定義でき、データベース別に 1 つずつアラートを定義する必要はありません。 クエリは、ワークスペースで利用可能なデータによってのみ制限されます。

Azure Monitor ログを使用してアラートのクエリと設定を行う方法については、Azure Monitor ログのアラート ルールの操作に関するページを参照してください。

SQL Database の Azure Monitor ログでは、ワークスペース内のデータ量に基づいて課金されます。 このチュートリアルでは、無料のワークスペースを作成しました。このワークスペースの制限は、1 日あたり 500 MB です。 この制限に達すると、データはワークスペースに追加されなくなります。

次のステップ

このチュートリアルで学習した内容は次のとおりです。

  • Azure Monitor ログをインストールし構成する
  • Azure Monitor ログを使用してプールとデータベースを監視する

テナント分析のチュートリアルを試す。

その他のリソース