你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
请参阅本文,了解如何在设备配置管理器上添加多个服务器凭据,以执行软件清单(发现已安装的应用程序)、无代理依赖项分析,以及发现 Web 应用、SQL Server 实例和数据库。
Azure Migrate 设备是“Azure Migrate: 发现和评估”使用的一种轻型设备,可发现本地服务器,并将服务器配置和性能元数据发送到 Azure。 该设备还可用于执行软件清单、无代理依赖项分析以及发现 Web 应用程序、SQL Server 实例和数据库。
注释
目前,ASP.NET Web 应用程序的发现仅在用于发现和评估在 VMware 环境中运行的服务器的设备中可用。
若要使用这些功能,可以通过执行以下步骤提供服务器凭据。 对于服务器在 vCenter Server 和 Hyper-V 主机/群集上运行的情况,设备将尝试自动将凭据映射到服务器以执行发现功能。
添加服务器凭据
支持的服务器凭据类型
可以在设备配置管理器上添加多个服务器凭据,这些凭据可以是域、非域(Windows 或 Linux)或 SQL Server 身份验证凭据。
下表列出了支持的服务器凭据类型:
| 凭据类型 | 说明 |
|---|---|
| 域凭据 | 在“添加凭据”模式下,你可以通过从下拉列表中选择相应选项来添加“域凭据”。 若要提供域凭据,你需要指定域名,该域名必须以完全限定的域名 (FQDN) 格式提供(例如 prod.corp.contoso.com)。 若要提供域凭据,请在完全限定域名(FQDN)格式(例如 prod.corp.contoso.com)中指定域名。 还需要提供凭据的友好名称、用户名和密码。 在所有三个设备堆栈(VMware、Hyper-V 和物理)的来宾发现部分中,必须以 UPN 格式(username@domain.com)提供域凭据。 在物理设备中,若要发现服务器元数据并启用 SI 和依赖项分析,请提供域凭据,并使用下层格式(域\用户名)。 此方案不支持 UPN 格式(username@domain.com)。 添加的域凭据将根据域的 Active Directory 自动验证其真实性。 此验证是为了防止在设备尝试根据所发现的服务器映射域凭据时发生帐户锁定的情况。 若要使用域控制器验证域凭据,设备应该能够解析域名。 请确保在添加凭据时提供正确的域名,否则验证将失败。 设备不会尝试映射验证失败的域凭据。 你需要至少拥有一个已成功验证的域凭据或至少一个非域凭据才能开始发现。 针对 Windows 服务器自动映射的域凭据将用来执行软件清单,并且可以用来发现 Web 应用、SQL Server 实例和数据库(如果你已在 SQL Server 上配置了 Windows 身份验证模式)。 详细了解 SQL Server 上支持的身份验证模式的类型。 |
| 非域凭据 (Windows/Linux) | 在“添加凭据”模式下,你可以通过从下拉列表中选择相应选项来添加 Windows(非域)或 Linux(非域)凭据。 你需要为凭据、用户名和密码指定一个易记名称。 |
| SQL Server 身份验证凭据 | 在“添加凭据”模式下,你可以通过从下拉列表中选择相应选项来添加“SQL Server 身份验证”凭据。 你需要为凭据、用户名和密码指定一个易记名称。 如果你已在 SQL Server 上配置了 SQL Server 身份验证模式,则可以添加此类型的凭据,以发现在 VMware 环境中运行的 SQL Server 实例和数据库。 详细了解 SQL Server 上支持的身份验证模式的类型。 你需要提供至少一个已成功验证的域凭据或至少一个 Windows(非域)凭据,以便使设备能够完成软件清单来发现服务器上安装的 SQL,然后再使用 SQL Server 身份验证凭据来发现 SQL Server 实例和数据库。 |
| PostgreSQL 身份验证凭据 | 可以通过从“ 添加凭据 ”对话框中的下拉列表中选择适当的选项来添加 PostgreSQL 身份验证。 需要指定友好名称、用户名和密码。 这些凭据用于发现环境中的 PostgreSQL 实例和数据库,前提是 PostgreSQL 服务器配置为基于密码的身份验证(例如 md5、scram-sha-256 或密码)。 必须至少提供一个已成功验证的域凭据或至少一个 Windows/Linux(非域)凭据,以便设备可以完成软件清单并发现 PostgreSQL 安装。 此步骤后,设备使用 PostgreSQL 身份验证凭据来标识 PostgreSQL 实例和数据库。 |
检查 Windows/Linux 凭据所需的权限,以执行软件清单、无代理依赖项分析以及发现 Web 应用、SQL Server 实例和数据库。
所需的权限
下表列出了使用设备上提供的服务器凭据执行相应功能所需的权限:
| Feature | Windows 凭据 | Linux 凭据 |
|---|---|---|
| 软件清单 | 来宾用户帐户 | 常规/普通用户帐户(非 sudo 访问权限) |
| 发现 SQL Server 实例和数据库 | 要发现 SQL Server 实例和数据库,Windows/域帐户或 SQL Server 帐户,每个 SQL Server 实例都需要这些低特权读取权限。 为简单起见 ,可以使用低特权帐户预配实用工具 创建自定义帐户或使用任何作为 sysadmin 服务器角色成员的现有帐户。 | 当前不受支持 |
| ASP.NET Web 应用的发现 | 具有管理权限的域或非域(本地)帐户 | 当前不受支持 |
| 无代理依赖项分析 | 具有管理权限的域或非域(本地)帐户 | 有权执行 ls 和 netstat 命令的 Sudo 用户帐户。 提供 sudo 用户帐户时,请确保已为该帐户启用 NOPASSWD 以运行所需的命令,且不会在每次调用 sudo 命令时都提示输入密码。 也可创建一个对 /bin/netstat 和 /bin/ls 文件具有 CAP_DAC_READ_SEARCH 和 CAP_SYS_PTRACE 权限的用户帐户,这两个权限使用以下命令进行设置:
sudo setcap CAP_DAC_READ_SEARCH,CAP_SYS_PTRACE=ep /bin/ls |
| 发现 PostgreSQL 实例和数据库 | 在每个 PostgreSQL 实例上,请使用具有超级用户权限或以下最低用户权限的 PostgreSQL 用户帐户:对数据库 pg_read_all_settings 拥有 CONNECT 权限,以及对相关模式拥有 USAGE 权限。 |
在每个 PostgreSQL 实例上,请使用具有超级用户权限或以下最低用户权限的 PostgreSQL 用户帐户:对数据库 pg_read_all_settings 拥有 CONNECT 权限,以及对相关模式拥有 USAGE 权限。 |
有关如何提供凭据的建议做法
- 建议创建一个拥有必需权限的专用域用户帐户,该帐户的权限范围是对所需服务器上的 Web 应用、SQL Server 实例和数据库执行软件清单、无代理依赖项分析和发现。
- 建议提供至少一个已成功验证的域凭据或至少一个非域凭据,以便开始执行软件清单。
- 如果你已在 SQL Server 上配置了 Windows 身份验证模式,则若要发现 SQL Server 实例和数据库,你可以提供域凭据。
- 如果你已在 SQL Server 上配置了 SQL Server 身份验证模式,则还可以提供 SQL Server 身份验证凭据,但建议提供至少一个已成功验证的域凭据或至少一个 Windows(非域)凭据,以便设备可以先完成软件清单。
设备上的凭据处理
- 在设备配置管理器上提供的所有凭据都存储在设备服务器本地,不会发送到 Azure。
- 存储在设备服务器上的凭据使用数据保护 API (DPAPI) 进行加密。
- 添加凭据后,设备会尝试自动映射凭据,以在相应的服务器上执行发现操作。
- 设备使用服务器上自动映射的凭据来完成所有后续的发现循环,直到凭据能够获取所需的发现数据为止。 如果凭据失效,则设备会再次尝试从已添加的凭据的列表中进行映射,并在服务器上继续执行正在进行的发现操作。
- 添加的域凭据将根据域的 Active Directory 自动验证其真实性。 这是为了防止在设备尝试根据所发现的服务器映射域凭据时发生帐户锁定的情况。 设备不会尝试映射验证失败的域凭据。
- 如果设备无法针对某个服务器映射任何域或非域凭据,你会在项目中看到针对该服务器显示的“凭据不可用”状态。