

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

# 配置发现工具
<a name="discovery-tool-configure"></a>

## 访问发现工具控制台
<a name="discovery-tool-access-console"></a>

1. 在 Web 浏览器中访问：`https://{{ip_address}}:5000`，部署发现工具的 IP 地址在哪里{{ip\_address}}。发现工具使用自签名证书进行 HTTPS 连接，这会导致安全警告。选择**接受风险并继续**进入发现工具控制台。

1. 如果您是首次访问发现工具控制台，请创建发现工具登录密码。创建密码，供将来登录时使用。
**重要**  
记住这个密码——没有密码恢复机制。

## 访问发现工具 VM
<a name="discovery-tool-vm-access"></a>
+ 默认情况下，发现工具 VM 带有用户名和密码（“发现”、“密码”）。为了提高安全性，我们建议您在通过虚拟机管理程序的控制台（例如，适用于 VMware 的 vSphere Client 或适用于 Manager 的 Manager）登录虚拟机`sudo passwd discovery`后使用更新密码。 Hyper-V Hyper-V
+ 默认情况下，SSH 访问处于禁用状态。用户可以使用预先配置`enablessh`的`disablessh`别名 enable/disable 通过 SSH 访问发现工具 VM。启用 SSH 访问`ssh discovery@<VM-IP>`后，用户可以通过通过 SSH 进入虚拟机。鼓励用户在大多数情况下禁用 SSH 访问权限，并且仅在需要时才启用 SSH。运行时会强制更改密码`enablessh`。
+ 要访问位于的发现工具数据目录`/home/ec2-user/.local/share/DiscoveryTool`，我们建议`ec2-user`通过运行切换到`sudo su ec2-user`。

## 配置 Kerberos 身份验证
<a name="security-kerberos"></a>

Kerberos 身份验证是通过发现工具连接到 Windows 服务器的推荐方法。发现工具 VM 使用原生 Amazon Linux 2023 Kerberos 库对你的 Active Directory 域进行身份验证。

以下是发现工具 VM 上的 Kerberos 身份验证的要点：
+ 使用`kinit`命令获取 Kerberos 票证`klist`并验证票证。
+ Kerberos 配置文件位于。`/etc/krb5.conf`
+ 在配置发现工具之前，请通过发现工具 VM 上的 CLI 验证发现工具是否`kinit`成功。

### Kerberos 先决条件
<a name="kerberos-prerequisites"></a>

在配置 Kerberos 身份验证之前，请确认您有以下信息和网络连接。

1. 请从您的活动目录管理员那里获取以下信息：
   + Kerberos 领域名称（通常是大写的域名，例如，）。`EXAMPLE.COM`
   + 密钥分发中心 (KDC) 的主机名或 IP 地址，该中心通常是域控制器（例如`dc01.example.com`）。
   + 具有针对目标 Windows 服务器进行身份验证的权限的服务帐户。

1. 验证发现工具 VM 是否具有与以下内容的网络连接：
   + 端口 88（TCP 和 UDP）上的 KDC 用于 Kerberos 身份验证。
   + WinRM 端口上的目标 Windows 服务器（HTTP 为 5985，HTTPS 为 5986）。

### 配置 Kerberos
<a name="kerberos-configuration"></a>

完成以下步骤，在发现工具 VM 上配置 Kerberos 身份验证。

1. 通过 SSH 连接到发现工具虚拟机。

   ```
   ssh discovery@<discovery-tool-vm-ip>
   ```

1. 编辑 Kerberos 配置文件，网址为。`/etc/krb5.conf`

   ```
   sudo nano /etc/krb5.conf
   ```

   添加以下配置，用您的环境详细信息替换占位符值。

   ```
   [libdefaults]
       default_realm = EXAMPLE.COM
       dns_lookup_realm = false
       dns_lookup_kdc = true
   
   [realms]
       EXAMPLE.COM = {
           kdc = dc01.example.com
       }
   
   [domain_realm]
       .example.com = EXAMPLE.COM
       example.com = EXAMPLE.COM
   ```
**重要**  
Kerberos 区分大小写。领域名称必须为大写（例如`EXAMPLE.COM`，不是`example.com`）。该`[domain_realm]`部分中的域名必须为小写。

   **多个活动目录域**

   该发现工具支持不同的 Active Directory 域的多个 Kerberos 凭据。每个凭证都独立进行身份验证，因此您可以正常配置多个凭证，并且隔离是自动进行的。

   如果您的服务器位于多个域中，请在`/etc/krb5.conf`文件中为每个领域添加条目：

   ```
   [libdefaults]
       default_realm = DEV.COMPANY.COM
       dns_lookup_realm = false
       dns_lookup_kdc = true
   
   [realms]
       DEV.COMPANY.COM = {
           kdc = dc01.dev.company.com
       }
       PROD.COMPANY.COM = {
           kdc = dc01.prod.company.com
       }
   
   [domain_realm]
       .dev.company.com = DEV.COMPANY.COM
       dev.company.com = DEV.COMPANY.COM
       .prod.company.com = PROD.COMPANY.COM
       prod.company.com = PROD.COMPANY.COM
   ```

1. 通过运行命令验证是否可以获取 Kerberos 票证。`kinit`

   ```
   kinit username@REALM.COM
   ```

   出现提示时输入密码。如果命令完成时没有错误，则身份验证成功。

1. 通过运行`klist`命令来验证票证。

   ```
   klist
   ```

   预期输出类似于以下内容。

   ```
   Ticket cache: FILE:/tmp/krb5cc_1000
   Default principal: username@REALM.COM
   
   Valid starting       Expires              Service principal
   01/01/2025 12:00:00  01/01/2025 22:00:00  krbtgt/REALM.COM@REALM.COM
   ```

1. 使用与您使用的相同区分大小写的主体配置发现工具`kinit`（例如，`username@REALM.COM`）。

如果您的环境已为 Kerberos 服务发现`krb5.conf`配置了 DNS SRV 记录，则可能不需要进行显式配置。[有关 Kerberos 配置选项的更多信息，请参阅 [MIT Kerberos krb5.conf 文档和示例 krb5.conf 文件](https://web.mit.edu/kerberos/krb5-1.12/doc/admin/conf_files/krb5_conf.html)。](https://web.mit.edu/kerberos/krb5-1.12/doc/admin/conf_files/krb5_conf.html#sample-krb5-conf-file)

### 从加入域的计算机中查找 Kerberos 配置
<a name="kerberos-find-config"></a>

如果您没有 Kerberos 配置详细信息，则可以从已加入该域的 Windows 计算机上检索它们。在加入域的计算机上使用命令提示符运行以下命令。

要查找域名，请运行以下命令。

```
echo %USERDNSDOMAIN%
```

输出示例：

```
EXAMPLE.COM
```

要查找域控制器主机名，请运行以下命令。

```
nltest /dsgetdc:EXAMPLE.COM
```

输出示例：

```
           DC: \\dc01.example.com
      Address: \\10.0.1.100
     Dom Guid: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
     Dom Name: EXAMPLE.COM
  Forest Name: example.com
 Dc Site Name: Default-First-Site-Name
Our Site Name: Default-First-Site-Name
        Flags: 0xe00033fd
The command completed successfully
```

将输出映射到您的`krb5.conf`配置，如下所示：
+ **Realm**-使用大写`%USERDNSDOMAIN%`的值（例如，`EXAMPLE.COM`）。
+ **KDC** — 使用`nltest`输出中的 DC 主机名（例如`dc01.example.com`）。

## 配置 vCenter 访问权限
<a name="discovery-tool-vcenter-config"></a>

1. 在 “**发现” 工具**页面的 “**步骤 1” 下。配置发现源**，选择**配置来源**。

1. **在**配置发现源**页面上，提供**友好名称**、**vCenter FQDN/IP**、**用户名**和密码。**

1. 选择 **Save configuration**。

   发现工具开始收集 vCenter 信息，如[已发现](https://docs.aws.amazon.com/transform/latest/userguide/discovery-tool-data-collection.html#discovery-tool-inventory)清单中所述。

完成初始配置后，在**发现工具状态**框中选择**编辑 vCenter 访问权限**以更改您的 vCenter 访问设置。

该发现工具并行收集来自所有已配置的 vCenter 服务器的数据。如果在收集过程中无法访问一个 vCenter 服务器，则该工具会报告部分成功并继续从其余的 vCenter 服务器进行收集。

如果虚拟机出现在多个 vCenter 服务器上（例如，由于共享 ESXi 主机或跨vCenter vMotion），则发现工具会自动对虚拟机进行重复数据删除。每个唯一的 VM 在清单中仅出现一次。

## 配置 Hyper-V 访问权限
<a name="discovery-tool-hyperv-config"></a>

1. 在 “**发现” 工具**页面的 “**步骤 1” 下。配置发现源**，选择**配置来源**。

1. **在 “**配置发现源**” 页面上，提供**友好名称**、**主机 FQDN 或 IP 地址**、**身份验证类型（NTLM 或 Kerberos）、WinRM** 用户名和 WinR **M 密码**。**

1. 选择 **Save configuration**。

   发现工具开始收集 Hyper-V 信息，如[已发现清单](https://docs.aws.amazon.com/transform/latest/userguide/discovery-tool-data-collection.html#discovery-tool-inventory)中所述。

保存凭证后，会自动开始收集。

对于 Hyper-V 故障转移群集，您可以在同一个群集中添加多个主机。该工具会自动对出现在多台主机上的虚拟机进行重复数据删除。

## 导入服务器
<a name="discovery-tool-bare-metal-import"></a>

1. 从 Discovery 工具主页导航到 “**导入服务器**” 页面。

1. 准备包含以下列的 CSV 文件：`hostname_or_ip`（必填）、`os_credential_name`（可选）和`oracle_credential_name`（可选）。
   + 该`hostname_or_ip`值必须是有效的 IPv4 地址或完全限定的域名 (FQDN)。
   + 该`os_credential_name`值（如果提供）必须与您已经配置的操作系统凭证（SSH、WinRM 或 SNMP）的友好名称相匹配。对于尚未配置操作系统凭据的服务器，请将其留空。
   + 该`oracle_credential_name`值（如果提供）必须与您已经配置的 Oracle 凭据的友好名称相匹配。

1. 上传 CSV 文件。该工具会验证所有行，如果有任何行无效，则拒绝该文件。

成功导入后，如果配置了操作系统凭据，该工具将自动开始为导入的服务器收集数据库、网络和操作系统指标。如果您上传另一个 CSV 文件，则会在不创建重复记录的情况下更新现有记录，并将新记录合并到清单中。

## 将自签名证书颁发机构导入发现工具（可选）
<a name="security-certificate-authority"></a>

当您通过 HTTPS 使用 WinRM 和目标服务器使用由自签名证书颁发机构 (CA) 签名的 WinRM HTTPS 证书，并且您想在发现工具上启用 “验证服务器 SSL 证书” 时，这是必需的。

### 先决条件
<a name="certificate-prerequisites"></a>

1. Self-signed 用于在目标服务器上签署 WinRM HTTPS 证书的 CA 证书

1. PEM 格式的证书（.pem 或.crt 扩展名）

要在发现工具 VM 上导入自签名证书颁发机构，请执行以下操作：

1. SSH 到发现工具 VM

1. 将签署目标服务器 WinRM 证书的 CA 证书放入发现工具 VM `/etc/pki/ca-trust/source/anchors/` 上的信任存储目录中。例如：`sudo cp winrm-ca.pem /etc/pki/ca-trust/source/anchors/winrm-ca.pem`。注意：如果您的目标服务器使用由不同 CA 签名的证书，请将所有相关的 CA 证书复制到此目录中。

1. 更新证书信任存储：`sudo update-ca-trust`

1. 重启虚拟机

1. （可选）要验证证书是否已成功导入，可以运行以下命令。 `sudo trust list —filter=ca-anchors | grep -A 5 "<certificate_name>"`

请参阅 [Windows 远程管理的安装和配置](https://learn.microsoft.com/en-us/windows/win32/winrm/installation-and-configuration-for-windows-remote-management)

## 为操作系统访问配置发现工具
<a name="discovery-tool-os-access"></a>

配置操作系统访问权限，以便发现工具能够：
+ 发现数据库以执行数据库评估并协助虚拟机迁移，
+ 跟踪清单中服务器之间的网络连接，包括与每个连接相关的进程，以帮助进行应用程序依赖关系映射和波浪规划。仅包括两个端点都在发现工具清单中的连接。

**启用发现工具 OS Access**

1. 导航至**设置操作系统访问权限**页面以提供 Windows 和 Linux 凭据。

1. 选择要为其添加凭据的协议。

1. 提供所选协议所需的凭据。

1. 选择**Auto-connect**启用发现工具，在找到每台服务器的匹配凭据之前，在发现的服务器上尝试所有提供的凭据。

   有关自动连接功能的重要安全建议，请参阅[谨慎使用 Auto-Connect 功能](discover-tool-security.md#auto-connect-caution)。

1. 选择 “**设置并连接**”。

操作系统匹配过程完成后，您会看到一条消息，提示数据收集正在进行中，以及一条有关未找到凭据匹配的服务器的错误。

### 支持的协议设置
<a name="discovery-tool-os-access-protocols"></a>

您必须在目标服务器上设置 WinRM、SSH 和 SNMP 协议，发现工具才能与它们通信。

#### 设置 WinRM 和 WMI
<a name="discovery-tool-winrm-setup"></a>

WinRM 会自动与当前支持的所有版本的 Windows 操作系统一起安装。

要验证或编辑 WinRM 配置，请使用`winrm`命令行工具：
+ 验证已安装的 WinRM 侦听器：`winrm enumerate winrm/config/listener`
+ 验证 WinRM 配置：`winrm get winrm/config`
+ 设置 WinRM 的命令示例：`winrm quickconfig -transport:https`

**监听器端口**

默认 HTTP 端口为 5985；HTTPS 为 5986。您可以根据需要使用其他端口。发现工具和目标服务器之间的端口必须处于打开状态。

**加密**

发现工具使用加密的 WinRM 通信。我们建议目标服务器上的 WinRM 侦听器也使用加密：`winrm set winrm/config/service '@{AllowUnencrypted="false"}'`

**NTLM vs Kerberos**

发现工具支持 WinRM 身份验证协议 Kerberos 和 NTLM。NTLM 只能与 HTTPS 一起使用，Kerberos 可以同时与 HTTP 或 HTTPS 一起使用。

**WMI 要求**

发现工具查询以下 WMI 命名空间。WinRM 账户需要对与您的集合模块相关的每个命名空间具有读取权限：


| WMI 命名空间 | 使用者 | 
| --- | --- | 
| root\\cimv2 | 操作系统指标、 Hyper-V 主机元数据、SQL Server 集合 | 
| root\\virtualization\\v2 | Hyper-V 虚拟机清单 | 
| root\\StandardCIMV2 | 网络收藏 | 
| root\\Microsoft\\SqlServer\\ComputerManagement\* | SQL 服务器集合 | 
| root\\Microsoft\\SqlServer\\ReportServer\\\* | SQL 服务器集合 (SSRS) | 

对于网络收集，请确保满足以下条件：
+ 允许通过 ICMP 进行网络连接
+ 允许通过 TCP 端口 135 \+ 临时 TCP 端口范围 (49152-65535) 进行网络连接
+ 禁用 UAC
+ 已设置远程 DCOM 权限
+ 创建所需权限最少的专用服务账户
+ WMI 命名空间权限是为具有命名空间:、类的 Windows 账户设置的 `\\root\\standardcimv2` `MSFT_NetTCPConnection`

对于 SQL Server 集合，由于复杂的 WMI 对象权限要求，需要一个属于**本地管理员组**的 Windows 帐户（本地或域）。

### 设置 SSH
<a name="discovery-tool-ssh-setup"></a>
+ 默认端口为 22。支持自定义端口。必须在发现工具和目标服务器之间打开配置的端口。
+ 为使 SSH 网络收集正常工作，请提供配置为使用无密码 sudo 的用户。
+ 确保目标 Linux 服务器上有以下命令（默认安装在大多数发行版上）：`ss`或`netstat`用于网络收集，以及、`lsblk`、`iostat`、`dmidecode`、`smartctl`、`top`、`ps``free``ip`、和，`df`用于操作系统指标收集。

该发现工具支持 SSH 的两种身份验证方法：

**选项 1：用户名和密码**

提供 SSH 用户名和密码。这是默认的身份验证方法。

**选项 2：SSH 私钥**

提供 SSH 用户名和 PEM 格式的私钥。要使用此选项，请在配置 **SSH 凭据时从 “**身份验证类型**” 下拉列表中选择 SSH 密钥**。**如果私钥使用密码加密，请在可选的密钥密码字段中输入密码。**

支持以下密钥格式：
+ RSA
+ ECDSA
+ ed25519
+ OpenSSH 格式
+ PKCS \#8 格式

两种身份验证方法都支持自动连接。凭证以静态加密方式存储。

### 设置 SNMP
<a name="discovery-tool-snmp-setup"></a>
+ 默认端口为 161/UDP。支持自定义端口。必须在发现工具和目标服务器之间打开配置的端口。
+ 对于 SNMP v2：提供一个可以访问 TCP 连接 OID 的只读社区字符串。
+ 对于 SNMP v3：提供 username/password 具有可访问 TCP 连接 OID 的只读权限的 auth/privacy 详细信息

发现工具需要访问以下内容：
+ `"1.3.6.1.2.1.6.13.1.1." (tcpConnState)`
+ `"1.3.6.1.2.1.6.19.1.8." (tcpConnectionProcess)`
+ `"1.3.6.1.2.1.25.4.2.1.2." (hrSWRunName)`

## 配置 Oracle 数据库访问权限
<a name="discovery-tool-oracle-access"></a>

将 Oracle 数据库访问权限配置为直接通过 SQL 连接收集详细的 Oracle 数据库元数据。收集的元数据包括 CDB 和 PDB 拓扑、功能使用情况和已安装的选项。这些数据可以帮助您更准确地规划 Oracle 数据库迁移。你可以通过直接 SQL 连接收集 Oracle Database 12c 版本 1 (12.1) 及更高版本。 OS-level 回退检测适用于所有 Oracle 版本。

**在发现工具中配置 Oracle 凭据**

1. 在**发现工具**页面的边栏中，选择**数据库访问权限**。

1. 选择**添加 Oracle 凭据**。

1. 提供以下信息：
   + **友好名称**-此凭证的描述性名称（例如）。`Oracle Production`
   + **端口** — Oracle 监听器端口（默认为 1521）。
   + **服务名称**-目标数据库的 Oracle 服务名称。
   + **用户名**-Oracle 服务帐户的用户名。
   + **密码**-Oracle 服务帐户密码。
   + **Auto-connect**— 启用此选项可尝试使用库存中的所有服务器的凭证。关闭此选项可手动将凭据分配给特定服务器。

1. 要添加更多凭据（例如，针对不同的 Oracle 环境），请再次选择**添加 Oracle 凭据**。

1. 选择**保存**。

**凭证模式**

配置 Oracle 凭据时，可以在两种模式之间进行选择：
+ **手动** — 将凭据固定到特定服务器。发现工具将该凭据专门用于该服务器。如果连接失败，则不会发生回退。修复凭证配置以解决问题。
+ **Auto-connect**— 发现工具会针对清单中的每台服务器尝试使用每个自动连接凭证。当服务器成功获得证书时，发现工具将使用该凭证进行后续的所有收集回合。

**检测流程**

配置 Oracle 凭据时，发现工具会首先尝试直接 SQL 连接。如果所有数据库凭据都失败，则该工具会回退到通过 SSH 或 WinRM 进行 OS-level 检测，因此您仍然可以在不访问数据库的情况下发现 Oracle 安装。

## 更新发现工具
<a name="discovery-tool-updating"></a>

该发现工具没有自动更新功能，但是在安装 30 天后，您将收到提醒通知以进行更新。建议使应用程序保持最新状态，以接收最新的功能和安全补丁。

**手动更新工具**

1. 从提供的链接下载最新的发现工具映像文件（适用于 VMware 的 OVA 或适用于 VHD 的 VHD Hyper-V）。

1. （可选）我们建议您在部署最新的发现工具图像文件之前删除以前的发现工具映像文件。

1. 按照 “部署发现工具” 部分中的步骤部署更新版本。

## 撤消访问权限
<a name="discovery-tool-revoking"></a>

您可以单独撤消对每个发现源的访问权限。当您撤消对一个源的访问权限时，来自其他来源的数据不会受到影响。
+ **撤消 vCenter 访问权限-删除 v** Center 凭据和数据。 VMware-collected 不删除 Hyper-V 数据、导入的服务器数据或操作系统凭据。
+ **撤消 Hyper-V 访问权限**-仅删除 Hyper-V 凭据和 Hyper-V-collected 数据。
+ **删除导入的服务器**-从清单中移除导入的服务器。保留从这些服务器收集的下游收集数据（网络、数据库）。