インストールされているソフトウェア インベントリ、Web アプリ、および SQL Server インスタンスとデータベースの検出

この記事では、Azure Migrate: Discovery and Assessment ツールを使用して、オンプレミス環境で稼働するサーバーにインストールされているソフトウェア インベントリ、Web アプリ、および SQL Server のインスタンスとデータベースを検出する方法について説明します。

ソフトウェア インベントリを実行すると、ワークロードに合わせて Azure への移行パスを特定し、調整するために役立ちます。 サーバーの資格情報を使用して検出を実行するために、ソフトウェア インベントリにより、Azure Migrate アプライアンスが使用されます。 これは完全にエージェントレスです。このデータを収集するエージェントはサーバーにインストールされていません。

注意

現在、ASP.NET Web アプリの検出は、VMware 環境で稼働しているサーバーの検出に使用されるアプライアンスでのみ使用できます。 これらの機能は、Hyper-V 環境で稼働しているサーバーや、物理サーバーまたは AWS や GCP などの他のクラウドで稼働しているサーバーでは使用できません。

開始する前に

Azure Migrate アプライアンスをデプロイおよび構成する

  1. Azure Migrate アプライアンスを展開して検出を開始します。 アプライアンスをデプロイするには、環境に合ったデプロイ方法を使用できます。 アプライアンスをデプロイした後、プロジェクトに登録し、検出を開始するように構成する必要があります。
  2. アプライアンスを構成するときに、アプライアンス構成マネージャーで以下を指定する必要があります。
    • 検出するソース環境 (vCenter Server/Hyper-V ホストまたはクラスター/物理サーバー) の詳細。
    • サーバーの資格情報。ドメイン、Windows (ドメイン以外)、または Linux (ドメイン以外) の資格情報です。 資格情報の提供方法と、アプライアンスによる処理方法の詳細については、こちらを参照してください
    • ソフトウェア インベントリを実行するために必要なアクセス許可を確認します。 Windows サーバー用にゲスト ユーザー アカウントと、すべての Linux サーバー用に通常または標準ユーザー アカウント (非 sudo アクセス) が必要です。

資格情報を追加して検出を開始する

  1. アプライアンス構成マネージャーを開き、アプライアンスの前提条件の確認と登録を完了します。
  2. [資格情報と検出ソースの管理] パネルに移動します。
  3. [ステップ 1: 検出ソースの資格情報を指定する] で、[資格情報の追加] をクリックして、アプライアンスが環境で稼働しているサーバーを検出するために使用する検出ソースの資格情報を指定します。
  4. [ステップ 2: 検出ソースの詳細を指定する] で、[検出ソースの追加] をクリックして、ドロップダウンから資格情報のフレンドリ名を選択し、検出ソースの IP アドレスまたは FQDN を指定します。 vCenter Server の詳細に関するアプライアンス構成マネージャーのパネル 3。
  5. [ステップ 3: サーバーの資格情報を指定して、ソフトウェア インベントリとエージェントレスの依存関係分析を実行する] で、[資格情報の追加] をクリックし、複数のサーバー資格情報を指定して、ソフトウェア インベントリを実行します。
  6. [検出の開始] をクリックして、検出を開始します。

サーバーの検出が完了すると、アプライアンスにより、サーバーにインストールされているアプリケーション、ロール、機能 (ソフトウェア インベントリ) の検出が開始されます。 期間は検出されたサーバーの数によって異なります。 500 台のサーバーがある場合、検出されたインベントリが Azure Migrate ポータルに表示されるまでに約 1 時間かかります。 最初の検出が完了すると、ソフトウェア インベントリ データが収集され、24 時間ごとに Azure に送信されます。ソフトウェア インベントリ中にアプライアンスが収集したデータを確認します。

インベントリの確認とエクスポート

ソフトウェア インベントリが完了したら、Azure portal でインベントリを確認し、エクスポートすることができます。

  1. [Azure Migrate - サーバー、データベース、Web アプリ][Azure Migrate: 検出と評価] で、表示されたカウントをクリックして [検出済みサーバー] ページを開きます。

    注意

    この段階で、必要に応じて、検出されたサーバーの依存関係分析を有効にして、評価するサーバー間の依存関係を視覚化することもできます。 依存関係の分析の詳細を見る

  2. [ソフトウェア インベントリ] 列で、表示されたカウントをクリックして検出されたアプリケーション、ロール、機能を確認します。

  3. インベントリをエクスポートするには、 [検出済みサーバー][ソフトウェア インベントリのエクスポート] をクリックします。

ソフトウェア インベントリは、Excel 形式でエクスポートおよびダウンロードされます。 [Software Inventory](ソフトウェア インベントリ) シートには、すべてのサーバーで検出されたすべてのアプリが表示されます。

SQL Server インスタンスとデータベースを検出する

  • また、ソフトウェア インベントリは、VMware、Microsoft Hyper-V、物理/ベアメタル環境で実行されている SQL Server インスタンスと、他のパブリック クラウドの IaaS サービスも識別します。

  • アプライアンス構成マネージャーで Windows 認証または SQL Server 認証の資格情報を指定していない場合、アプライアンスで資格情報を利用し、それぞれの SQL Server インスタンスに接続できるよう、資格情報を追加してください。

    注意

    アプライアンスは、ネットワークの見通しがある SQL Server インスタンスのみに接続できますが、ソフトウェア インベントリ単体ではネットワークの見通しが必要ない場合があります。

ソース SQL Server インスタンスへの接続に使われるログインには、必要な情報のクエリを実行するために、特定の最小限のアクセス許可が必要です。 次のスクリプトでは、必要なアクセス許可を持つ SQL Server ログインの作成を示します。

 -- Create a login to run the assessment
 use master;
     CREATE LOGIN [evaluator]
         WITH PASSWORD = '<provide a strong password>'
 GO    
 
 -- Create user in every database other than tempdb and model and provide minimal read-only permissions. 
 use master;
     EXECUTE sp_MSforeachdb 'USE [?]; IF (''?'' NOT IN (''tempdb'',''model''))  CREATE USER [evaluator] FOR LOGIN [evaluator]'
     EXECUTE sp_MSforeachdb 'USE [?]; IF (''?'' NOT IN (''tempdb'',''model''))  GRANT SELECT ON sys.sql_expression_dependencies TO [evaluator]'
     EXECUTE sp_MSforeachdb 'USE [?]; IF (''?'' NOT IN (''tempdb'',''model''))  GRANT VIEW DATABASE STATE TO [evaluator]'
 GO
 
 -- Provide server level read-only permissions
 use master;
     GRANT SELECT ON sys.sql_expression_dependencies TO [evaluator]
     GRANT EXECUTE ON OBJECT::sys.xp_regenumkeys TO [evaluator];
     GRANT VIEW DATABASE STATE TO evaluator
     GRANT VIEW SERVER STATE TO evaluator
     GRANT VIEW ANY DEFINITION TO evaluator
 GO
 
 -- Required from SQL 2014 onwards for database connectivity.
 use master;
     GRANT CONNECT ANY DATABASE TO evaluator
 GO
 
 -- Provide msdb specific permissions
 use msdb;
     GRANT EXECUTE ON [msdb].[dbo].[agent_datetime] TO [evaluator]
     GRANT SELECT ON [msdb].[dbo].[sysjobsteps] TO [evaluator]
     GRANT SELECT ON [msdb].[dbo].[syssubsystems] TO [evaluator]
     GRANT SELECT ON [msdb].[dbo].[sysjobhistory] TO [evaluator]
     GRANT SELECT ON [msdb].[dbo].[syscategories] TO [evaluator]
     GRANT SELECT ON [msdb].[dbo].[sysjobs] TO [evaluator]
     GRANT SELECT ON [msdb].[dbo].[sysmaintplan_plans] TO [evaluator]
     GRANT SELECT ON [msdb].[dbo].[syscollector_collection_sets] TO [evaluator]
     GRANT SELECT ON [msdb].[dbo].[sysmail_profile] TO [evaluator]
     GRANT SELECT ON [msdb].[dbo].[sysmail_profileaccount] TO [evaluator]
     GRANT SELECT ON [msdb].[dbo].[sysmail_account] TO [evaluator]
 GO
 
 -- Clean up
 --use master;
 -- EXECUTE sp_MSforeachdb 'USE [?]; DROP USER [evaluator]'
 -- DROP LOGIN [evaluator]
 --GO

アクセス許可スクリプトの使用方法を次に示します。

  • アクセス許可スクリプト (有効なパスワード文字列を含む) を .sql ファイルとして保存します (例: c:\workspace\MinPermissions.sql)
  • sysadmin アクセス許可を持つアカウントを使ってインスタンスに接続し、スクリプトを実行します。 SQL Server Management Studio または sqlcmd を使用できます。 次の例では、信頼された接続を使います。
   sqlcmd.exe -S sourceserver\sourceinstance -d master -E -i c:\workspace\MinPermissions.sql
  • 追加の接続のために作成された最小限のアクセス許可アカウントを使用します。

接続後、アプライアンスにより SQL Server インスタンスと SQL Server データベースの構成とパフォーマンスのデータが収集されます。 SQL Server 構成データは 24 時間ごとに更新され、パフォーマンス データは 30 秒ごとにキャプチャされます。 そのため、データベースの状態や互換性レベルなど、SQL Server インスタンスおよびデータベースのプロパティ変更は、ポータルで更新されるまで、最大 24 時間かかることがあります

ASP.NET Web アプリを検出する

  • ソフトウェア インベントリは、検出されたサーバーに既存の Web サーバーの役割を識別します。 サーバーで Web サーバーの役割が有効になっている場合、Azure Migrate により、サーバーで Web アプリの検出が実行されます。
  • ユーザーは、アプライアンスにドメイン資格情報とドメイン以外の資格情報の両方を追加できます。 使用するアカウントは、ソース サーバーに対するローカル管理者特権を持っている必要があります。 Azure Migrate により、各サーバーに資格情報が自動的にマップされます。そのため、手動でマップする必要はありません。 最も重要なのは、これらの資格情報が Microsoft に送信されず、ソース環境で実行されているアプライアンスに残るという点です。
  • アプライアンスが接続されると、IIS Web サーバーと ASP.NET Web アプリの構成データが収集されます。 Web アプリ構成データは 24 時間に 1 回更新されます。

注意

現在、ASP.NET Web アプリの検出は、VMware 環境で稼働しているサーバーの検出に使用されるアプライアンスでのみ使用できます。

次のステップ