扫描

本文介绍 Movere 中的扫描。 Movere 可以扫描、发现和捕获本地环境,以及 AWS 和 GCP 等其他公有云中的设备。

Movere 扫描独立于平台 (Windows、linux) 或托管提供商 (本地环境、私有云或公有云) 的设备。 Movere 不需要 VMware 或虚拟机监控程序环境。 如果 Movere 处于联机状态,则可以访问任何设备。

我可以扫描什么?

以下是可在 Movere 中扫描的内容。

Scan 详细信息
Windows 设备 使用 Windows Server 操作系统、Windows 客户端操作系统从 Active Directory 域或设备 FQDN、DNS 或 IP 地址扫描 Windows 设备。

设备可能已加入域或未连接到域,例如工作组中的设备。

可以在 Movere 控制台中运行扫描,也可以从命令行运行扫描。

运行实际资源消耗扫描以从 Windows Server 设备捕获设备消耗数据,以显示系统性能随时间推移。
Linux 设备 从 Active Directory、特定子网或使用 DNS 或 IP 地址扫描支持的 Linux 设备。

可以在 Movere 控制台中运行扫描,也可以从命令行运行扫描。

可以从 Linux 设备收集实际资源消耗数据。
Active Directory (计算机、用户和信任) 扫描 Active Directory 对象。

可以扫描单个域或多个域,以发现一个林范围的发现。
vCenter 设备 从 Movere 控制台远程扫描 VMWare vCenter 服务器设备。

设备是预配置的 Linux VM,针对 vCenter Server 进行了优化。

VMWare vCenter 服务器设备也可以作为 Linux 设备进行扫描。
Windows vCenter Server 扫描运行 vCenter Server 数据库的 SQL 实例。
SQL Server 从 Windows 和 Linux 设备收集SQL Server数据。

- 如果 Movere 在设备上检测到 SQL 引擎,但无法连接到 SQL,则会收集基本配置数据。

- 如果 Movere 具有扫描 SQL 数据的访问权限,它可以收集有关 SQL 本身以及利用 SQL 作为基础数据库的其他 Microsoft 产品(如 Sharepoint、System Center、Exchange)的其他信息。

- 如果为 SQL 启用了实际资源消耗扫描,它将收集性能和数据库连接信息。

详细了解 Movere 收集的 SQL 数据。
Microsoft 365 扫描订阅数据。

收集有关 Microsoft 365 用户以及分配给他们的订阅的信息。

扫描公有云中的设备

在公有云(如 AWS 和 GCP)中扫描设备时,使用与任何其他设备扫描相同的要求、流程和过程。 没有任何特殊说明。 运行 Movere 控制台的设备应连接到相关的云环境,以便扫描工作。 建议从云环境中进行扫描,但不必进行扫描。

扫描哪些数据?

除了扫描 Windows 和 Linux 设备外,Movere 还会从 Active Directory、VMware vCenter、Exchange Server、SQL Server、SharePoint、Dynamics CRM、Microsoft 365、System Center Configuration Manager 收集数据,System Center Virtual Machine Manager、System Center Operations Manager、System Center Data Protection Manager、Lync Server、Hyper-V、Altiris、LANDesk、LanSweeper 和 BigFix。

清单扫描

Movere 支持清单扫描和实际资源消耗扫描。

清单扫描从设备和应用捕获时间点配置数据。 每次收集清单数据时,它都会报告最新的可用信息,并取代以前收集的任何内容。 例如:

  • 清单扫描捕获设备运行Windows Server 2016 4 GB RAM 的信息。
  • 扫描后,将 RAM 增加到 8 GB,并运行清单扫描。
  • 扫描现在报告 8 GB RAM,但不会报告自上次扫描以来系统已分配了额外的 RAM。
  • 可以执行手动分析来发现此问题,但 Movere 不会报告它。

清单扫描机器人

清单扫描使用适用于 Windows 和 Linux 的机器人运行,也可以仅针对 Windows 远程执行。 Movere 清单机器人 (大小约为 2 MB) ,并生成通常小于 10 KB 的数据文件或有效负载。 机器人不是永久性的。 由于它们很小,因此可以轻松部署、运行和删除它们。 在要扫描的设备上不需要永久性代理。

清单扫描过程

清单扫描的工作原理如下:

  1. 清单机器人将复制到要扫描的设备。
  2. 机器人运行一次,并生成输出文件。
  3. 然后,机器人停止并删除自身。
  4. Movere 机器人可以将有效负载推送回 Movere 控制台或直接推送到云。
  5. Movere 还支持 Windows 的拉取机制 (,) 从不支持 TLS 1.2 的目标设备提取有效负载。

通常计划每隔几天或几周运行一次清单数据扫描。

实际资源消耗扫描

实际资源消耗扫描在定义的时间段内收集系统性能信息。 与清单扫描不同,它收集 (处理器、内存、磁盘使用情况) 不断变化的消耗数据。

实际资源消耗数据在迁移规划期间特别有用。 它可用于准确计算云大小,以确保设备在迁移后保持或提高性能。

资源消耗扫描机器人

在 Windows 操作系统中,默认实际资源消耗机器人作为已安装的服务运行。 在 Linux 操作系统中,实际资源消耗机器人作为进程运行。 如果 linux 计算机重新启动或重新启动,用户需要再次重新启动扫描。 与清单机器人不同,实际资源消耗机器人需要保持运行状态,以捕获随时间推移的消耗数据。

  • Arc2:与 .NET 3.5 框架和 x86 兼容的 Movere 实际资源消耗二进制文件。
  • Arc4:与 .NET 4.0 框架或更高版本和 x64 兼容的 Movere 实际资源消耗二进制文件。

在扫描之前,机器人会执行扫描前检查,包括进程枚举速度和进程级性能计数器访问。 这些检查:

  • 防范 CPU 峰值或性能计数器权限问题。
  • 当遇到系统速度缓慢或权限拒绝时,机器人会捕获宏级别性能指标,并跳过进程级别 CPU、RAM、路径和版本等详细信息。 这样,Movere 就可以评估消耗量,而不会对系统性能产生负面影响。

收集的数据

实际资源消耗扫描从以下源收集数据。

  • Windows 系统:
    • Windows 进程:Windows PerfMon、Windows Common Information Model (CIM)
    • 磁盘性能:Windows PerfMon
    • 网络吞吐量:Windows PerfMon
    • Netstat:Windows IP 帮助程序库
    • 事件:.NET 连接器到 Windows 事件
    • SQL Server:Movere SQL 查询
  • Linux 系统:
    • bash shell 命令输出 (例如 ps、df、netstat)
    • 直接查询系统虚拟文件,例如 /proc/diskstats

为了跟踪使用情况更改并准确计算峰值工作负载,通常会频繁捕获数据。 例如,每隔 5、10 或 15 分钟,在多个天或几周内。

资源消耗扫描过程

实际资源消耗扫描的工作原理如下:

  1. 指定收集数据的频率 (频率) ,以及) (持续时间。

    • 实际资源消耗扫描的频率表示在每个目标设备上 (每 5、10、15、30 或 60 分钟) 生成 ARCBeat 的频率。
    • ARCBeat 是两个资源消耗数据收集点之间的时间。 默认值为 5 分钟,但你可以在控制台中修改此值。
    • 例如,如果选择五分钟,则一天中最多可以有 288 个 ARCBeat。 (每小时 12 次 ARCbeat x) 24 小时。
    • 持续时间表示扫描在每个目标设备上运行的时间 (1 天、3 天、7 天、30 天或 90 天) 。 默认持续时间为 7 天。
    • 可以选择在扫描期间收集 SQL 数据。 默认情况下,不会收集它。
  2. (Arc2、Arc4) 和集合设置的实际资源消耗机器人将发送到要监视的设备。

  3. 机器人根据指定的设置捕获使用情况数据。

  4. 如果直接从目标设备启用自动上传到云,Movere 会三次尝试将数据上传到云。 如果上传失败,则会发生以下情况:

    1. 机器人每 30 秒尝试三次 (一次,) 将有效负载传输到 Movere 控制台设备。
    2. 如果传输到控制台失败,机器人将有效负载保存在本地。 如果传输/上传成功,则会从目标设备中删除有效负载。
    3. 发生下一个 ARCbeat 并生成新有效负载时,机器人会再次尝试与云或控制台建立连接,以上传剩余的有效负载。
    4. 机器人在扫描期间继续在目标设备上运行,并在建立连接后立即上传或传输保存的有效负载。
  5. 成功上传后,机器人会根据频率和持续时间设置等待下一次数据收集。 机器人在指定的持续时间内保持原位。

  6. 扫描持续时间结束后,机器人将终止并删除自身。

扫描和重新扫描

Movere 提供以下用于运行扫描的选项:

  • 首次扫描:立即运行扫描。 在扫描向导结束时,在 Movere 控制台中启动扫描。 这适用于批量操作,例如扫描 Active Directory 中的每个设备、M365 用户。
  • 重新扫描:重新扫描选项对于首次扫描中尚未扫描的目标设备非常有用。 如果在首次扫描后尚未达到所需的库存范围,则这是首选的扫描方法。 例如:
    • 如果运行仅针对 Active Directory 的第一次扫描,现在希望使用结果以活动 Windows 设备或活动 Linux 设备为目标。
    • 以未加入域/工作组设备为目标
    • 对于在先前扫描期间无法捕获的设备(例如由于权限不足而拒绝扫描的设备),用户应使用重新扫描来以具有正确权限集的设备为目标。
    • 针对已扫描的设备,以便更新清单数据或捕获设备上的环境更改。

重新扫描类型

若要重新扫描设备,可以使用以下扫描数据源之一。

方法 详细信息
基于活动设备列表重新扫描 可以选择:

- 根本未清点或过去 31 天内的活动 Windows 服务器/工作站。 这只能在成功扫描 Active Directory 后运行。

- 根本未清点或在过去 31 天内未清点的活动 Linux 设备。

无论设备状态如何,此选项都会扫描设备。 在大型域或具有许多过时对象的域中,此选项可能会增加扫描时间。
基于重新扫描文件进行重新扫描 可以从 Movere 门户下载重新扫描文件 (.CSV) ,也可以手动创建自定义 (.CSV) 文件

对于 Linux 设备,不能选择在控制台中使用重新扫描文件。 可以从命令提示符为 Linux 设备使用重新扫描文件。

在控制台外部扫描

可以将机器人传送到目标设备,并在控制台外运行扫描。 尽管我们建议使用 Movere 控制台交付机器人,但 Movere 确实支持手动或使用第三方软件放置机器人。 了解详细信息

扫描方法

设置扫描时,可以选择以下扫描方法。

方法 处理
扫描为服务 (建议的) Movere 评估目标设备上运行的 .NET 版本,并尝试扫描三次:

- 第一次尝试:Movere 使用 管理凭据中提供的用户帐户将机器人复制到设备。 机器人作为本地服务运行。 扫描使用设备上的 NT Authority\System 帐户运行。

- 第二次尝试:如果第一次尝试不起作用,Movere 会使用提供的用户帐户复制机器人,并将机器人作为本地进程运行。

- 第三次尝试:如果第二次尝试不起作用,Movere 将使用提供的用户帐户运行扫描,并使用远程 WMI 收集信息。
作为进程扫描 如果不希望机器人作为本地服务运行,请选择此选项以本地进程的形式运行 Movere。

Movere 尝试扫描两次:

- 第一次尝试:Movere 使用 管理凭据中提供的用户帐户复制机器人。 机器人作为本地进程运行。

- 第二次尝试:如果第一次尝试不起作用,Movere 不会复制机器人。 扫描使用提供的用户帐户运行,并使用远程 WMI 收集信息。
使用 WMI 远程扫描 这是不建议使用的较旧技术,除非:

- 无法部署机器人。

- (Windows 2000、Windows 2003、Windows XP) 的目标设备不支持 .NET。

使用此方法时,不会复制任何机器人。 扫描使用提供的用户帐户运行,并使用远程 WMI 收集信息。

WMI 仅收集清单数据,不进行实际资源消耗扫描。

通过网络进行 Movere 扫描。 扫描速度取决于网络带宽和正在扫描的设备的状态。 如果 .NET 扫描通常在 30 秒内完成,则对于同一扫描,WMI 扫描可能需要 3 到 5 分钟。

.NET 扫描

默认情况下,Movere 使用 .NET Framework 在本地扫描每个 Windows 设备,这提供了两个关键优势:

  • 最大程度地减少网络流量。 Movere 会创建一个临时本地服务来捕获主要 Windows 数据和辅助数据(如 SQL Server 和 Exchange)。 通过在本地扫描设备,Movere 控制台与每个目标设备之间的通信仅限于传送 Movere 扫描引擎 (< 5MB) ,而加密输出文件的返回通常 < (10 KB 用于清单扫描,5 KB 用于实际资源消耗扫描) 。
  • 最大程度地减少内存使用。 Movere 扫描引擎仅使用可用的资源,不会取消任何现有正在运行的应用程序的特权。

.NET 扫描的工作原理如下:

  1. Movere 使用在 Movere 控制台中指定的凭据连接到设备。

    • 访问设备后,在作为服务运行时使用本地系统帐户执行扫描,或者在作为进程运行时使用控制台中提供的帐户执行扫描。
    • 如果目标设备已安装SQL Server,Movere 会使用相同的凭据访问 SQL。 如果它们不起作用,Movere 会按照添加的顺序尝试使用 Movere 控制台中添加的其他凭据来访问SQL Server。
  2. 清单和实际资源消耗机器人以及 FrameworkVerifier 和令牌文件将传递到 Windows 目标设备。

    • 机器人和文件通过端口 139 和 445 传送。
    • 成功传递返回通过 Windows 选择的随机端口号在控制台中启动机器人和服务成功消息。
    • 当 FrameworkVerifier 启动时,终结点将切换到端口 443。 如果它可以访问超过 443 的主机,则控制台中会显示“ 本地扫描已启动 ”消息。
    • 这些消息确认机器人已成功传递、扫描已开始,并且目标设备可以与 Movere 控制台通信。
  3. 扫描开始时,将检查目标设备上的资源使用情况。

    • 例如,如果扫描开始,并且目标设备当前使用的 CPU 为 80%,则 Movere 最多可限制为总系统资源的 10%
    • Windows 使用复杂算法来确保资源可供操作系统本身使用。
    • 如果设备有更多的可用资源,则 Movere 会利用其他资源。 .NET Framework 会做出此决定,而不是 Movere。
    • 如果资源不足,将显示以下错误:
      • 内存不足,无法继续执行程序:当目标设备的资源不足时,Movere 会终止自身,而不是将设备置于进一步的压力之下。
      • 系统资源不足,无法完成请求的服务:如果目标设备没有足够的处理能力来执行请求的任务,Movere 将终止自身。
  4. 考虑每个设备的扫描总时间。 Movere 可以在 30 秒内扫描大多数设备。 因此,如果为 Movere 分配了 10% 的 CPU,它可以在不到一分钟内完成扫描。 如果 CPU 使用率超过 10%,扫描时间会进一步缩短。 总扫描时间会影响在设备上运行的产品。 例如,与没有SQL Server的设备相比,安装了SQL Server的设备需要更长的时间进行清点。

  5. 当 .NET 与操作系统一起将资源分配给 Movere 时,Movere 会将线程优先级设置为最低可用级别。

    • 如果其他应用程序需要计算周期,则会为其提供优先级。
    • 如果其他应用未请求 CPU,则 Movere 机器人使用分配的 CPU 资源运行,以便它们可以在尽可能短的时间内完成扫描。
  6. 机器人/二进制文件将发送到目标设备。

    • (Bot2/Bot4/FrameworkVerifier) ,清单二进制文件大约为 4 MB
    • 对于实际资源消耗,二进制文件 (Arc2/Arc4) 添加大约 3.8 MB。

    通过将二进制文件复制到目标 Windows 设备的 管理员$ 共享中的 Temp 文件夹,将二进制文件写入磁盘。 如果无法访问 管理员$ 共享,则 Movere 将尝试将其复制到 Temp 文件夹中的 C$ 共享。

  7. Movere 创建的输出在内存中生成、加密并保存到同一位置的磁盘。

  8. 扫描结束时,将输出文件直接上传到 Movere 或 Movere 控制台后,Movere 会自行删除机器人文件,在扫描的设备上不留下任何痕迹。 实际资源消耗机器人包含多个安全检查,旨在正常退出扫描。

确定扫描类型

若要确定 Movere 是否可以在本地还是远程扫描系统,Movere 查询 Windows 公共信息模型 (CIM) 和 Windows 注册表。

  • 如果 Movere 无法连接到 CIM,则不会尝试进一步扫描。
  • 如果 Movere 可以连接到 CIM 但无法连接到注册表,则扫描将继续,因为 Movere 从 Windows 设备收集的数据主要来自 CIM。
  • 无论 Movere 是在本地还是远程扫描目标,它都使用:
    • .NET System.Management.ManagementObjectSearcher 初始化 ManagementObjectSearcher 类的新实例,用于调用指定范围中的特定查询 (root\CIMV2) 。
    • .NET System.Win32.RegistryKey,表示 Windows 注册表中的键级节点。 此类提供注册表封装,Movere 仅在不可写模式下打开它 (只读) ,因此 Movere 无法更改注册表。
    • Movere 对注册表的访问权限受 Windows 权限控制,32 位和 64 位连接方法都用于考虑较旧的 Windows 系统。
    • 如果远程扫描目标终结点,则通过 Windows Management Instrumentation (WMI) 建立连接。
    • 对于远程扫描,Movere 使用模拟获取正确的访问级别,加上 30 秒的超时,以解释通过 WMI 建立的缓慢连接。 Movere 使用帐户模拟,需要登录类型LOGON32_LOGON_INTERACTIVE进行远程扫描和基于机器人的扫描。

Windows 设备扫描

设置 Windows 设备的扫描时,选择要扫描的 Windows 设备类型。

  • 可以在 Windows Server 和 Windows 工作站上运行清单扫描,并在 Windows Server 上运行实际资源消耗扫描。
  • 可以扫描特定 Active Directory 域中的设备、按 FQDN 或 IP 地址以特定设备为目标,也可以扫描特定子网中的目标设备。
  • 还可以扫描工作组或外围网络中的设备。

需要特定的凭据才能扫描 Windows 设备。

  • 该帐户需要在要扫描的设备上访问本地管理员。
  • 在 Windows 设备扫描期间,Movere 会从辅助源(如SQL Server)收集数据。 请务必注意,Movere 不允许使用具有域管理员权限的帐户来收集此辅助数据。
  • 由于不能对辅助数据使用域管理员帐户,因此可以为 Movere 创建专用帐户,并为其分配所需的本地管理员权限。 了解详细信息
  • 必须至少指定一组凭据,然后才能运行扫描。
  • 在 Movere 控制台中输入的凭据使用对称密钥算法进行加密。 用于创建密钥的确切算法和变量高度机密。 此过程已由第三方独立审查,不会被视为风险,因为机器人在完成扫描后会解散目标设备。
  • Movere 不会以纯文本形式存储凭据,并且不会将凭据上传到云。

查看 Windows 设备扫描所需的权限。

Linux 设备扫描

Movere 的 Linux 二进制文件包含优化的 C++Golang 代码,以确保 Linux 扫描尽可能高效地运行。 Movere 利用经过全面审查的内置 Linux 功能,并与大多数分发版一起打包,以确保及时响应和最低使用量。

Linux 设备扫描应由具有安全 shell (SSH) 访问要清点的 Linux 设备的用户运行。

  • 在 Movere 控制台中,可以指定用户名/密码组合或允许访问的 SSH 私钥。
  • Movere 支持打开 SSH 私钥以及 RSA SSH 私钥。 用户必须检查第一行私钥,并确保应是 RSA 标头私钥(例如 ---BEGIN RSA PRIVATE KEY--- )或 OpenSSH 标头私钥(如 ---BEGIN OPENSSH PRIVATE KEY---)。
  • 虽然不需要根访问,但如果已虚拟化 Linux 设备,则不会收集某些数据点,例如用于将虚拟设备链接到物理主机) 的通用唯一标识符 (UUID) (,如果没有根访问权限。
  • 如果 Movere 中提供的 linux 帐户可以通过 SSH 基本访问 Linux 设备,则 Movere 还可以在没有 sudo 命令的情况下运行
  • 如果指定用户名,请使用 UPN 格式,而不是user@domainname.com域\username(如果该帐户是 Active Directory 域的一部分)。

扫描命令

Movere 使用 SSH 远程执行 bash 命令。 Linux 用户帐户必须能够从 Movere 控制台设备运行这些命令。 表中汇总了 Movere 使用的命令。

命令 详细信息
uname 确认设备名称,并 (32 位或 64 位) 标识设备体系结构。 这将确定哪个 Movere Linux 机器人用于扫描设备。
pidof 检查 Movere Linux 机器人是否已在设备上运行。 如果有,则返回机器人的进程 ID。
kill 仅当 pidof 命令发现已在设备上运行的 Movere 机器人时使用。 如果机器人正在运行,它将终止,以便可以启动新的扫描。

例如,如果运行了三天的概念证明资源消耗扫描,然后在一天后决定开始 30 天扫描,则可以使用此命令。 无需等待两天,第一次扫描完成,而是开始第二次扫描,终止第一次扫描。
其中 标识 Movere 尝试使用的命令的位置。

可以使用此命令查找 which uname, pidof, sudo, kill, chmod, nohup每个命令的位置。 如果为每个位置返回一个位置,则用户帐户可以运行扫描。
scp 将 Movere 文件从控制台设备复制到目标 Linux 设备。 文件放置在控制台中指定的 Linux 帐户的主目录中。
nohup 使用是因为 Movere Linux 机器人默认在后台运行。 如果注销会话,或者连接过早终止,则进程将终止或挂起。 此命令可防止这种情况发生。
chmod 使要扫描的系统上的 Movere Linux 机器人可执行。

如果可以将机器人模式更改为可执行的“chmod 755”,则机器人将运行。 如果没有,则不会开始扫描。
sudo 此命令将用户提升为管理员。这不是必需的。 如果 sudo 不可用,则唯一的数据点 Movere 可能无法捕获目标设备的 UUID/序列号。

此字段不是必需的,仅在克隆设备时用于链接 VM,并且为克隆提供与原始相同的 FQDN 和 MAC 地址。 这种情况很少发生。
ps 报告当前进程的快照。
mkdir 新建目录。
触摸 更改文件时间戳。

请注意:

  • 对于 Linux 设备,机器人将复制到运行扫描的用户帐户的主目录。
  • 执行机器人后,它会在目标设备上本地使用这些命令来收集清单和资源消耗数据:
    • Lsb。 cat, whoami, hostname, grep, lshal, awk, dmidecode, ifconfig (通常为 /sbin/ifconfig) , ip (通常为 /sbin/ip) , lsblk, df, ps, dpkg-query, rpm, test, find, netstat, gpg, gpg2.
    • 每次扫描期间不会运行这些命令。 有些依赖于上一个命令的输出。

Active Directory 扫描

Movere 连接到 Active Directory,如下所示:

  • Movere 使用 .NET System.Net.LdapConnection 进行连接,这是一种允许分页的低级别 LDAP 连接器。 这使 Movere 能够以极少的开销请求大型数据集,例如 Active Directory 用户。
  • 对于全局目录查询,例如, (收集林) 中的子域列表,Movere 使用 .NET System.DirectoryServices.Protocols.LdapDirectoryIdentifier 通过端口 3268 连接到全局目录。
  • Movere 只需查询每个域的单个域控制器。 它依赖于 Active Directory 将其定向到最近的域控制器。 查询全局编录时会应用相同的逻辑。
  • Movere 控制台将检测并填充运行主机的设备域名。 如果运行控制台的设备未加入域,则不会填充任何域。
  • 运行 Active Directory 扫描时,Movere 会利用映射到 Movere 控制台中该域的凭据。
  • 可以使用“域”选项卡上的文本框在控制台中指定任何域名或工作组名称。
  • 然后,域会自动添加到凭据映射选项卡中的域列表。
  • 这使你可以在开始扫描之前从 Movere 控制台集中输入凭据。
  • 默认情况下,Movere 从 Active Directory 收集设备和用户对象。 虽然这是建议的方法,但你可以从命令提示符处从扫描运行中排除用户对象。
    • 如果未收集用户数据,Movere 仍会列出在清单和实际资源消耗扫描期间登录到每个设备的帐户,但不会针对 Active Directory 对其进行解析。
    • 用户名字、姓氏、电子邮件地址、公司、员工编号/ID、国家/地区字段等为空。 因为 Movere 没有此数据。
      • 这仅从用户角度影响 SharePoint、Skype for Business、Exchange、RDS、Dynamics CRM 和 Project Server 等产品。
      • Movere 仍会看到这些应用,但不显示有关访问这些应用的用户的信息。
      • 其他数据不受影响。
    • 排除用户数据收集不会影响在 Movere 注册过程中收集的用户数据。 此数据是用户安全访问 Movere 网站所必需的。

SQL Server扫描

Movere 扫描 SQL,如下所示:

  1. Movere 确认 SQL 引擎存在且正在运行,以便对其进行扫描。

    • 为了标识 SQL 引擎,Movere 通过 CIM 枚举目标终结点上存在的服务。
    • 如果存在 SQL 引擎,但它是被动实例,则 Movere 不会尝试连接到它。
    • Movere 也不会尝试连接到SQL 报告、分析或集成实例。
  2. 若要开始扫描,Movere 会按照输入的顺序使用分配给域的凭据。

    • Movere 始终从 Windows 凭据开始,必须输入至少一组凭据,然后才能开始扫描。
    • 如果这些凭据失败,Movere 会尝试使用分配给目标域的任何其他凭据进行连接,但域管理员凭据除外。 域管理员凭据永远不会传输到机器人。
    • 如果所有基于 Windows 的凭据都失败,Movere 将使用在控制台中输入的任何基于 SQL 的凭据。 请注意:基于 SQL 的凭据未链接到特定域,因此,如果输入多个凭据,则所有 SQL 凭据 () 将按输入顺序使用。
    • 如果所有凭据都失败,Movere 会使用启动扫描的帐户(可能是 Movere 用户的凭据或本地系统帐户)进行最后一次连接尝试。
  3. 确认 SQL 引擎的正在运行的实例并准备好凭据后,Movere 将通过 TCP 进行连接。 若要进行连接,Movere 会查询注册表以标识每个正在运行的实例正在侦听的端口号。 Movere 尝试通过标识的端口号使用服务器名称连接到 SQL Server。

    • Movere 不会尝试绕过 TCP。 Movere 不使用命名管道。 这是 Movere 通常不连接到 SQL Express 实例的主要原因,因为网络协议(包括 TCP)在 Express Edition 中默认处于禁用状态。
    • Movere 不会尝试使用设备 IP 地址、随机端口号或假设 SQL 实例使用 SQL 端口 1433 进行连接。
    • 唯一的例外是SQL Server群集。 如果从活动节点标识 SQL Server 群集,Movere 会尝试使用群集名称而不是节点名称连接到SQL Server。
    • 无论是在本地还是远程扫描设备,与 SQL Server 的连接都是相同的,并且始终使用 .NET 本机 SQL 客户端库完成。
  4. 若要标识每个SQL Server上的数据库,Movere 会查询 master 数据库,以获取数据库列表。 针对此列表执行架构检查。

    • 如果 Movere 尚未获得对 master 数据库的访问权限,它将转到 CIM 以检索活动数据库的列表。 如果 Movere 仅有权访问要扫描的数据库,则这提供了一种解决方法。
    • 为了避免对每个数据库运行查询,Movere 对每个数据库执行架构检查。 如果找到匹配项,则针对该数据库运行一组特定于该技术 (和版本) 的查询。
  5. 若要运行 Movere 清单和实际资源消耗扫描,用于扫描 SQL 的帐户需要“查看服务器状态”角色、“查看任何定义”角色,并db_datareader SQLServer master、msdb 和任何已创建数据库的访问权限。

    • 如果 Movere 用户帐户无权访问 SQL Server,则 Movere 仍可以收集有关SQL Server的基本信息,包括:
      • 服务器上未处于脱机状态的每个数据库的名称和大小。
      • 如果数据库未处于脱机状态,则它可能处于以下几种状态之一,包括联机、正在还原、正在恢复、怀疑或紧急。
      • 如果 Movere 无法访问SQL Server,并且正在从 Windows 层检索数据库列表,而不是假设每个数据库都处于联机状态,Movere 会将状态报告为“未确认”。
  6. Movere 收集数据。 为了避免引入过时数据,Movere 会捕获将数据写入数据库的最后一个日期。 如果数据超过 90 天,则收集的数据将保留为可能过时的数据。

资源消耗扫描

默认情况下,启用实际资源消耗扫描时,Movere 不会收集 SQL 数据。 在 Movere 控制台中设置资源消耗扫描时,需要专门启用 SQL 数据收集。 或者,可以在 ARC2 和 ARC4 配置文件中将 CollectSql 值设置为 True

扫描的 SQL 数据

Movere 扫描表中汇总SQL Server数据的类别。

数据 详细信息 需要帐户
数据库列表

在 master 数据库中包括状态、大小、创建日期和聚类分析、镜像和可用性组信息。
Movere 默认收集数据库列表,不需要创建特定的服务帐户。 Movere 首先使用映射到SQL Server所在的域的 Windows 凭据,然后使用 SQL 凭据,最后在作为服务运行时使用 NT AUTHORITY\SYSTEM 帐户。

必须启用所需的帐户才能登录,具有公共服务器角色,并具有连接到数据库引擎的权限。 默认情况下,所有这些功能都处于启用状态。

对于 SQL Server 2008 R2 和以前的版本,默认情况下,NT AUTHORITY\SYSTEM 也分配有 sysadmin 特权。 这在 2012 SQL Server中删除。 这意味着在扫描 SQL Server 2012 及更高版本时,必须专门向所需的用户帐户授予对SQL Server的访问权限。
性能和连接信息 这包括每分钟实例的 CPU 使用率、DB 的 CPU 使用率和数据库连接。 Movere 首先使用映射到SQL Server所在的域的 Windows 凭据,然后使用 SQL 凭据,最后在作为服务运行时使用 NT AUTHORITY\SYSTEM 帐户。

必须启用所需的帐户才能登录,具有公共服务器角色,并具有连接到数据库引擎的权限。 默认情况下,所有这些功能都处于启用状态。

若要在实际资源消耗扫描期间收集SQL Server性能数据,请在 Movere 控制台中设置 选项。
msdb db) (日志传送详细信息 日志传送配置存储在 msdb 数据库中。 对于日志传送,除非 SQL 版本较旧,并且 NT AUTHORITY\SYSTEM 帐户) 设置了 sysadmin,否则必须db_datareader为所需帐户授予对 msdb 数据库 (的访问权限。

如果使用日志传送并且 Movere 无法访问 msdb 数据库,则日志传送配置不会显示在 Movere 门户中。
SQL Server辅助数据和驱动器统计信息 扫描SQL Server上托管的数据,以支持 System Center Configuration Manager、Sharepoint 等应用程序。 除非 SQL 版本旧且 NT AUTHORITY\SYSTEM 帐户具有 sysadmin,否则db_datareader必须向所需帐户授予对辅助数据库 (的访问权限。 这还包括在数据库级别收集的性能和磁盘统计信息。

这种类型的扫描需要 sysadmin 权限。

如果需要此级别的详细信息,请向 sysadmin 授予对 NT AUTHORITY\SYSTEM 帐户或 Movere 可以使用的服务帐户的访问权限。

视图的差异

表汇总了通过 SQL 实际资源消耗扫描收集各种性能数据所需的数据库最低访问权限。

性能数据 对数据库的最小访问权限
CPU 实例级数据 Master
CPU 数据库级数据 Master
SQL 磁盘利用率 单个数据库
SQL 数据库连接 Master
SQL 数据库读/写数据 单个数据库
使用的 SQL 数据库 v 总大小 单个数据库

凭据映射

在组织内,一组凭据不太可能有权访问所有域和设备。 配置扫描时,Movere 提供用于指定应在哪些域中使用哪些凭据的选项。

  • 可以跨所有目标域使用一个帐户,也可以将不同的凭据映射到不同的域。
  • 凭据和域之间的映射在 Movere 控制台中提供,并且以加密格式保存在 .config 文件中。
  • 如果提供的凭据与运行控制台的用户不同,则凭据必须完全控制安装了控制台的文件夹。
  • Movere 当前不支持使用多个 Linux 凭据。 只有一个 Linux 凭据可用于 Linux 扫描。
  • SQL Server凭据不需要映射到域。 这些凭据仅用于连接到SQL Server实例,而不管它们位于哪个域中。
  • 如果按 IP 地址扫描 Windows 设备,在扫描之前,Movere 会尝试将 IP 地址解析回 FQDN。 成功取决于网络设置。
    • 如果成功,Movere 将使用在 Movere 控制台中分配给该域的凭据。
    • 如果 IP 地址未解析,则使用运行扫描的用户的凭据。 Movere 不会循环访问凭据列表,希望获得访问权限,因为这可能会锁定这些帐户。

通过防火墙/代理扫描

  • 如果目标设备具有防火墙,Movere 可以利用文件和打印共享或远程管理。 如果防火墙允许任一异常,则 Movere 会安全地通过它。
  • 对于通过防火墙上传,Movere 利用存储在 Windows 控制面板 >Internet 选项>Connections>局域网设置中的凭据。 此设置位于 MovereService.exe.config 文件中。
    • 只要设置正确,Movere 在 Movere 控制台设备和目标设备上都使用代理。
    • 如果代理服务器阻止控制台计算机上的 Movere 访问 Internet,则会出现以下错误消息: 连接到服务器时出错。异常:远程服务器返回错误: (407) 需要代理身份验证

后续步骤

扫描 Windows 设备。