Azure Connected Machine 代理概述

借助 Azure Connected Machine 代理,可以管理企业网络或其他云提供商中托管在 Azure 外部的 Windows 和 Linux 计算机。

警告

产品组仅为过去 1 年内发布的 Connected Machine 代理版本提供官方支持。 客户应在此时限内更新到某个代理版本。

代理组件

Azure Connected Machine agent 体系结构概述。

Azure Connected Machine 代理包包含捆绑在一起的多个逻辑组件:

  • Hybrid Instance Metadata Service (HIMDS) 管理 Azure 的连接和已连接的计算机的 Azure 标识。

  • 来宾配置代理提供评估计算机是否符合所需的策略和强制实施符合性等的功能。

    对于已断开连接的计算机,请注意 Azure Policy guest configuration 的以下行为:

    • 以断开连接的计算机为目标的 Azure Policy 分配不受影响。
    • 来宾分配在本地存储 14 天。 在 14 天的期限内,如果 Connected Machine 代理重新连接到服务,则重新应用策略分配。
    • 分配的策略将在 14 天后删除,并且在 14 天期限后不会重新分配到计算机。
  • Extension 代理管理 VM 扩展,包括安装、卸载和升级。 Azure 下载扩展并将它们复制到 Windows 上的 %SystemDrive%\%ProgramFiles%\AzureConnectedMachineAgent\ExtensionService\downloads 文件夹和 Linux 上的 /opt/GC_Ext/downloads。 在 Windows 上,扩展安装到以下路径:%SystemDrive%\Packages\Plugins\<extension>;在 Linux 上,扩展安装到 /var/lib/waagent/<extension>

注意

Azure Monitor 代理 (AMA) 是一个独立的代理,用于收集监视数据,不会替代 Connected Machine Agent;AMA 仅取代 Windows 和 Linux 计算机的 Log Analytics 代理、诊断扩展和 Telegraf 代理。

代理资源

以下信息介绍了 Azure Connected Machine 代理使用的目录和用户帐户。

Windows 代理安装详细信息

Windows 代理作为 Windows Installer 包 (MSI) 分发。 从下载中心下载 Windows 代理。

安装适用于 Windows 的 Connected Machine 代理会应用以下系统范围的配置更改:

  • 安装过程会在安装时创建以下文件夹。

    Directory 说明
    %ProgramFiles%\AzureConnectedMachineAgent azcmagent CLI 和实例元数据服务可执行文件。
    %ProgramFiles%\AzureConnectedMachineAgent\ExtensionService2\GC 扩展服务可执行文件。
    %ProgramFiles%\AzureConnectedMachineAgent\GCArcService2\GC 来宾配置(策略)服务可执行文件。
    %ProgramData%\AzureConnectedMachineAgent azcmagent CLI 和实例元数据服务的配置、日志和标识令牌文件。
    %ProgramData%\GuestConfig 扩展包下载、来宾配置(策略)定义下载,以及扩展和来宾配置服务的日志。
    %SYSTEMDRIVE%\packages 扩展包可执行文件
  • 安装此代理会在目标计算机上创建以下 Windows 服务。

    Service name 显示名称 进程名称 说明
    himds Azure 混合实例元数据服务 himds.exe 将元数据与 Azure 同步,并托管本地 REST API,以便扩展和应用程序访问元数据并请求 Microsoft Entra 托管标识令牌
    GCArcService 来宾配置 Arc 服务 gc_arc_service.exe(1.36 版本之前的 gc_service.exe) 审核并强制实施计算机上的 Azure 来宾配置策略。
    ExtensionService 来宾配置扩展服务 gc_extension_service.exe(1.36 版本之前的 gc_service.exe) 在计算机上安装、更新和管理扩展。
  • 进行代理安装会创建以下虚拟服务帐户。

    虚拟帐户 说明
    NT SERVICE\himds 无特权帐户,用于运行 Hybrid Instance Metadata Service。

    提示

    此帐户需要“作为服务登录”的权限。 代理安装期间会自动授予此权限,但如果组织使用组策略配置用户权限分配,则可能需要调整组策略对象以授予“NT SERVICE\himds”或“NT SERVICE\ALL SERVICES”的权限,以便代理正常运行。

  • 进行代理安装会创建以下本地安全组。

    安全组名称 说明
    混合代理扩展应用程序 此安全组的成员可以为系统分配的托管标识请求 Microsoft Entra 令牌
  • 进行代理安装会创建以下环境变量

    名称 默认值 说明
    IDENTITY_ENDPOINT http://localhost:40342/metadata/identity/oauth2/token
    IMDS_ENDPOINT http://localhost:40342
  • 有几个日志文件可用于故障排除,如下表所述。

    日志 说明
    %ProgramData%\AzureConnectedMachineAgent\Log\himds.log 记录检测信号和标识代理组件的详细信息。
    %ProgramData%\AzureConnectedMachineAgent\Log\azcmagent.log 包含 azcmagent 工具命令的输出。
    %ProgramData%\GuestConfig\arc_policy_logs\gc_agent.log 记录来宾配置(策略)代理组件的详细信息。
    %ProgramData%\GuestConfig\ext_mgr_logs\gc_ext.log 记录有关扩展管理器活动的详细信息(扩展安装、卸载和升级事件)。
    %ProgramData%\GuestConfig\extension_logs 包含单个扩展日志的目录。
  • 此过程创建本地安全组“混合代理扩展应用程序”。

  • 卸载代理后,以下项目将保留。

    • %ProgramData%\AzureConnectedMachineAgent\Log
    • %ProgramData%\AzureConnectedMachineAgent
    • %ProgramData%\GuestConfig
    • %SystemDrive%\packages

Linux 代理安装详细信息

Microsoft 包存储库中托管的分发包的首选包格式(.rpm.deb)提供了适用于 Linux 的 Connected Machine 代理。 shell 脚本捆绑包 Install_linux_azcmagent.sh 可安装和配置该代理。

服务器重启后,不需要安装、升级和删除 Connected Machine 代理。

安装适用于 Linux 的 Connected Machine 代理会应用以下系统范围的配置更改。

  • 安装程序会创建以下安装文件夹。

    Directory 说明
    /opt/azcmagent/ azcmagent CLI 和实例元数据服务可执行文件。
    /opt/GC_Ext/ 扩展服务可执行文件。
    /opt/GC_Service/ 来宾配置(策略)服务可执行文件。
    /var/opt/azcmagent/ azcmagent CLI 和实例元数据服务的配置、日志和标识令牌文件。
    /var/lib/GuestConfig/ 扩展包下载、来宾配置(策略)定义下载,以及扩展和来宾配置服务的日志。
  • 安装此代理会创建以下守护程序。

    Service name 显示名称 进程名称 说明
    himdsd.service Azure Connected Machine Agent Service himds 此服务实现混合实例元数据服务 (IMDS) 来管理 Azure 的连接和已连接计算机的 Azure 标识。
    gcad.service GC Arc Service gc_linux_service 审核并强制实施计算机上的 Azure 来宾配置策略。
    extd.service Extension Service gc_linux_service 在计算机上安装、更新和管理扩展。
  • 有几个日志文件可用于故障排除,如下表所述。

    日志 说明
    /var/opt/azcmagent/log/himds.log 记录检测信号和标识代理组件的详细信息。
    /var/opt/azcmagent/log/azcmagent.log 包含 azcmagent 工具命令的输出。
    /var/lib/GuestConfig/arc_policy_logs 记录来宾配置(策略)代理组件的详细信息。
    /var/lib/GuestConfig/ext_mgr_logs 记录有关扩展管理器活动的详细信息(扩展安装、卸载和升级事件)。
    /var/lib/GuestConfig/extension_logs 包含单个扩展日志的目录。
  • 进行代理安装会创建在 /lib/systemd/system.conf.d/azcmagent.conf 中设置的下述环境变量。

    名称 默认值 说明
    IDENTITY_ENDPOINT http://localhost:40342/metadata/identity/oauth2/token
    IMDS_ENDPOINT http://localhost:40342
  • 卸载代理后,以下项目将保留。

    • /var/opt/azcmagent
    • /var/lib/GuestConfig

代理资源治理

Azure Connected Machine Agent 旨在管理代理和系统资源消耗。 在下列情况下,该代理会采取资源监管:

  • 计算机配置(以前成为来宾配置)服务最多可以使用 5% 的 CPU 来评估策略。

  • 扩展服务最多可使用 Windows 计算机上 5% 的 CPU 和 Linux 计算机上 30% 的 CPU 来安装、升级、运行及删除扩展。 安装后,某些扩展可能会应用更严格的 CPU 限制。 存在以下例外:

    扩展类型 操作系统 CPU 限制
    AzureMonitorLinuxAgent Linux 60%
    AzureMonitorWindowsAgent Windows 100%
    LinuxOsUpdateExtension Linux 60%
    MDE.Linux Linux 60%
    MicrosoftDnsAgent Windows 100%
    MicrosoftMonitoringAgent Windows 60%
    OmsAgentForLinux Linux 60%

在正常操作(定义为连接到 Azure 且未主动修改扩展或评估策略的 Azure Connected Machine 代理)期间,可以预期代理会消耗以下系统资源:

Windows Linux
CPU 使用情况(规范化为 1 核) 0.07% 0.02%
内存使用率 57 MB 42 MB

上述性能数据于 2023 年 4 月在运行 Windows Server 2022 和 Ubuntu 20.04 的虚拟机上收集。 实际的代理性能和资源消耗量因服务器的硬件和软件配置而异。

自定义资源限制

默认资源治理限制是大多数服务器的最佳选择。 但在管理扩展或评估策略时,CPU 资源有限的小型虚拟机和服务器可能会遇到超时,这是因为 CPU 资源不足,无法完成任务。 从代理版本 1.39 开始,可以自定义应用于扩展管理器和计算机配置服务的 CPU 限制,以帮助代理更快地完成这些任务。

要查看扩展管理器和计算机配置服务的当前资源限制,请运行以下命令。

azcmagent config list

在输出中,你将看到两个字段 guestconfiguration.agent.cpulimitextensions.agent.cpulimit,以及指定以百分比形式表示的当前资源限制。 在全新安装代理时,这两者都会显示 5,因为默认限制为 CPU 的 5%。

要将扩展管理器的资源限制更改为 80%,请运行以下命令:

azcmagent config set extensions.agent.cpulimit 80

实例元数据

在 Connected Machine Agent 向已启用 Azure Arc 的服务器注册后,将收集有关已连接计算机的元数据信息。 具体而言:

  • 操作系统名称、版本、类型和发行版本

  • 计算机名称

  • 计算机制造商和型号

  • 计算机完全限定域名 (FQDN)

  • 域名(如果已联接到 Active Directory 域)

  • Active Directory 和 DNS 完全限定的域名 (FQDN)

  • UUID (BIOS ID)

  • Connected Machine 代理程序检测信号

  • Connected Machine 代理版本

  • 托管标识的公钥

  • 策略符合性状态和详细信息(如果使用来宾配置策略)

  • 已安装 SQL Server(布尔值)

  • 群集资源 ID(适用于 Azure 本地计算机)

  • 硬件制造商

  • 硬件型号

  • CPU 系列、套接字、物理核心和逻辑核心计数

  • 总物理内存

  • 序列号

  • SMBIOS 资产标记

  • 网络接口信息

    • IP 地址
    • 子网
  • Windows 许可信息

    • OS 许可证状态
    • OS 许可证通道
    • 扩展的安全更新资格
    • 扩展的安全更新许可证状态
    • 扩展的安全更新许可证通道
  • 云提供商

  • Amazon Web Services (AWS) 元数据(在 AWS 中运行时):

    • 帐户 ID
    • 实例 ID
    • 区域
  • Google Cloud Platform (GCP) 元数据(在 GCP 中运行时):

    • 实例 ID
    • 映像
    • 计算机类型
    • 项目 ID
    • 项目编号
    • 服务帐户
    • 区域
  • 在 OCI 中运行时,Oracle 云基础结构元数据:

    • 显示名称

代理从 Azure 请求以下元数据信息:

  • 资源位置(区域)
  • 虚拟机 ID
  • 标记
  • Microsoft Entra 托管标识证书
  • Guest Configuration 策略分配
  • 扩展请求 - 安装、更新和删除。

注意

已启用 Azure arc 的服务器不会在客户部署服务实例的区域之外存储/处理客户数据。

部署选项和要求

代理部署和计算机连接需要某些先决条件。 还有一些需要注意的网络要求

我们提供了用于部署代理的几个选项。 有关详细信息,请参阅部署计划部署选项

克隆准则

可以安全地将 azcmagent 包安装到黄金映像中,但一旦使用 azcmagent connect 命令连接计算机,计算机将收到特定的资源信息。 如果是通过从黄金映像克隆计算机来生成计算机,必须先对每台计算机进行专用化处理,然后才能使用 azcmagent connect 命令将其连接到 Azure。 在创建和专用化每台计算机之前,请勿将原始黄金映像计算机连接到 Azure。

如果连接的服务器收到 429 错误消息,可能是因为你先将服务器连接到 Azure,然后将该服务器用作克隆的黄金映像。 由于资源信息已记录到映像中,从该映像创建的克隆计算机会尝试向相同的资源发送检测信号消息。

为了解决现有计算机的 429 错误消息,请在每台克隆计算机上运行 azcmagent disconnect --force-local-only,然后使用适当的凭据重新运行 azcmagent connect,通过唯一的资源名称将计算机连接到云。

灾难恢复

已启用 Arc 的服务器没有客户启用的灾难恢复选项。 如果 Azure 区域中发生中断,系统会故障转移到同一 Azure 地理位置中的另一个区域(如果存在)。 虽然此故障转移过程是自动的,但确实需要一些时间。 连接的计算机代理在此期间将会断开连接,并在故障转移完成前显示“已断开连接”状态。 还原中断后,系统将故障回复到其原始区域。

Azure Arc 中断不会影响客户工作负载本身;而只会影响通过 Arc 对适用的服务器进行管理。

后续步骤