Azure Monitor の SQL Server 正常性チェック ソリューションを使用して SQL 環境を最適化する
SQL 正常性チェック ソリューションを使用して、サーバー環境のリスクと正常性を定期的に評価できます。 この記事は、潜在的な問題に対して是正措置を講じることができるように、ソリューションをインストールするのに役立ちます。
このソリューションは、デプロイされたサーバー インフラストラクチャに固有の推奨事項の優先順位付けされた一覧を提供します。 推奨事項は、リスクをすばやく理解し、是正措置を取るのに役立つ 6 つの重点領域に分類されます。
推奨事項は、何千もの顧客訪問から Microsoft エンジニアが得た知識と経験に基づいています。 各推奨事項では、問題が重要になる理由と、推奨される変更を実装する方法に関するガイダンスを提供します。
組織にとって最も重要なフォーカス領域を選択し、リスクのない正常な環境の実行に向けた進行状況を追跡できます。
ソリューションを追加し、評価が完了すると、環境内のインフラストラクチャの SQL 正常性チェック ダッシュボードにフォーカス領域の概要情報が表示されます。 次のセクションでは、SQL 正常性チェック ダッシュボードの情報を使用する方法について説明します。ここでは、SQL Server インフラストラクチャに対して推奨されるアクションを表示して実行できます。
SQL 正常性チェック ダッシュボードのイメージ
前提条件
SQL 正常性チェック ソリューションでは、Microsoft Monitoring Agent (MMA) がインストールされている各コンピューターに、サポートされているバージョンの .NET Framework 4.6.2 がインストールされている必要があります。 MMA エージェントは、System Center 2016 - Operations Manager および Operations Manager 2012 R2、および Azure Monitor によって使用されます。
このソリューションでは、SQL Server バージョン 2012、2014、2016、2017、および 2019 がサポートされています。
Azure portal の Azure Marketplace から SQL 正常性チェック ソリューションを追加する Log Analytics ワークスペース。 ソリューションをインストールするには、Azure サブスクリプションの管理者または共同作成者である必要があります。
注
ソリューションを追加すると、AdvisorAssessment.exe ファイルがエージェントを含むサーバーに追加されます。 構成データが読み取られ、処理のためにクラウドの Azure Monitor に送信されます。 受信したデータにロジックが適用され、クラウド サービスによってデータが記録されます。
SQL Server サーバーに対して正常性チェックを実行するには、サポートされている次のいずれかの方法を使用して、エージェントと Azure Monitor への接続が必要です。
- System Center 2016 - Operations Manager または Operations Manager 2012 R2 によってサーバーがまだ監視されていない場合は、Microsoft Monitoring Agent (MMA) をインストールします。
- System Center 2016 - Operations Manager または Operations Manager 2012 R2 で監視されていて、管理グループが Azure Monitor と統合されていない場合、サーバーを Log Analytics とマルチホームしてデータを収集し、サービスに転送し、Operations Manager によって監視することができます。
- それ以外の場合、Operations Manager 管理グループがサービスと統合されている場合は、ワークスペースでソリューションを有効にした後、サービスによるデータ収集のためにドメインコントローラーを追加する必要があります。その際は、の手順「エージェントで管理されたコンピューターを追加」に従ってください。
Operations Manager 管理グループに報告し、データを収集し、割り当てられた管理サーバーに転送する SQL Server 上のエージェントは、管理サーバーから Azure Monitor に直接送信されます。 データは Operations Manager データベースに書き込まれません。
SQL Server が Operations Manager によって監視されている場合は、Operations Manager 実行アカウントを構成する必要があります。 詳細については、以下 Azure Monitor の Operations Manager 実行アカウントを参照してください。
SQL 正常性チェックのデータ収集の詳細
SQL 正常性チェックでは、有効にしたエージェントを使用して、次のソースからデータが収集されます。
- Windows Management Instrumentation (WMI)
- Registry
- 性能カウンター
- SQL Server 動的管理ビューの結果
データは SQL Server で収集され、7 日ごとに Log Analytics に転送されます。
Log Analytics の Operations Manager 実行アカウント
Log Analytics では、Operations Manager エージェントと管理グループを使用して、Log Analytics サービスにデータを収集して送信します。 Log Analytics は、付加価値サービスを提供するワークロード用の管理パックに基づいています。 各ワークロードには、ドメイン ユーザー アカウントなどの異なるセキュリティ コンテキストで管理パックを実行するために、ワークロード固有の特権が必要です。 Operations Manager の Run As アカウントを構成して、資格情報を指定する必要があります。
次の情報を使用して、SQL 正常性チェックの Operations Manager 実行アカウントを設定します。
SQLヘルスチェック用の実行アカウントを設定する
SQL Server 管理パックを既に使用している場合は、その実行構成を使用する必要があります。
オペレーション コンソールで SQL 実行アカウントを構成するには
注
既定では、管理パックのワークフローはローカル システム アカウントのセキュリティ コンテキストで実行されます。 Operations Manager 管理グループに直接報告するのではなく、サービスに直接接続されている Microsoft Monitoring Agent を使用している場合は、以下の手順 1 ~ 5 をスキップし、ユーザー名として NT AUTHORITY\SYSTEM を指定して T-SQL または PowerShell のサンプルを実行します。
Operations Manager でオペレーション コンソールを開き、[管理 ] をクリックします。
実行構成で、プロファイルをクリックし、SQL Assessment 実行プロファイル 開きます。
[実行アカウント] ページの [追加] をクリックします。
Windows 実行アカウントで、SQL Server に必要な資格情報を含むものを選択するか、[新しい] をクリックして作成します。
注
実行アカウントの種類は Windows である必要があります。 実行アカウントは、SQL Server インスタンスをホストするすべての Windows サーバーのローカル管理者グループにも含まれている必要があります。
[保存] をクリックします。
各 SQL Server インスタンスで次の T-SQL サンプルを変更して実行し、実行アカウントが正常性チェックを実行するために必要な最小限のアクセス許可を付与します。 ただし、実行アカウントが既に SQL Server インスタンスの sysadmin サーバー ロールの一部である場合は、これを行う必要はありません。
---
-- Replace <UserName> with the actual user name being used as Run As Account.
USE master
-- Create login for the user, comment this line if login is already created.
CREATE LOGIN [<UserName>] FROM WINDOWS
-- Grant permissions to user.
GRANT VIEW SERVER STATE TO [<UserName>]
GRANT VIEW ANY DEFINITION TO [<UserName>]
GRANT VIEW ANY DATABASE TO [<UserName>]
-- Add database user for all the databases on SQL Server Instance, this is required for connecting to individual databases.
-- NOTE: This command must be run anytime new databases are added to SQL Server instances.
EXEC sp_msforeachdb N'USE [?]; CREATE USER [<UserName>] FOR LOGIN [<UserName>];'
Windows PowerShell を使用して SQL 実行アカウントを構成するには
PowerShell ウィンドウを開き、情報を使用して更新した後、次のスクリプトを実行します。
import-module OperationsManager
New-SCOMManagementGroupConnection "<your management group name>"
$profile = Get-SCOMRunAsProfile -DisplayName "SQL Assessment Run As Profile"
$account = Get-SCOMrunAsAccount | Where-Object {$_.Name -eq "<your run as account name>"}
Set-SCOMRunAsProfile -Action "Add" -Profile $Profile -Account $Account
推奨事項の優先順位付け方法を理解する
すべての推奨事項には、推奨事項の相対的な重要度を識別する重み付け値が与えられます。 最も重要な 10 個の推奨事項のみが表示されます。
重みの計算方法
重み付けは、次の 3 つの重要な要因に基づく集計値です。
- 確率、特定された問題がトラブルを引き起こす可能性です。 高い確率は、推奨事項の全体的なスコアが大きくなると同じです。
- 問題が発生した場合、その影響が組織に及ぼす度合いは であり、 の結果をもたらします。 影響が大きいほど、推奨事項の全体的なスコアが大きくなります。
- 推奨事項を実装するために必要な 作業。 より高い作業量は、推奨事項の全体的なスコアが小さい場合と同じになります。
各推奨事項の重み付けは、各フォーカス領域で使用可能な合計スコアに対する割合として表されます。 たとえば、セキュリティとコンプライアンスのフォーカス領域の推奨事項のスコアが 5%の場合、その推奨事項を実装すると、全体的なセキュリティとコンプライアンスのスコアが 5%増加します。
フォーカス領域
セキュリティとコンプライアンスの - この領域では、潜在的なセキュリティの脅威と侵害、企業ポリシー、技術、法律、規制のコンプライアンス要件に関する推奨事項を示します。
可用性とビジネス継続性の - この領域では、サービスの可用性、インフラストラクチャの回復性、ビジネス保護に関する推奨事項を示します。
パフォーマンスとスケーラビリティの - この領域では、組織の IT インフラストラクチャの成長を支援し、IT 環境が現在のパフォーマンス要件を満たし、変化するインフラストラクチャのニーズに対応できるようにするための推奨事項を示します。
アップグレード、移行、展開の - この領域では、SQL Server を既存のインフラストラクチャにアップグレード、移行、および展開するのに役立つ推奨事項を示します。
運用と監視の - この領域には、IT 運用の合理化、予防メンテナンスの実装、パフォーマンスの最大化に役立つ推奨事項が示されています。
変更と構成管理の - この領域では、日常の運用を保護し、変更がインフラストラクチャに悪影響を及ぼさないようにし、変更管理手順を確立し、システム構成を追跡および監査するための推奨事項を示します。
すべてのフォーカス領域で 100% を獲得することを目指す必要がありますか?
その必要は必ずしもありません。 推奨事項は、何千もの顧客訪問にわたって Microsoft エンジニアが得た知識と経験に基づいています。 ただし、2 つのサーバー インフラストラクチャは同じではありません。具体的な推奨事項は、ユーザーに多かれ少なかれ関連性が高い場合があります。 たとえば、仮想マシンがインターネットに公開されていない場合、一部のセキュリティに関する推奨事項の関連性が低い場合があります。 一部の可用性に関する推奨事項は、優先順位の低いアドホック データの収集とレポートを提供するサービスにはあまり関連性が低い場合があります。 成熟したビジネスにとって重要な問題は、スタートアップにとってあまり重要ではない可能性があります。 優先するフォーカス領域を特定し、時間の経過と同時にスコアがどのように変化するかを確認できます。
すべての推奨事項には、それが重要な理由に関するガイダンスが含まれています。 このガイダンスを使用して、IT サービスの性質と組織のビジネス ニーズを考えると、推奨事項の実装が適切かどうかを評価する必要があります。
ヘルスチェックの重点領域に関する推奨事項を活用する
Azure Monitor で評価ソリューションを使用するには、そのソリューションをインストールしておく必要があります。 インストール後、Azure portal の Azure Monitor の [の概要] ページの [SQL 正常性チェック] タイルを使用して、推奨事項の概要を表示できます。
インフラストラクチャのコンプライアンス評価の概要を表示し、推奨事項をドリルダウンします。
フォーカス領域の推奨事項を表示し、是正措置を実行するには
- https://portal.azure.comで Azure portal にサインインします。
- Azure portal で、左下隅にある [その他のサービス ] をクリックします。 リソースの一覧に、「Monitor」と入力します。 入力を始めると、入力内容に基づいて、一覧がフィルター処理されます。 [モニター] を選択します。
- メニューの [Insights] セクションで、[More] を選択します。
- [の概要] ページで、[SQL正常性チェック] タイルをクリックします。
- [健康診断] ページで、任意のフォーカスエリアセクションの概要情報を確認し、1つをクリックすると、そのフォーカスエリアの推奨事項を表示できます。
- どのフォーカス領域ページでも、環境に対して行われた優先順位付けされた推奨事項を表示できます。
影響を受けるオブジェクト の下の推奨事項をクリックして、推奨される理由の詳細を表示します。
SQLヘルスチェックの推奨事項を示すイメージの - [推奨されるアクション] で提案された修正措置実行できます。 項目が対処されると、後の評価では、推奨されるアクションが実行されたことが記録され、コンプライアンス スコアが上がります。 修正された項目は、渡されたオブジェクト として表示されます。
推奨事項を無視する
無視する推奨事項がある場合は、Azure Monitor で使用するテキスト ファイルを作成して、推奨事項が評価結果に表示されないようにすることができます。
無視する推奨事項を特定するには
Azure Monitor メニューで、ログ をクリックします。
次のクエリを使用して、環境内のコンピューターで失敗した推奨事項を一覧表示します。
SQLAssessmentRecommendation | where RecommendationResult == "Failed" | sort by Computer asc | project Computer, RecommendationId, Recommendation
ログ クエリを示すスクリーンショットを次に示します。
失敗した推奨事項無視する推奨事項を選択します。 次の手順では、RecommendationId の値を使用します。
IgnoreRecommendations.txt テキスト ファイルを作成して使用するには
- IgnoreRecommendations.txtという名前のファイルを作成します。
- Azure Monitor で無視する各推奨事項の各 RecommendationId を個別の行に貼り付けて入力し、ファイルを保存して閉じます。
- Azure Monitor で推奨事項を無視する各コンピューターの次のフォルダーにファイルを配置します。
- Microsoft Monitoring Agent がインストールされているコンピューター (直接または Operations Manager 経由で接続されている場合) - SystemDrive:\Program Files\Microsoft Monitoring Agent\Agent
- Operations Manager 管理サーバー - SystemDrive:\Program Files\Microsoft System Center 2012 R2\Operations Manager\Server
- Operations Manager 2016 管理サーバー - SystemDrive:\Program Files\Microsoft System Center 2016\Operations Manager\Server
推奨事項が無視されることを確認するには
次回のスケジュールされた評価の実行後、既定では 7 日ごとに、指定された推奨事項は [無視] とマークされ、評価ダッシュボードには表示されません。
次のログ検索クエリを使用して、無視されたすべての推奨事項を一覧表示できます。
SQLAssessmentRecommendation | where RecommendationResult == "Ignored" | sort by Computer asc | project Computer, RecommendationId, Recommendation
無視された推奨事項を後で表示する場合は、IgnoreRecommendations.txt ファイルを削除するか、RecommendationID を削除します。
よく寄せられる質問
SQL Assessment ソリューションはどんなチェックを実行するのですか?
- 次のクエリは、現在実行されているすべてのチェックの説明を示しています。
SQLAssessmentRecommendation
| distinct RecommendationId, FocusArea, ActionArea, Recommendation, Description
| sort by FocusArea,ActionArea, Recommendation
その後、結果を Excel にエクスポートして詳細を確認できます。
ヘルスチェックはどのくらいの頻度で実行されますか?
- チェックは 7 日ごとに実行されます。
チェックを実行する頻度を構成する方法はありますか。
- 現時点ではできません。
SQL 正常性チェック ソリューションを追加した後に別のサーバーが検出された場合、そのサーバーはチェックされますか?
- はい。検出されると、7 日おきにチェックされます。
サーバーが使用停止になった場合、正常性チェックから削除されるのはいつですか?
- サーバーが 3 週間データを送信しない場合は、削除されます。
データ収集を行うプロセスの名前は何ですか?
- AdvisorAssessment.exe
データの収集にはどのくらいの時間がかかりますか?
- サーバー上の実際のデータ収集には約 1 時間かかります。 SQL インスタンスまたはデータベースの数が多いサーバーでは、時間がかかる場合があります。
収集されるデータの種類
- 次の種類のデータが収集されます。
- WMI
- Registry
- パフォーマンス カウンター
- SQL 動的管理ビュー (DMV)。
データを収集するタイミングを構成する方法はありますか。
- 現時点ではできません。
実行アカウントを構成する必要がある理由
- SQL Server では、少数の SQL クエリが実行されます。 それらを実行するには、SQL に対する VIEW SERVER STATE アクセス許可を持つ実行アカウントを使用する必要があります。 また、WMI に対してクエリを実行するには、ローカル管理者の資格情報が必要です。
上位 10 件の推奨事項のみを表示する理由
- タスクの完全な一覧を提供するのではなく、優先される推奨事項に最初に対処することをお勧めします。 それらに対処すると、追加の推奨事項が利用可能になります。 詳細な一覧を表示する場合は、Log Analytics ログ検索を使用してすべての推奨事項を表示できます。
推奨事項を無視する方法はありますか。
- はい。上記のセクション 推奨事項 無視するを参照してください。
次のステップ
- ログ クエリ を学び、詳細な SQL 正常性チェックのデータと推奨事項を分析する方法を説明します。