步骤 4:设置 Strategy Recommendations 收集器 - Migration Hub 策略建议

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

步骤 4:设置 Strategy Recommendations 收集器

本部分介绍如何使用命令行 collector setup 命令来配置 Migration Hub Strategy Recommendations 应用程序数据收集器。这些配置在本地存储。

要使用 collector setup 命令,您必须先使用以下 docker exec 命令在收集器 Docker 容器中创建 Bash Shell 会话。

docker exec -it application-data-collector bash

collector setup 命令会连续运行以下所有命令,但您可以单独运行这些命令:

  • collector setup --aws-configurations – 设置 AWS 配置。

  • collector setup --vcenter-configurations – 设置 vCenter 配置。

    注意

    仅当收集器在 vCenter 上托管时,vCenter 配置设置才可用。但是,您可以使用 collector setup --vcenter-configurations 命令强制设置 vCenter 配置。

  • collector setup --remote-server-configurations – 设置远程服务器配置。

  • collector setup --version-control-configurations – 设置版本控制配置。

同时设置所有收集器配置
  1. 输入以下命令。

    collector setup
  2. 按照设置 AWS 配置中所述,输入 AWS 配置的信息。

  3. 按照设置 vCenter 配置中所述,输入 vCenter 配置的信息。

  4. 按照设置远程服务器配置中所述,输入远程服务器配置的信息。

  5. 按照设置版本控制配置。中所述,输入版权控制配置的信息。

  6. 按照为数据收集准备您的远程 Windows 和 Linux 服务器中的说明,为收集器数据收集准备您的 Windows 和 Linux 服务器。

设置 AWS 配置

在使用 collector setup 命令或 collector setup --aws-configurations 命令时设置 AWS 配置。

  1. 对于您是否已设置 IAM 权限...问题,输入 Y,表示“是”。按照Strategy Recommendations 用户和角色中的步骤,当您使用 AWSMigrationHubStrategyCollector 托管策略创建用户以访问收集器时,您可以设置这些权限。

  2. 按照Strategy Recommendations 用户和角色中的步骤,通过 AWS 输入您的访问密钥和私有密钥,该账户拥有您用于访问收集器的已创建用户。

  3. 输入区域,例如 us-west-2。从 Strategy Recommendations 使用的区域中选择适合您需求的区域。有关这些区域的列表,请参阅 AWS 一般参考 中的 Strategy Recommendations endpoints

  4. 对于是否将收集器相关指标上传到迁移中心策略服务?问题,输入 Y,表示“是”。指标信息有助于 AWS 为您提供适当的支持。

  5. 对于是否将收集器相关日志上传到迁移中心策略服务?问题,输入 Y,表示“是”。日志信息有助于 AWS 为您提供适当的支持。

以下示例展示了什么会显示,包括 AWS 配置的示例条目。

Have you setup IAM permissions in you AWS account as per the user guide? [Y/N]: Y
Choose one of the following options for providing user credentials:
1. Long term AWS credentials
2. Temporary AWS credentials
Enter your options [1-2]: 2
AWS session token: 
AWS access key ID [None]: 
AWS secret access Key [None]: 
AWS region name [us-west-2]: 
AWS configurations are saved successfully
Upload collector related metrics to migration hub strategy service? By default collector will upload metrics. [Y/N]: Y
Upload collector related logs to migration hub strategy service? By default collector will upload logs. [Y/N]: Y
Application data collector configurations are saved successfully
Start registering application data collector
Application data collector is registered successfully.
        

设置 vCenter 配置

在使用 collector setup 命令或 collector setup --vcenter-configurations 命令时设置 vCenter 配置:

  1. 如果您想使用 VMware vCenter 进行身份验证,对于是否要使用 VMware vCenter 凭证进行身份验证问题,输入 Y,表示“是”。

    注意

    在使用 VMware vCenter 凭证进行身份验证时,您必须在目标服务器上安装 VMware 工具。

    输入主机 URL,可以是 vCenter IP 地址或 URL。然后,输入 VMware vCenter 的用户名密码

  2. 如果您想配置 Windows 服务器,对于您是否有 VMware vCenter 托管的 Windows 计算机问题,输入 Y,表示“是”。

    输入 Windows 的用户名密码

    注意

    如果您的 Windows Remote Server 属于 Active Directory 域,则在使用 CLI 提供远程服务器配置时,您必须以 domain-name\username 形式输入用户名。例如,如果您的域名是 exampledomain,您的用户名是 Administrator,那么您在 CLI 中输入的用户名是 exampledomain\Administrator

  3. 如果您想配置 Linux 服务器,则对于是否使用 VMware vCenter 设置 Linux 问题,输入 Y,表示“是”。

    输入 Linux 的用户名密码

  4. 如果您想为 vCenter 以外的服务器设置远程服务器凭证,则对于是否想使用 NTLM(适用于 Windows)和 SSH/Cert(适用于 Linux)为 vCenter 以外的服务器设置凭证问题,输入 Y,表示“是”。

  5. 如果 vCenter 之外托管的 Windows 计算机的凭证与配置 vCenter Windows 计算机的凭证时提供的凭证相同,则对于是否要使用 vCenter 设置期间的相同 Windows 凭证问题,请输入 Y,表示“是”。否则,输入 N,表示“否”。

    如果您回答 Y,表示“是”,则系统会提问您以下问题。

    1. 对于您是否同意,在首次与 Windows 服务器交互时,收集器接受并在本地存储服务器证书?问题,请输入 Y,表示“是”。

    2. 如果您想配置 SSH 身份验证,则对于输入您的选项问题,请输入 1

      如果您选择使用 SSH 身份验证,您必须将生成的密钥凭证复制到 Linux 服务器。有关更多信息,请参阅在 Linux 服务器上设置基于密钥的身份验证

以下示例展示了什么会显示,包括 VMware vCenter 配置的示例条目。

Your Linux remote server configurations are saved successfully.
collector setup —vcenter-configurations
Start setting up vCenter configurations for remote execution
Note: Authenticating using VMware vCenter credentials requires VMware tools to be installed on the target servers
Would you like to authenticate using VMware vCenter credentials? [Y/N]: y

NOTE: Your vSphere user must have Guest Operations privileges enabled.

Host Url for VMware vCenter: domain-name
Username for VMware vCenter: username
Password for VMware vCenter: password
Reenter password for VMware vCenter: password
Successfully stored vCenter credentials...
Do you have Windows machines managed by VMware vCenter? [Y/N]: y

NOTE: For the best experience, we recommend that you create a new Active Directory user in the Domain Admins group.

Username for Windows (Domain\User): username
Password for Windows: password
Reenter password for Windows: password
Successfully stored windows credentials...
You can verify your setup for vCenter windows machines is correct with "collector diag-check"
Do you have Linux machines managed by VMWare vCenter? [Y/N]: y
Username for Linux: username
Password for Linux: password
Reenter password for Linux: password
Successfully stored linux credentials...
You can verify your setup for vCenter linux machines is correct with "collector diag-check"
Would you like to setup credentials for servers not managed by vCenter using NTLM for windows and SSH/Cert based for Linux? [Y/N]: y
Setting up target server for remote execution:
Would you like to setup credentials for servers not managed by vCenter using NLTM for Windows [Y/N]: y
Would you like to use the same Windows credentials used during vCenter setup? [Y/N]: y
Are you okay with collector accepting and locally storing server certificates on your behalf during first interaction with windows servers? These certificates will be used by collector for secure communication with windows servers [Y/N]: y
Successfully stored windows server credentials...
Please note that all windows server certificates are stored in directory /opt/amazon/application-data-collector/remote-auth/windows/certs

Please note the IP address of the collector and run the script specified in the user documentation on all the windows servers in your inventory
You can verify your setup for remote windows machines is correct with "collector diag-check"
Would you like to setup credentials for servers not managed by vCenter using SSH/Cert based for Linux? [Y/N]: y
Choose one of the following options for remote authentication:
1. SSH based authentication
2. Certificate based authentication
Enter your options [1-2]: 1
Would you like to use the same Linux credentials used during vCenter setup? [Y/N]: y
Generating SSH key on this machine...
Successfully generated SSH key pair

SSH key pair path: /opt/amazon/application-data-collector/remote-auth/linux/keys/id_rsa_assessment
Please add the public key "id_rsa_assessment.pub" to the "$HOME/.ssh/authorized_keys" file in your remote machines.
You can verify your setup for remote linux machines is correct with "collector diag-check              

设置远程服务器配置

在使用 collector setup 命令或 collector setup --remote-server-configurations 命令时设置远程服务器配置:

  1. 如果您想配置 Windows 服务器,则对于您是否想使用 NLTM(适用于 Windows)为非 vCenter 托管的服务器设置凭证问题,请输入 Y,表示“是”。

    输入 WinRM 的用户名密码

    注意

    如果您的 Windows Remote Server 属于 Active Directory 域,则在使用 CLI 提供远程服务器配置时,您必须以 domain-name\username 形式输入用户名。例如,如果您的域名是 exampledomain,您的用户名是 Administrator,那么您在 CLI 中输入的用户名是 exampledomain\Administrator

    对于您是否同意,在首次与 Windows 服务器交互时,收集器接受并在本地存储服务器证书?问题,请输入 Y,表示“是”。Windows Server 证书存储在 /opt/amazon/application-data-collector/remote-auth/windows/certs 目录中。

    您必须将生成的服务器凭证复制到您的 Windows 服务器。有关更多信息,请参阅在 Windows 服务器上设置远程服务器配置

  2. 如果您想配置 Linux 服务器,则对于是否使用 SSH 或 Cert 设置 Linux 问题,输入 Y,表示“是”。

  3. 如果您想配置基于 SSH 密钥的身份验证,则对于输入您的选项问题,请输入 1

    如果您选择使用 SSH 身份验证,您必须将生成的密钥凭证复制到 Linux 服务器。有关更多信息,请参阅在 Linux 服务器上设置基于密钥的身份验证

  4. 如果您想配置基于证书的身份验证,则对于输入您的选项问题,请输入 2

    有关设置基于证书的身份验证的信息,请参阅在 Linux 服务器上设置基于证书的身份验证

以下示例展示了什么会显示,包括远程服务器配置的示例条目。

Setting up target server for remote execution
Would you like to setup credentials for servers not managed by vCenter using NLTM for Windows [Y/N]: y

NOTE: For the best experience, we recommend that you create a new Active Directory user in the Domain Admins group.

Username for WinRM (Domain\User): username
Password for WinRM: password
Reenter password for WinRM: password
Are you okay with collector accepting and locally storing server certificates on your behalf during first interaction with windows servers? These certificates will be used by collector for secure communication with windows servers [Y/N]: Y
Successfully stored windows server credentials...
Please note that all windows server certificates are stored in directory /opt/amazon/application-data-collector/remote-auth/windows/certs

Please note the IP address of the collector and run the script specified in the user documentation on all the windows servers in your inventory
Would you like to setup credentials for servers not managed by vCenter using SSH/Cert based for Linux? [Y/N]: Y
Choose one of the following options for remote authentication:
1. SSH based authentication
2. Certificate based authentication
Enter your options [1-2]: 1 
User name for remote server: username
Generating SSH key on this machine...
SSH key pair path: /opt/amazon/application-data-collector/remote-auth/linux/keys/id_rsa_assessment
Please add the public key "id_rsa_assessment.pub" to the "$HOME/.ssh/authorized_keys" file in your remote machines.
Your Linux remote server configurations are saved successfully.               

设置版本控制配置。

在使用 collector setup 命令或 collector setup --version-control-configurations 命令时设置版本控制配置:

  1. 对于是否设置源代码分析?问题,请输入 Y,表示“是”。

  2. 如果您想配置 Git 服务器端点,则对于输入您的选项问题,请输入 1

    对于 GIT 服务器端点:,请输入 github.com

  3. 如果您想配置 GitHub Enterprise Server,则对于输入您的选项问题,请输入 2

    输入不带 https://的企业端点,如下所示:GIT 服务器端点:git-enterprise-endpoint

  4. 输入您的 Git 用户名和个人访问令牌

  5. 如果您想分析 C# 代码,则对于您是否有任何需要在 Windows 计算机上分析的 csharp 存储库问题,请输入 Y,表示“是”。

    注意

    要分析 .NET 存储库以获得 Porting Assistant for .NET 建议,您必须提供通过 Porting Assistant for .NET 移植评测工具设置的 Windows 计算机。有关更多信息,请参阅 Porting Assistant for .NET User Guide 中的 Getting started with Porting Assistant for .NET

  6. 对于您是否想在这台计算机上重用现有的 Windows 凭证?问题。如果用于 C# 源代码分析的 Windows 计算机使用的凭证与之前在设置 --remote-server-configurations--vcenter-configurations 时提供的凭证相同,请输入 Y,表示“是”。

    如果您想输入新的凭证,请输入 N,表示“否”。

  7. 要使用 VMWare vCenter Windows Machine 凭证,则对于为 Windows 凭证选择以下其中一个选项,请选择 1

  8. 输入 Windows 计算机的 IP 地址。

以下示例展示了什么会显示,包括版本控制配置的示例条目。

Set up for source code analysis [Y/N]: y
Choose one of the following options for version control type:
1. GIT
2. GIT Enterprise
3. Azure DevOps - Git
Enter your options [1-3]: 3
Your server endpoint: dev.azure.com (http://dev.azure.com/)
Your DevOps Organization name: <Your organization name>
Personal access token [None]:
Your version control credentials are saved successfully.
Do you have any csharp repositories that should be analyzed on a windows machine? [Y/N]: y
Would you like to reuse existing windows credentials on this machine? [Y/N]: y
Choose one of the following options for windows credentials:
1. VMWare vCenter Windows Machine
2. Standard Windows Machine
Enter your options [1-2]: 
1
Windows machine IP Address: <Your windows machine IP address>
Using VMWare vCenter Windows Machine credentials
Successfully stored windows server credentials...        

为数据收集准备您的远程 Windows 和 Linux 服务器

注意

如果您使用 vCenter 凭证设置 Strategy Recommendations 应用程序数据收集器,则无需执行此步骤。

设置远程服务器配置后,如果您使用的是 collector setup commandcollector setup --remote-server-configurations 命令,您必须准备您的远程服务器,以便 Strategy Recommendations 应用程序数据收集器可以从中收集数据。

注意

您必须确保,服务器可以通过它们的私有 IP 地址访问。有关如何通过 AWS 上的虚拟私有云(VPC)设置远程运行环境的进一步说明,请参阅 Amazon Virtual Private Cloud User Guide

要准备您的远程 Linux 服务器,请参阅准备远程 Linux 服务器

要准备您的远程 Windows 服务器,请参阅在 Windows 服务器上设置远程服务器配置

准备远程 Linux 服务器

在 Linux 服务器上设置基于密钥的身份验证

如果您在进行远程服务器配置时选择为 Linux 设置基于 SSH 密钥的身份验证,您必须按照以下步骤在服务器上设置基于密钥的身份验证,以便 Strategy Recommendations 应用程序数据收集器可以收集数据。

在 Linux 服务器上设置基于密钥的身份验证
  1. 从容器中的以下文件夹中复制通过名称 id_rsa_assessment.pub 生成的公钥:

    /opt/amazon/application-data-collector/remote-auth/linux/keys

  2. 将复制的公钥附加到所有远程计算机的 $HOME/.ssh/authorized_keys 文件中。如果没有可用的文件,请使用 touchvim 命令创建文件。

  3. 确保远程服务器上主文件夹的权限级别为 755 或更低。如果是 777,那就行不通了。您可以使用 chmod 命令来限制权限。

在 Linux 服务器上设置基于证书的身份验证

如果您在进行远程服务器配置时选择为 Linux 设置基于证书的身份验证,您必须按照以下步骤操作,以便 Strategy Recommendations 应用程序数据收集器可以收集数据。

如果您已经为应用程序服务器设置了证书颁发机构(CA),我们建议您使用此选项。

在 Linux 服务器上设置基于证书的身份验证
  1. 复制适用于所有远程服务器的用户名。

  2. 将收集器的公钥复制到 CA。

    收集器的公钥可以在以下位置找到:

    /opt/amazon/application-data-collector/remote-auth/linux/keys/id_rsa_assessment.pub

    该公钥必须添加到您的 CA 才能生成证书。

  3. 将上一步中生成的证书复制到收集器中的以下位置:

    /opt/amazon/application-data-collector/remote-auth/linux/keys

    证书的名称必须是 id_rsa_assessment-cert.pub

  4. 在设置期间提供证书文件名。

在 Windows 服务器上设置远程服务器配置

如果您在收集器设置中进行远程服务器配置时选择设置 Windows,您必须按照以下步骤操作,以便 Strategy Recommendations 可以收集数据。

要了解关于远程服务器上执行的 PowerShell 脚本的更多信息,请阅读此说明。

该脚本启用 PowerShell 远程功能,禁用除协商之外的所有身份验证方法。这适用于 Windows NT LAN Manager(NTLM)并将“AllowUnencrypted”WSMan 协议设置为 False,以确保新创建的侦听器仅接受加密流量。它使用 Microsoft 提供的脚本 New-SelfSignedCertificateEx.ps1,创建自签名证书。

任何具有 HTTP 侦听器的 WSMan 实例都将与现有的 HTTPS 侦听器一起删除。然后,它会创建新的 HTTPS 侦听器。它还会为 TCP 端口 5986 创建入站防火墙规则。最后,WinRM 服务将重新启动。

在 Windows 2008 服务器上通过远程连接设置数据收集
  1. 使用以下命令来查看您的服务器上安装的 PowerShell 版本。

    $PSVersionTable
  2. 如果 PowerShell 版本不是 5.1,请按照 Microsoft 文档中安装并配置 WMF 5.1 的说明下载并安装 WMF 5.1。

  3. 在新的 PowerShell 窗口中使用以下命令,确保安装 PowerShell 5.1。

    $PSVersionTable
  4. 按照下一组步骤进行操作,这些步骤介绍如何在 Windows 2012 及更高版本上通过远程连接来设置数据收集。

在 Windows 2012 及更新的服务器上通过远程连接设置数据收集
  1. 从以下 URL 下载设置脚本:

    https://application-data-collector-release.s3.us-west-2.amazonaws.com/scripts/WinRMSetup.ps1

  2. 从以下 URL 下载 New-SelfSignedCertificateEx.ps1,然后将脚本粘贴到您下载 WinRMSetup.ps1 的同一个文件夹中:

    https://github.com/Azure/azure-libraries-for-net/blob/master/Samples/Asset/New-SelfSignedCertificateEx.ps1

  3. 要完成设置,请在所有应用程序服务器上运行下载的 PowerShell 脚本。

    .\WinRMSetup.ps1
注意

如果 Windows Remote Server 上未正确设置 Windows Remote Management(WinRM),则从该服务器收集数据的尝试将失败。如果发生这种情况,您必须从容器上的以下位置删除与该服务器对应的证书:

/opt/amazon/application-data-collector/remote-auth/windows/certs/ads-server-id.cer

删除证书后,请等待数据收集进程重试。

下一步

步骤 5:使用 Migration Hub 控制台中的 Strategy Recommendations 获得建议

验证是否已为数据收集设置您的收集器和服务器

验证是否已使用以下命令为数据收集正确设置您的收集器和服务器。

collector diag-check

此命令对您的服务器配置执行一系列诊断检查,并提供失败检查的输入。

当您在 -a 模式下使用该命令时,您会在检查完成后在 DiagnosticCheckResult.txt 文件中获得输出。

collector diag-check -a

您可以使用该服务器的 IP 地址对单台服务器的服务器配置执行诊断检查。

以下示例显示了成功设置的输出。

Linux 服务器

            Provide your test server IP address: IP address
---------------------------------------------------------------
Start checking connectivity & credentials... 
Connectivity and Credential Checks succeeded 
---------------------------------------------------------------
Start checking permissions... 
Permission Check succeeded 
---------------------------------------------------------------
Start checking OS version... 
OS version check succeeded 
---------------------------------------------------------------
Start checking Linux Bash installation... 
Linux Bash installation check succeeded 
---------------------------------------------------------------
All diagnostic checks complete successfully. 
This server is correctly set up and ready for data collection.
        

Windows 服务器

            Windows PowerShell Version Check succeeded 
Provide your test server IP address: IP address
---------------------------------------------------------------
Start checking connectivity & credentials... 
Connectivity and Credential Checks succeeded
--------------------------------------------------------------- 
Start checking permissions... 
Permission Check succeeded
--------------------------------------------------------------- 
Start checking OS version... 
OS version check succeeded
--------------------------------------------------------------- 
Start checking Windows architecture type... 
Windows Architecture Type Check succeeded 
---------------------------------------------------------------
All diagnostic checks complete successfully. 
This server is correctly set up and ready for data collection.
        

以下示例展示了远程服务器凭证不正确时显示的错误消息。

Unable to authenticate the server credentials with IP address ${IPAddress}. 
Ensure that your credentials are accurate and the server is configured correctly. 
Use the following command to reset incorrect credentials.
collector setup —remote-server-configurations