部署 Azure Connected Machine 代理后,可能需要重新配置代理、升级代理、删除代理或进行其他更改。 这些日常维护任务可以手动完成。 还可以寻找可以自动化任务的位置,从而减少操作错误和开支。
本文介绍了如何执行与 Connected Machine 代理以及支持 Arc 的服务器相关的各种操作。
小窍门
有关命令行参考信息,请参阅 azcmagent
CLI 文档。
安装特定版本的代理
我们通常建议使用 最新版本 的 Azure Connected Machine 代理。 但是,如果你出于任何原因需要运行旧版代理,可以按照这些说明安装特定版本的代理。 仅在去年发布的 Connected Machine 代理版本会由产品组正式支持。
升级代理
Azure Connected Machine 代理会定期更新以解决漏洞修复、增强稳定性并添加新功能。 Azure 顾问可识别未使用最新版 Machine Agent 的资源,并建议升级到最新版本。 当你选择已启用 Azure Arc 的服务器时,或通过 Azure 门户访问顾问时,它会在 概述 页上显示横幅通知你。
适用于 Windows 和 Linux 的 Azure Connected Machine 代理可以手动或自动升级到最新版本,具体取决于你的要求。 安装、升级或卸载 Azure Connected Machine Agent 无需重启服务器。
下表介绍了执行代理升级所支持的方法:
操作系统 | 升级方法 |
---|---|
Windows操作系统 | 手动 Microsoft更新 |
Ubuntu | 容易 |
Red Hat/Oracle Linux/Amazon Linux | 百胜 |
SUSE Linux Enterprise Server | zypper |
可从以下位置获取基于 Windows 的计算机的 Azure Connected Machine 代理的最新版本:
Microsoft更新
Microsoft 更新配置
使 Windows 代理版本保持最新状态的建议方法是通过Microsoft更新自动获取最新版本。 这使您可以使用现有的更新基础结构(如 Microsoft Configuration Manager 或 Windows Server Update Services),将 Azure Connected Machine 代理更新集成到您的操作系统常规更新计划中。
默认情况下,Windows 服务器不会检查 Microsoft 更新中的更新。 若要接收 Azure Connected Machine Agent 的自动更新,必须配置计算机上的 Windows 更新客户端,以检查其他 Azure 产品。
对于属于某个工作组并连接到 Internet 以检查更新的 Windows 服务器,你可以通过以管理员身份在 PowerShell 中运行以下命令来启用 Microsoft 更新:
$ServiceManager = (New-Object -com "Microsoft.Update.ServiceManager")
$ServiceID = "7971f918-a847-4430-9279-4a52d1efe18d"
$ServiceManager.AddService2($ServiceId,7,"")
对于属于域并通过 Internet 检查更新的 Windows 服务器,你可以使用组策略实现规模化配置此设置。
使用可以管理组织组策略对象 (GPO) 的帐户,登录到用于服务器管理的计算机。
打开 组策略管理控制台。
展开林、域和组织单位,以便为新 GPO 选择适当的范围。 如果已有要修改的 GPO,请跳到步骤 6。
右键单击容器并选择“在此域中创建 GPO 并将其链接到此处……”。
提供策略的名称,例如“启用 Microsoft 更新”。
右键单击策略并选择“编辑”。
导航至“计算机配置”>“管理模板”>“Windows 组件”>“Windows 更新”。
选择“配置自动更新”设置进行编辑。
选择“启用”单选按钮以使策略生效。
在“选项”部分底部,选中底部的“安装其他 Microsoft 产品的更新”框。
选择“确定”。
所选范围内的计算机下次刷新其策略时,将开始同时检查 Windows 更新和 Microsoft 更新的更新。
对于使用 Microsoft Configuration Manager 或 Windows Server Update Services (WSUS) 向其服务器传递更新的组织,需要将 WSUS 配置为同步 Azure Connected Machine 代理包,并批准它们以便在服务器上安装。 按照 Windows Server Update Services 或 Configuration Manager 的指南,将以下产品和分类添加到配置:
- 产品名称:Azure Connected Machine 代理(选择所有子选项)
- 分类:关键更新,更新
同步更新后,可以选择将 Azure Connected Machine 代理产品添加到自动批准规则,以便服务器自动与最新的代理软件保持最新状态。
使用安装向导进行升级
使用具有管理权限的帐户登录到计算机。
从 https://aka.ms/AzureConnectedMachineAgent 下载最新的代理安装程序
运行“AzureConnectedMachineAgent.msi”以启动安装向导。
如果安装向导发现以前版本的代理,则会自动升级它。 升级完成后,安装向导将自动关闭。
从命令行进行升级
如果不熟悉 Windows Installer 包的命令行选项,请查看 Msiexec 标准命令行选项和 Msiexec 命令行选项。
使用具有管理权限的帐户登录到计算机。
从 https://aka.ms/AzureConnectedMachineAgent 下载最新的代理安装程序
若要无提示地升级代理并在
C:\Support\Logs
文件夹中创建安装日志文件,请运行以下命令:msiexec.exe /i AzureConnectedMachineAgent.msi /qn /l*v "C:\Support\Logs\azcmagentupgradesetup.log"
卸载代理
对于不再需要使用已启用 Azure Arc 的服务器进行管理的服务器,请按照以下步骤从服务器中删除任何 VM 扩展、断开代理连接,并从服务器卸载软件。 必须依次完成所有这些步骤,才能完全移除系统中所有相关的软件组件。
删除 VM 扩展
如果将 Azure VM 扩展部署到已启用 Azure Arc 的服务器,则必须在断开代理或卸载软件之前卸载所有扩展。 卸载 Azure Connected Machine 代理并不会自动移除扩展,如果将服务器重新连接到 Azure Arc,则不会识别这些扩展。
有关如何列出和删除已启用 Azure Arc 的服务器上的任何扩展的指导,请参阅以下资源:
断开服务器与 Azure Arc 的连接
从服务器中删除所有扩展后,下一步是断开代理的连接。 这样做会删除服务器的相应 Azure 资源,并清除代理的本地状态。
若要断开代理连接,请在服务器上以管理员身份运行 azcmagent disconnect
命令。 系统会提示使用有权删除订阅中的资源的 Azure 帐户登录。 如果已在 Azure 中删除资源,请传递附加标志来清除本地状态 azcmagent disconnect --force-local-only
。
如果您的管理员帐户和 Azure 帐户不同,则可能会遇到登录提示默认使用管理员帐户的问题。 若要解决这些问题,请运行 azcmagent disconnect --use-device-code
命令。 系统会提示使用有权删除资源的 Azure 帐户登录。
注意
从在 Azure Local 上运行的已启用 Arc 的 VM 断开代理连接时,请仅使用 azcmagent disconnect --force-local-only
命令。 使用不带 -force-local-only
标志的命令可能会导致 Azure Local 上的 Arc VM 从 Azure 和本地删除。
卸载代理
最后,可以从服务器中删除连接的计算机代理。
以下两种方法都将移除代理,但不会移除计算机上的“C:\Program Files\AzureConnectedMachineAgent”文件夹。
从控制面板卸载
按照以下步骤从计算机中卸载 Windows 代理:
使用拥有管理员权限的帐户登录到计算机。
在“控制面板”中,选择“程序和功能”。
在“程序和功能”中,选择“Azure Connected Machine Agent”,点击“卸载”,然后点击“是”。
还可以直接从代理安装向导删除 Windows 代理。 运行 AzureConnectedMachineAgent.msi 安装程序包以执行此操作。
从命令行卸载
可以使用以下示例,从命令提示符手动卸载代理或使用自动化方法(如脚本)。 首先,需要从操作系统中检索产品代码,即应用程序包的主体标识符 GUID。 使用 Msiexec.exe 命令行 (msiexec /x {Product Code}
) 执行卸载。
打开注册表编辑器。
在注册表项
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall
下,查找并复制产品代码 GUID。使用 Msiexec 卸载代理,如以下示例所示:
在命令行中,输入以下命令:
msiexec.exe /x {product code GUID} /qn
可使用 PowerShell 执行相同的步骤:
Get-ChildItem -Path HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall | ` Get-ItemProperty | ` Where-Object {$_.DisplayName -eq "Azure Connected Machine Agent"} | ` ForEach-Object {MsiExec.exe /x "$($_.PsChildName)" /qn}
更新或删除代理设置
若要将代理配置为通过代理服务器与服务通信或在部署后删除此配置,请使用此处介绍的方法之一。 在此方案中,代理使用 HTTP 协议进行出站通信。
可以使用命令或系统环境变量配置 azcmagent config
代理设置。 如果在代理配置和系统环境变量中指定了代理服务器,则代理配置优先并成为有效设置。 使用 azcmagent show
查看代理的有效代理配置。
注意
已启用 Azure Arc 的服务器不支持使用 Log Analytics 网关作为 Connected Machine 代理。
代理特定的代理配置
特定于代理的代理配置是配置代理服务器设置的首选方法。 此方法从 Azure Connected Machine 代理版本 1.13 开始可用。 使用特定于代理的代理配置有助于防止 Azure Connected Machine 代理的代理设置干扰系统上的其他应用程序。
注意
部署到支持 Azure Arc 的服务器上的扩展不会继承代理特定的代理配置。 有关为扩展配置代理设置的指导,请参阅部署的每个扩展的文档。
若要将代理配置为通过代理服务器进行通信,请运行以下命令:
azcmagent config set proxy.url "http://ProxyServerFQDN:port"
可以使用 IP 地址或简单主机名代替 FQDN(如果你的网络要求你这样做)。 如果你的代理服务器在端口 80 上运行,你可以在末尾省略“:80”。
要检查代理设置中是否配置了代理服务器 URL,请运行以下命令:
azcmagent config get proxy.url
要阻止代理通过代理服务器进行通信,请运行以下命令:
azcmagent config clear proxy.url
使用命令重新配置代理设置 azcmagent config
时,无需重启任何服务。
专用终结点的代理跳过
从代理版本 1.15 开始,还可以指定不应使用指定的代理服务器的服务。 这有助于在使用拆分网络设计和专用终结点场景中实现,其中你希望 Microsoft Entra ID 和 Azure 资源管理的流量通过代理服务器访问公共终结点,而希望 Azure Arc 流量绕过代理直接与网络上的专用 IP 地址通信。
代理绕过功能不要求输入要绕过的特定 URL。 而是提供不应使用代理服务器的任何服务的名称。 位置参数是指已启用 Arc 的服务器的 Azure 区域。
当代理绕过值设置为 ArcData
时,只会绕过适用于 SQL Server 的 Azure 扩展的流量而不会绕过 Arc 代理的流量。
代理跳过值 | 受影响的终结点 |
---|---|
AAD |
login.chinacloudapi.cn login.partner.microsoftonline.cn pas.chinacloudapi.cn |
ARM |
management.chinacloudapi.cn |
AMA |
global.handler.control.monitor.azure.cn <virtual-machine-region-name>.handler.control.monitor.azure.cn <log-analytics-workspace-id>.ods.opinsights.azure.cn management.chinacloudapi.cn <virtual-machine-region-name>.monitoring.azure.cn <data-collection-endpoint>.<virtual-machine-region-name>.ingest.monitor.azure.cn |
Arc |
his.arc.azure.cn guestconfiguration.azure.cn |
若要通过代理服务器发送Microsoft Entra ID 和 Azure 资源管理器流量,但跳过 Azure Arc 流量的代理,请运行以下命令:
azcmagent config set proxy.url "http://ProxyServerFQDN:port"
azcmagent config set proxy.bypass "Arc"
若要提供服务的列表,请用逗号分隔服务名称:
azcmagent config set proxy.bypass "ARM,Arc"
若要清除代理绕过,请运行以下命令:
azcmagent config clear proxy.bypass
可以通过运行 azcmagent show
来查看有效的代理服务器和代理绕过配置。
Windows 环境变量
在 Windows 上,Azure Connected Machine 代理首先检查 proxy.url
代理配置属性(从代理版本 1.13 开始),然后检查系统范围的 HTTPS_PROXY
环境变量,以确定要使用的代理服务器。 如果两者都为空,则不使用代理服务器,即使配置了默认的 Windows 系统范围的代理设置。
建议使用特定于代理的代理配置,而不是系统环境变量。
若要设置代理服务器环境变量,请运行以下命令:
# If a proxy server is needed, execute these commands with the proxy URL and port.
[Environment]::SetEnvironmentVariable("HTTPS_PROXY", "http://ProxyServerFQDN:port", "Machine")
$env:HTTPS_PROXY = [System.Environment]::GetEnvironmentVariable("HTTPS_PROXY", "Machine")
# For the changes to take effect, the agent services need to be restarted after the proxy environment variable is set.
Restart-Service -Name himds, ExtensionService, GCArcService
若要将代理配置为停止通过代理服务器进行通信,请运行以下命令:
[Environment]::SetEnvironmentVariable("HTTPS_PROXY", $null, "Machine")
$env:HTTPS_PROXY = [System.Environment]::GetEnvironmentVariable("HTTPS_PROXY", "Machine")
# For the changes to take effect, the agent services need to be restarted after the proxy environment variable removed.
Restart-Service -Name himds, ExtensionService, GCArcService
Linux 环境变量
在 Linux 上,Azure Connected Machine 代理首先检查 proxy.url
代理配置属性(从代理版本 1.13 开始),然后检查为 himds、GC_Ext 和 GCArcService 守护程序设置的 HTTPS_PROXY
环境变量。 包含的脚本配置 systemd 的默认代理设置,以便计算机上的 Azure Connected Machine 代理和计算机上的所有其他服务使用指定的代理服务器。
若要将代理配置为通过代理服务器进行通信,请运行以下命令:
sudo /opt/azcmagent/bin/azcmagent_proxy add "http://ProxyServerFQDN:port"
若要删除环境变量,请运行以下命令:
sudo /opt/azcmagent/bin/azcmagent_proxy remove
从环境变量迁移到代理专用配置
如果已使用环境变量为 Azure Connected Machine 代理配置代理服务器,并且想要根据本地代理设置迁移到特定于代理的代理配置,请执行以下步骤:
通过运行
azcmagent config set proxy.url "http://ProxyServerFQDN:port"
,使用你的代理服务器信息配置代理程序。
重命名已启用 Azure Arc 的服务器资源
更改连接到已启用 Azure Arc 的服务器的 Linux 或 Windows 计算机的名称时,不会自动识别新名称,因为 Azure 中的资源名称是不可变的。 与其他 Azure 资源一样,若要使用新名称,必须在 Azure 中删除该资源,然后重新创建它。
对于已启用 Azure Arc 的服务器,在重命名计算机之前,必须删除 VM 扩展:
列出计算机上安装的 VM 扩展,并使用 Azure 门户、 Azure CLI 或 Azure PowerShell 记下其配置。
使用 Azure 门户、 Azure CLI 或 Azure PowerShell 删除计算机上安装的所有 VM 扩展。
使用 azcmagent 工具和 Disconnect 参数将计算机从 Azure Arc 断开连接,并从 Azure 中删除该计算机资源。 可以使用 Azure 标识 访问令牌或使用 服务主体以交互方式登录时手动运行此工具。
从已启用 Azure Arc 的服务器断开计算机的连接时,不会移除 Connected Machine Agent,并且你在此过程中不需要移除该代理。
将 Connected Machine 代理重新注册到已启用 Azure Arc 的服务器。 使用
azcmagent
参数运行 工具即可完成此步骤。 代理默认使用计算机的当前主机名,但可以通过将参数传递给--resource-name
connect 命令来选择自己的资源名称。重新部署从启用 Azure Arc 的服务器最初部署到该计算机的 VM 扩展。 如果使用 Azure Policy 定义部署了用于 VM 的 Azure Monitor(见解)代理,将在下一个评估周期后重新部署这些代理。
调查 Azure Arc 启用的服务器断开连接问题
Connected Machine 代理每五分钟向 Azure 发送一条心跳消息。 如果启用 Arc 的服务器停止向 Azure 发送心跳信号超过 15 分钟,则可能意味着服务器处于脱机状态、网络连接被阻止或代理未运行。
制定应对和调查这些事件的计划,包括设置资源运行状况警报,以便在此类事件发生时收到通知。 有关详细信息,请参阅 Azure 门户中的“创建资源运行状况警报”。]
相关内容
- 在 连接计算机代理故障排除指南中找到故障排除信息。
- 了解如何在任何规模 上规划和部署已启用 Azure Arc 的服务器 ,并实施集中式管理和监视。
- 了解如何使用 Azure Policy 管理计算机,例如 VM 来宾配置、验证计算机是否向预期的 Log Analytics 工作区报告,等等。