監視の種類
この記事では、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 データベースの監視を開始するには、次の手順を実行します。
System Center Operations Manager コンソールで、[ 作成 ] に移動します。 |[管理パック テンプレート] をクリックし、[データベースの監視Azure SQL右クリックし、[監視ウィザードの追加] を選択します。
[監視の種類] ステップで、[Azure SQL データベース監視] を選択し、[次へ] を選択します。
[全般プロパティ] ステップで、新しい名前と説明を入力し、[移行先管理パックの選択] ドロップダウン リストから、テンプレートの保存に使用する管理パックを選択します。
新しい管理パックを作成するには、[ 新規] を選択し、ウィザードの指示に従います。
[認証モード] ステップで、 [Azure Service Principal Name](Azure サービス プリンシパル名) を選択します。
[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
[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 を自動作成する)
[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 リソースへのアクセス権をユーザーに付与するようなフローです。
SPN 構成ステップで、この場合は [SPN 手動で入力] オプションを選択し、[次へ] を選択し、Azure サービス プリンシパル名に関する必要な情報を入力します。
- テナント ID – SPN 概要セクションのディレクトリ (テナント) ID。
- アプリケーション ID – SPN 概要セクションのアプリケーション (クライアント) ID。
- クライアント シークレット – 特定の SPN のクライアント シークレット値。
Note
クライアント シークレット値は、作成後に 1 回だけ使用できます。 この情報を安全な場所にコピーして再利用します。
この情報は、Azure Cloud での認証用の新しい実行アカウントを作成するために使用されます。
必要に応じて、Azure PowerShell を使用して、新しい Azure Active Directory アプリケーションと Azure Service プリンシパル名を作成および構成できます。 詳細については、「方法:Azure PowerShell を使用して資格情報でのサービス プリンシパルを作成する」を参照してください。
新しい実行アカウントが作成されたら、[ SPN 手動で状態を入力 ] ステップで状態を確認し、[ 次へ] を選択します。
[必要に応じて][サーバー フィルター 一覧] ステップで、フィルター モード ([除外] または [含める] のいずれか) を選択し、フィルター マスクの種類 (ワイルドカードまたは正規表現) を選択し、監視リストから除外または含めるSQL Server名と一致するフィルターマスクを入力し、[追加] を選択し、[次へ] を選択します。
ワイルドカード フィルター マスクの種類には、サーバー名に小文字、数字、および '-' 文字のみを含めることができますが、'\' 文字で開始または終了したり、63 文字を超えたりすることはできません。 サーバー除外リスト フィルター マスクにより、空白は無視されます。
正規表現 フィルター マスク型では、.NET 正規表現パターンがサポートされています。
既存のマスクを削除する場合は、それを選択して [ 削除] を選択します。
[必要に応じて] [データベース フィルター 一覧 ] ステップで、フィルター モード ( [除外] または [ 含める] のいずれか) を選択し、フィルター マスクの種類 ( ワイルドカード または 正規表現) を選択し、監視リストから除外または含めるデータベース名と一致するフィルター マスクを入力し、[ 追加] を選択し、[ 次へ] を選択します。
ワイルドカード フィルター マスクの種類を '.' または ' ' 文字で終えることはできません。',,>%,&,:,\,/,?' を含む< または制御文字。128 文字を超えることはできません。
たとえば、[除外] オプションを選択し、dev*、*test*、*stageand、dbnotmon のマスクを設定すると、監視動作は次のようになります。
データベース名 監視される、または監視されない dev 監視されない dev_sales 監視されない sales_dev Monitored テスト 監視されない test_sales 監視されない sales_test 監視されない ステージ 監視されない stage_dev Monitored dev_stage 監視されない dbnotmon 監視されない dbnotmon_sales Monitored sales_dbnotmon Monitored 正規表現 フィルター マスク型では、.NET 正規表現パターンがサポートされています。
既存のマスクを削除する場合は、それを選択して [ 削除] を選択します。
[ユーザー管理プール] ステップで、管理サーバーを含むプールを選択し、[次へ] を選択します。
[概要] ステップで、接続設定を確認し、[作成] を選択します。
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 の監視を開始するには、次の手順を実行します。
System Center Operations Manager コンソールで、[ 作成 ] に移動します。 |[管理パック テンプレート] をクリックし、[データベースの監視Azure SQL右クリックし、[監視ウィザードの追加] を選択します。
[監視の種類] ステップで、[Azure SQL データベース監視] を選択し、[次へ] を選択します。
[全般プロパティ] ステップで、新しい名前と説明を入力し、[移行先管理パックの選択] ドロップダウン リストから、テンプレートの保存に使用する管理パックを選択します。
新しい管理パックを作成するには、[ 新規 ] を選択し、ウィザードの指示に従います。
[認証モード] ステップで、 [SQL Server] を選択します。
[ 監視対象 ] ステップで、[ サーバーの追加] を選択します。
[サーバー名] フィールドに、監視するAzure SQL データベース サーバーの名前を入力し、SQL Server資格情報に関連付けられている実行アカウントを選択し、[OK] を選択します。 serveradmin ロールが必要です。
新しい実行アカウントを作成する場合は、[ 新規 ] を選択し、監視する SQL サーバーの新しい実行アカウント名と資格情報を入力します。
新しい SQL Server 認証ログインを作成する方法の詳細については、「SQL Database、SQL Managed Instance、Azure Synapse Analytics へのデータベース アクセスを承認する」を参照してください。
[次へ] を選択します。
[必要に応じて] [データベース フィルター 一覧 ] ステップで、フィルター モード ( [除外] または [ 含める] のいずれか) を選択し、フィルター マスクの種類 ( ワイルドカード または 正規表現) を選択し、監視リストから除外または含めるデータベース名と一致するフィルター マスクを入力し、[ 追加] を選択し、[ 次へ] を選択します。
ワイルドカード フィルター マスクの種類を '.' または ' ' 文字で終えることはできません。',,>%,&,:,\,/,?' を含む< または制御文字。128 文字を超えることはできません。
たとえば、[除外] オプションを選択し、dev*、*test*、*stageand、dbnotmon のマスクを設定すると、監視動作は次のようになります。
データベース名 監視される、または監視されない dev 監視されない dev_sales 監視されない sales_dev Monitored テスト 監視されない test_sales 監視されない sales_test 監視されない ステージ 監視されない stage_dev Monitored dev_stage 監視されない dbnotmon 監視されない dbnotmon_sales Monitored sales_dbnotmon Monitored 正規表現 フィルター マスク型では、.NET 正規表現パターンがサポートされています。
既存のマスクを削除する場合は、それを選択して [ 削除] を選択します。
[ユーザー管理プール] ステップで、管理サーバーを含むプールを選択し、[次へ] を選択します。
[概要] ステップで、接続設定を確認し、[作成] を選択します。
関連項目
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示