監視の種類

この記事では、Azure SQL データベース用管理パックで使用できる監視の種類について説明します。

Azure REST API と T-SQL の監視の違い

Azure REST API の監視と T-SQL の監視の主な違いは、T-SQL の場合、ワークフローのセット全体を使用できるのに対し、Azure REST API 場合、API の制限があるため、次のワークフローが無効になっていることです。

  • ルール
    • Azure SQL DB: DB Transactions Locks Count (Azure SQL DB: DB トランザクションのロック数)
    • Azure SQL DB: DB Sessions Count (Azure SQL DB: DB セッション数)
    • Azure SQL DB: DB Sessions Average Memory Consumption (MB) (Azure SQL DB: DB セッションの平均メモリ使用量 (MB))
    • Azure SQL DB: DB Sessions Rows Returned (Azure SQL DB: 返された DB セッションの行数)
    • Azure SQL DB: DB Sessions Total CPU Time (ms) (Azure SQL DB: DB セッションの合計 CPU 時間 (ms))
    • Azure SQL DB: DB Sessions Total Read/Write Operations (Azure SQL DB: DB セッションの合計読み取りおよび書き込み操作数)
    • Azure SQL DB: DB Sessions Total Memory Consumption (MB) (Azure SQL DB: DB セッションの合計メモリ消費量 (MB))
    • Azure SQL DB: DB Transactions Max Log Usage (MB) (Azure SQL DB: DB トランザクションの最大ログ使用量 (MB))
    • Azure SQL DB: DB Transactions Max Running Time (minutes) (Azure SQL DB: DB トランザクションの最大実行時間 (分))
    • Azure SQL DB: DB Blocked by Firewall Count (Azure SQL DB: ファイアウォールによって DB がブロックされた回数)
    • Azure SQL DB: DB Failed Connections Count (Azure SQL DB: DB の失敗した接続数)
    • Azure SQL DB: DB Successful Connections Count (Azure SQL DB: DB の成功した接続数)
    • Azure SQL DB: DB Deadlocks Count (Azure SQL DB: DB のデッドロック数)
  • モニター
    • トランザクションのロック数
    • セッション数
    • セッションの平均メモリ
    • セッションの返された行数
    • セッションの合計 CPU 時間
    • セッションの合計 I/O
    • セッションの合計メモリ
    • トランザクション ログの使用領域
    • トランザクションの実行時間
    • 失敗した接続数
    • ファイアウォールによってブロックされた接続数

Azure REST API でこれらのワークフローを有効にするには、[ T-SQL 監視を使用 する] チェック ボックスをオンにし、「 Azure REST API 監視の構成」で提供されている必要な T-SQL スクリプトを実行します。

Note

System Center Operations Manager を Azure リソースに接続するには、サーバーで TLS 1.2 が有効になっている必要があります。 Azure AD Connect の TLS 1.2 適用でプロトコルの状態を確認します。

Azure REST API の監視の構成

Azure REST API の監視には、さまざまな監視ターゲットが用意されています。

Azure REST API を使用する場合、Azure SQL Database 用管理パックには、Azure AD での認証に Azure AD アプリケーション (つまり、サービス プリンシパル名) が使用されます。これにより、Azure Resource Management API にアクセスできるようになります。 使用するアカウントには、 所有者 ロール (またはそれ以上) または次のいずれかのロールが必要です。

  • Active Directory 管理者
  • サービス管理者または共同管理者

詳細については、「リソースにアクセスできる Azure AD アプリケーションとサービス プリンシパルをポータルで作成する」のガイダンスに従って、サービス プリンシパルを作成します。

Azure REST API を使用してAzure SQL データベースの監視を開始するには、次の手順を実行します。

  1. System Center Operations Manager コンソールで、[ 作成 ] に移動します。 |[管理パック テンプレート] をクリックし、[データベースの監視Azure SQL右クリックし、[監視ウィザードの追加] を選択します。

    REST API 監視ウィザードを示すスクリーンショット。

  2. [監視の種類] ステップで、[Azure SQL データベース監視] を選択し、[次へ] を選択します。

    監視ターゲットを示すスクリーンショット。

  3. [全般プロパティ] ステップで、新しい名前と説明を入力し、[移行先管理パックの選択] ドロップダウン リストから、テンプレートの保存に使用する管理パックを選択します。

    新しい管理パックを作成するには、[ 新規] を選択し、ウィザードの指示に従います。

    [全般] プロパティを示すスクリーンショット。

  4. [認証モード] ステップで、 [Azure Service Principal Name](Azure サービス プリンシパル名) を選択します。

    認証モードを示すスクリーンショット。

  5. [Azure エンドポイント] ステップで、 [Enable checkbox if you want to change default Azure Endpoints](既定の Azure エンドポイントを変更する場合はチェック ボックスをオンにする) を選択し、必要に応じて既定の Azure エンドポイントを変更します。

    Azure サービス プリンシパル名を作成するための既定のエンドポイントは次のとおりです。

    • 証明機関 URI: https://login.windows.net

    • 管理サービス URI: https://management.azure.com

      ADO.NET 4.5 の 1433 を超えるポートに従って、ファイアウォール ポート 1433 を使用する必要があります。 このエンドポイントは Azure REST API にも使用されます。

    • データベース リソース URI: https://database.windows.net

    • Graph API リソース URI: https://graph.windows.net

    Azure エンドポイントを示すスクリーンショット。

  6. [SPN Configuration](SPN の構成) ステップで、SPN の構成を選択します。

    • [Auto-Create SPN](SPN を自動作成する)

      Azure REST API を使用して、Azure SQL MP ライブラリによって Azure サービス プリンシパル名を自動的に作成する場合は、このオプションを選択します。 このオプションをオンにすると、指定した Azure サービス プリンシパル名で新しい実行アカウントが作成されます。

    • [Use Existing Run As Profile](既存の実行プロファイルを使用する)

      独自の Azure サービス プリンシパル名を使用する場合は、このオプションを選択します。

    • [Enter SPN Manually](SPN を手動で入力する)

      適切な Azure サービス プリンシパル名の資格情報を使用して実行プロファイル (PowerShell など) を既に構成している場合は、このオプションを選択します。

    これらのオプションのいずれについても、 [Use T-SQL for monitoring](監視に T-SQL を使用する) チェックボックスをオンにして追加の監視情報を受け取り、Azure サブスクリプションの調整の効果を無効にすることができます。 詳細については、「Azure REST API と T-SQL の監視の違い」を参照してください。

    [Auto-Create SPN](SPN を自動作成する)

    SPN 構成

    [Auto-Create SPN](SPN を自動作成する) オプションを選択すると、 [Microsoft Azure サインイン] ウィンドウが表示されます。 このウィンドウで、職場、学校、または個人の Microsoft アカウントの資格情報を入力し、[ 次へ] を選択してフォームに入力します。

    アカウントへのサインインを示すスクリーンショット。

    このステップで、インターネット セキュリティの警告を受け取る場合があります。 これを解決するには、 [インターネットのプロパティ] を開き、 [セキュリティ] タブに移動して、インターネット ゾーンのセキュリティ レベルを下げます。

    セキュリティ レベルを示すスクリーンショット。

    Azure AD アプリケーションが正常に作成されると、 SPN 状態の自動作成 ステップで認証情報が表示されます。

    ヒント

    この情報は一度しか取得できません。 この情報は、再利用のために安全な場所に保存してください。

    認証情報を示すスクリーンショット。

    [Subscription Permissions](サブスクリプションのアクセス許可) ステップで、作成した Azure サービス プリンシパル名を追加する Azure サブスクリプションを選択します。

    サブスクリプションのアクセス許可を示すスクリーンショット。

    既存の実行プロファイルを使用する

    既存の実行プロファイルを使用するには、 SPN 構成 手順で [ 既存の実行プロファイルを使用 ] オプションを選択し、[ 次へ] を選択し、Azure サービス プリンシパル名に関連付けられている既存の実行アカウントを選択します。 このアカウントは、Azure クラウドでの認証に使用されます。

    既存の実行アカウントを示すスクリーンショット。

    SPN を手動で入力する

    手順に従ってアプリケーションを登録し、Azure portalを使用して手動で SPN を作成し、リソースにアクセスできる Azure AD アプリケーションとサービス プリンシパルを作成します

    ヒント

    Web URI リダイレクトはスキップできます。このパラメーターは監視には必要ありません。

    [IAM アクセス] ウィンドウで、Azure portal内のそれぞれのAzure SQL DB サーバーの [閲覧者] ロールを SPN に割り当てます。 ロールの割り当てフローは、Azure portalを使用して Azure リソースへのアクセス権をユーザーに付与するようなフローです。

    Azure portalで手動で SPN アクセス許可が付与されたスクリーンショット。

    SPN 構成ステップで、この場合は [SPN 手動で入力] オプションを選択し、[次へ] を選択し、Azure サービス プリンシパル名に関する必要な情報を入力します。

    • テナント ID – SPN 概要セクションのディレクトリ (テナント) ID。
    • アプリケーション ID – SPN 概要セクションのアプリケーション (クライアント) ID。
    • クライアント シークレット – 特定の SPN のクライアント シークレット値。

    Note

    クライアント シークレット値は、作成後に 1 回だけ使用できます。 この情報を安全な場所にコピーして再利用します。

    この情報は、Azure Cloud での認証用の新しい実行アカウントを作成するために使用されます。

    SPN を手動で入力するを示すスクリーンショット。

    必要に応じて、Azure PowerShell を使用して、新しい Azure Active Directory アプリケーションと Azure Service プリンシパル名を作成および構成できます。 詳細については、「方法:Azure PowerShell を使用して資格情報でのサービス プリンシパルを作成する」を参照してください。

    新しい実行アカウントが作成されたら、[ SPN 手動で状態を入力 ] ステップで状態を確認し、[ 次へ] を選択します。

    SPN の状態を示すスクリーンショット。

  7. [必要に応じて][サーバー フィルター 一覧] ステップで、フィルター モード ([除外] または [含める] のいずれか) を選択し、フィルター マスクの種類 (ワイルドカードまたは正規表現) を選択し、監視リストから除外または含めるSQL Server名と一致するフィルターマスクを入力し、[追加] を選択し、[次へ] を選択します。

    ワイルドカード フィルター マスクの種類には、サーバー名に小文字、数字、および '-' 文字のみを含めることができますが、'\' 文字で開始または終了したり、63 文字を超えたりすることはできません。 サーバー除外リスト フィルター マスクにより、空白は無視されます。

    サーバー除外リストワイルドカード SPN のスクリーンショット。

    正規表現 フィルター マスク型では、.NET 正規表現パターンがサポートされています。

    サーバー除外リスト正規表現 SPN のスクリーンショット。

    既存のマスクを削除する場合は、それを選択して [ 削除] を選択します。

  8. [必要に応じて] [データベース フィルター 一覧 ] ステップで、フィルター モード ( [除外] または [ 含める] のいずれか) を選択し、フィルター マスクの種類 ( ワイルドカード または 正規表現) を選択し、監視リストから除外または含めるデータベース名と一致するフィルター マスクを入力し、[ 追加] を選択し、[ 次へ] を選択します。

    ワイルドカード フィルター マスクの種類を '.' または ' ' 文字で終えることはできません。',,>%,&,:,\,/,?' を含む< または制御文字。128 文字を超えることはできません。

    データベース除外リストワイルドカード SPN のスクリーンショット。

    たとえば、[除外] オプションを選択し、dev*、*test*、*stageanddbnotmon のマスクを設定すると、監視動作は次のようになります。

    データベース名 監視される、または監視されない
    dev 監視されない
    dev_sales 監視されない
    sales_dev Monitored
    テスト 監視されない
    test_sales 監視されない
    sales_test 監視されない
    ステージ 監視されない
    stage_dev Monitored
    dev_stage 監視されない
    dbnotmon 監視されない
    dbnotmon_sales Monitored
    sales_dbnotmon Monitored

    正規表現 フィルター マスク型では、.NET 正規表現パターンがサポートされています。

    データベース除外リスト正規表現 SQL のスクリーンショット。

    既存のマスクを削除する場合は、それを選択して [ 削除] を選択します。

  9. [ユーザー管理プール] ステップで、管理サーバーを含むプールを選択し、[次へ] を選択します。

    管理プールのスクリーンショット。

  10. [概要] ステップで、接続設定を確認し、[作成] を選択します。

    概要情報のスクリーンショット。

  11. Azure サービス プリンシパル名を使用するときに T-SQL の監視を実行するには、監視対象のデータベースごとに個別のユーザーを作成し、次のクエリを実行してこのユーザーに dbmanager ロールを付与します。

    /*Run this on [master] database.
    Replace the 'ApplicationName' parameter with that specified in the Application Name field. See figure above.*/
    CREATE USER [ApplicationName] FROM EXTERNAL PROVIDER;
    exec sp_addrolemember 'dbmanager', 'ApplicationName';
    
    /*Run this on all [user] databases.
    Replace the 'ApplicationName' parameter with that specified in the Application Name field. See figure above.*/
    CREATE USER [ApplicationName] FROM EXTERNAL PROVIDER;
    GRANT VIEW DATABASE STATE TO [ApplicationName];
    

    SQL Server Management Studio でこれらのクエリを実行するには、Active Directory 管理者として Azure SQL サーバーに接続します。

    各データベースの Azure サービス プリンシパル名にアクセス許可を割り当てると、REST + T-SQL モードで T-SQL の監視は正しく機能するようになります。

    geo レプリカの T-SQL 監視を適切に行う場合は、各レプリカ サーバーで SQL 管理者 権限を付与します。

T SQL の監視の構成

T-SQL は、特定の Azure SQL Database サーバーの監視を目的としています。 このモードを選択すると、検出、ルール、モニターなどの監視ワークフローには、データソース内に T-SQL クエリが使用されます。

Note

各ワークフロー データソースにより、SQL Server の資格情報のペア (ログインとパスワード) ごとに新しい SQL 接続が作成されます。 SQL 接続はデータベース トランザクション ユニットとしてカウントされ、課金に影響します。 詳細については、「Azure SQL Database と Azure Synapse Analytics サーバーのリソース制限」を参照してください。

T-SQL クエリを使用して Azure SQL Database の監視を開始するには、次の手順を実行します。

  1. System Center Operations Manager コンソールで、[ 作成 ] に移動します。 |[管理パック テンプレート] をクリックし、[データベースの監視Azure SQL右クリックし、[監視ウィザードの追加] を選択します。

    T-SQL 監視のスクリーンショット。

  2. [監視の種類] ステップで、[Azure SQL データベース監視] を選択し、[次へ] を選択します。

    Azure SQL監視の種類のスクリーンショット。

  3. [全般プロパティ] ステップで、新しい名前と説明を入力し、[移行先管理パックの選択] ドロップダウン リストから、テンプレートの保存に使用する管理パックを選択します。

    新しい管理パックを作成するには、[ 新規 ] を選択し、ウィザードの指示に従います。

    [全般] 設定のスクリーンショット。

  4. [認証モード] ステップで、 [SQL Server] を選択します。

    T-SQL モードのスクリーンショット。

  5. [ 監視対象 ] ステップで、[ サーバーの追加] を選択します。

    監視するサーバーのスクリーンショット。

  6. [サーバー名] フィールドに、監視するAzure SQL データベース サーバーの名前を入力し、SQL Server資格情報に関連付けられている実行アカウントを選択し、[OK] を選択しますserveradmin ロールが必要です。

    サーバー名のスクリーンショット。

    新しい実行アカウントを作成する場合は、[ 新規 ] を選択し、監視する SQL サーバーの新しい実行アカウント名と資格情報を入力します。

    新しい SQL Server 認証ログインを作成する方法の詳細については、「SQL Database、SQL Managed Instance、Azure Synapse Analytics へのデータベース アクセスを承認する」を参照してください。

  7. [次へ] を選択します。

  8. [必要に応じて] [データベース フィルター 一覧 ] ステップで、フィルター モード ( [除外] または [ 含める] のいずれか) を選択し、フィルター マスクの種類 ( ワイルドカード または 正規表現) を選択し、監視リストから除外または含めるデータベース名と一致するフィルター マスクを入力し、[ 追加] を選択し、[ 次へ] を選択します。

    ワイルドカード フィルター マスクの種類を '.' または ' ' 文字で終えることはできません。',,>%,&,:,\,/,?' を含む< または制御文字。128 文字を超えることはできません。

    データベース除外リストワイルドカード SQL 手動テンプレートのスクリーンショット。

    たとえば、[除外] オプションを選択し、dev*、*test*、*stageanddbnotmon のマスクを設定すると、監視動作は次のようになります。

    データベース名 監視される、または監視されない
    dev 監視されない
    dev_sales 監視されない
    sales_dev Monitored
    テスト 監視されない
    test_sales 監視されない
    sales_test 監視されない
    ステージ 監視されない
    stage_dev Monitored
    dev_stage 監視されない
    dbnotmon 監視されない
    dbnotmon_sales Monitored
    sales_dbnotmon Monitored

    正規表現 フィルター マスク型では、.NET 正規表現パターンがサポートされています。

    データベース除外リスト正規表現手動テンプレートのスクリーンショット。

    既存のマスクを削除する場合は、それを選択して [ 削除] を選択します。

  9. [ユーザー管理プール] ステップで、管理サーバーを含むプールを選択し、[次へ] を選択します。

    T-SQL 管理プールのスクリーンショット。

  10. [概要] ステップで、接続設定を確認し、[作成] を選択します。

関連項目