管理和維護 Connected Machine 代理程式
在 Azure Connected Machine 代理程式的初始部署之後,您可能需要重新設定代理程式、將其升級、或是從電腦中將其移除。 這些例行維護工作可以透過手動或自動的方式來完成,自動化方式不僅能降低操作錯誤還可節省費用。 本文說明代理程式的作業層面。 如需命令列參考資訊,請參閱 azcmagent CLI 文件。
安裝特定版本的代理程式
Microsoft 建議使用最新版的 Azure Connected Machine 代理程式,以獲得最佳體驗。 不過,如果您需要基於任何原因執行舊版的代理程式,您可以遵循下列指示來安裝特定版本的代理程式。
升級代理程式
Azure Connected Machine 代理程式會定期更新,以修正錯誤、增強穩定性和新增功能。 Azure Advisor 會識別未使用最新版機器代理程式的資源,並建議您升級至最新版本。 當您選取已啟用 Azure Arc 的伺服器時,其會在 [概觀] 頁面上顯示橫幅來通知您,或在透過 Azure 入口網站存取 Advisor 時通知您。
您可以根據需求,以手動或自動方式將適用於 Windows 和 Linux 的 Azure Connected Machine 代理程式升級為最新版本。 安裝、升級或解除安裝 Azure Connected Machine Agent 不需要重新啟動伺服器。
下表描述受到支援的執行代理程式升級方法:
作業系統 | 升級方法 |
---|---|
Windows | 手動 Microsoft Update |
Ubuntu | apt |
SUSE Linux Enterprise Server | zypper |
Windows 代理程式
您可以從下列來源取得適用於 Windows 機器的最新版 Azure Connected Machine 代理程式:
Microsoft Update
Microsoft Update 設定
讓 Windows 代理程式保持最新狀態的建議方式是透過 Microsoft Update 自動取得最新版本。 這可讓您利用現有的更新基礎結構 (例如 Microsoft Configuration Manager 或 Windows Server Update Services),並將 Azure Connected Machine 代理程式更新納入您的定期 OS 更新排程中。
Windows Server 預設不會檢查 Microsoft Update 中的更新。 若要接收 Azure Connected Machine Agent 的自動更新,您必須在機器上設定 Windows Update 用戶端,以檢查是否有其他 Microsoft 產品。
對於屬於工作群組並連線到網際網路以檢查更新的 Windows Server,您可以在 PowerShell 中以管理員身分執行下列命令來啟用 Microsoft Update:
$ServiceManager = (New-Object -com "Microsoft.Update.ServiceManager")
$ServiceID = "7971f918-a847-4430-9279-4a52d1efe18d"
$ServiceManager.AddService2($ServiceId,7,"")
對於屬於網域並連線到網際網路以檢查更新的 Windows Server,您可以使用群組原則大規模設定此設定:
使用具有可管理組織之群組原則 (GPO) 的帳戶登入用於伺服器管理的電腦。
開啟 [群組原則管理主控台]。
展開樹系、網域和組織單位,以選取新 GPO 的適當範圍。 如果您已經有想要修改的 GPO,請跳至步驟 6。
以滑鼠右鍵按一下適當的容器,然後選取 [在這個網域中建立 GPO 並連結到這裡…]。
提供原則的名稱,例如「啟用 Microsoft Update」。
以滑鼠右鍵按一下原則,然後選取 [編輯]。
瀏覽至 [電腦設定] > [系統管理範本] > [Windows 元件] > [Windows Update]。
選取 [設定自動更新] 設定加以編輯。
選取 [已啟用] 選項按鈕,以允許原則生效。
在 [選項] 區段底部,核取 [為其他 Microsoft 產品安裝更新] 方塊。
選取 [確定]。
當選取範圍中的電腦下一次重新整理其原則時,其便會開始檢查 Windows Update 和 Microsoft Update 中的更新。
對於使用 Microsoft Configuration Manager (MECM) 或 Windows Server Update Services (WSUS) 來提供更新至其伺服器的組織,您需要設定 WSUS 來同步處理 Azure Connected Machine Agent 套件,並將其核准以安裝至您的伺服器。 請遵循 Windows Server Update Services 或 MECM 的指引,將下列產品和分類新增至您的設定:
- 產品名稱:Azure 連線機器代理程式(選取所有子選項)
- 分類:重要更新和更新
同步處理更新之後,您可以選擇性地將 Azure Connected Machine Agent 產品新增至您的自動核准規則,讓伺服器自動保持在最新的代理程式軟體。
使用安裝精靈手動升級
以具有管理權限的帳戶登入電腦。
從 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"
Linux 代理程式
更新 Linux 機器上的代理程式會牽涉到兩個命令:一個命令是透過來自存放庫的最新可用套件清單來更新本機套件索引,另一個命令是升級本機套件。
您可以從 Microsoft 的 套件存放庫下載最新的代理程式套件。
注意
若要升級代理程式,您必須擁有「根」的存取權限,或具有使用 Sudo 提升權限的帳戶。
升級 Ubuntu 上的代理程式
若要使用存放庫中所做的最新變更來更新本機套件索引,請執行下列命令:
sudo apt update
若要升級您的系統,請執行下列命令:
sudo apt upgrade azcmagent
apt 命令的動作 (例如安裝和移除套件) 都會記錄在 /var/log/dpkg.log
記錄檔中。
升級 Red Hat/Oracle Linux/Amazon Linux 上的代理程式
若要使用存放庫中所做的最新變更來更新本機套件索引,請執行下列命令:
sudo yum check-update
若要升級您的系統,請執行下列命令:
sudo yum update azcmagent
yum 命令的動作 (例如安裝和移除套件) 都會記錄在 /var/log/yum.log
記錄檔中。
升級 SUSE Linux Enterprise 上的代理程式
若要使用存放庫中所做的最新變更來更新本機套件索引,請執行下列命令:
sudo zypper refresh
若要升級您的系統,請執行下列命令:
sudo zypper update azcmagent
zypper 命令的動作 (例如安裝和移除套件) 都會記錄在 /var/log/zypper.log
記錄檔中。
自動代理程序升級
發行新版本時,Azure Connected Machine 代理程式本身不會自動升級。 您應該將最新版的代理程式包含在排定的修補檔週期中。
重新命名已啟用 Azure Arc 伺服器的資源
當您變更連線到已啟用 Azure Arc 之伺服器的 Linux 或 Windows 機器名稱時,系統不會自動辨識新的名稱,因為 Azure 中的資源名稱是不可變的。 如同其他 Azure 資源,您必須刪除資源並重新建立資源才能使用新的名稱。
針對已啟用 Azure Arc 的伺服器,在重新命名機器之前,必須先移除 VM 延伸模組,再繼續:
稽核安裝在機器上的 VM 延伸模組,並使用 Azure CLI 或 Azure PowerShell 來記錄其設定。
移除任何安裝在機器上的 VM 延伸模組。 您可以使用 Azure 入口網站、Azure CLI 或 Azure PowerShell 來進行此作業。
使用 azcmagent 工具搭配 Disconnect 參數,將機器與 Azure Arc 中斷連線,並從 Azure 刪除機器資源。 您可以使用 Microsoft 身分識別存取權杖,或使用您用於上線的服務主體 (或以您建立的新服務主體),在互動登入時手動執行此作業。
將機器與已啟用 Azure Arc 的伺服器中斷連線並不會移除 Connected Machine 代理程式,而且您不需要在此流程中移除代理程式。
使用已啟用 Azure Arc 的伺服器重新註冊 Connected Machine 代理程式。 使用 Connect 參數執行
azcmagent
工具,以完成此步驟。 代理程式預設會使用電腦的目前主機名稱,但您可以將--resource-name
參數傳遞至該 Connect 命令,以選擇自己的資源名稱。從已啟用 Azure Arc 的伺服器重新部署原本部署至機器的 VM 延伸模組。 如果您使用 Azure 原則定義來部署適用於 VM 的 Azure 監視器 (深入解析) 代理程式或 Log Analytics 代理程式,則系統會在下一個評估週期之後重新部署代理程式。
解除安裝代理程式
對於您不想再透過已啟用 Azure Arc 的伺服器管理的伺服器,請遵循下列步驟,從伺服器移除任何 VM 延伸模組、中斷代理程式連線,以及從伺服器將軟體解除安裝。 請務必完成這些步驟,以完全移除系統中所有相關的軟體元件。
步驟 1:移除 VM 延伸模組
如果您已將 Azure VM 延伸模組部署至已啟用 Azure Arc 的伺服器,您必須先將延伸模組解除安裝,才能中斷代理程式或將軟體解除安裝。 解除安裝 Azure Connected Machine 代理程式不會自動移除延伸模組,而且如果您將伺服器重新連線至 Azure Arc,系統將無法識別這些延伸模組。
如需有關如何識別及移除已啟用 Azure Arc 之伺服器上任何延伸模組的指導,請參閱下列資源:
步驟 2:中斷伺服器與 Azure Arc 的連線
中斷與代理程式的連線會刪除伺服器的對應 Azure 資源,並清除代理程式的本機狀態。 中斷與代理程式的連線,請在伺服器上以管理員身分執行 azcmagent disconnect
命令。 系統會提示您使用有權在訂閱中刪除資源的 Azure 帳戶登入。 如果已在 Azure 中刪除資源,請傳遞額外的旗標以清理本機狀態:azcmagent disconnect --force-local-only
。
警告
將代理程式與在 Azure 本機上執行的已啟用 Arc 的 VM 中斷連線時,只 azcmagent disconnect --force-local-only
使用 命令。
步驟 3a:將 Windows 代理程式解除安裝
下列兩種方法都會移除代理程式,但是不會移除機器上的 C:\Program Files\AzureConnectedMachineAgent 資料夾。
從控制台解除安裝
請遵循下列步驟從機器中將 Windows 代理程式解除安裝:
使用具有系統管理員權限的帳戶登入電腦。
在 [控制台] 中,選取 [程式和功能]。
在 [程式和功能] 中,依序選取 [Azure Connected Machine 代理程式]、[解除安裝] 和 [是]。
您也可以直接從代理程式安裝精靈中刪除 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}
步驟 3b:將 Linux 代理程式解除安裝
注意
若要將代理程式解除安裝,您必須擁有「根」的存取權限,或具有使用 sudo 提升權限的帳戶。
用於解除安裝 Linux 代理程式所使用的命令取決於 Linux 作業系統。
針對 Ubuntu,執行下列命令:
sudo apt purge azcmagent
針對 RHEL、Oracle Linux 和 Amazon Linux,執行下列命令:
sudo yum remove azcmagent
針對 SLES,執行下列命令:
sudo zypper remove azcmagent
更新或移除 Proxy 設定
若要將代理程式設為透過 Proxy 伺服器來與服務通訊,或在部署之後移除此設定,可使用下列描述的方法之一來達成。 請注意,在此案例中,代理程式會使用 HTTP 通訊協定來輸出通訊。
從代理程式 1.13 版開始,可以使用 azcmagent config
命令或系統環境變數來設定 Proxy 設定。 如果在代理程式設定和系統環境變數中同時指定 Proxy 伺服器,則代理程式組態會優先成為有效設定。 使用 azcmagent show
來檢視代理程式的有效 Proxy 設定。
注意
已啟用 Azure Arc 的伺服器不支援使用 Log Analytics 閘道 作為連線機器代理程式的 Proxy。
代理程式特定的 Proxy 設定
代理程式特定的 Proxy 設定是從 Azure Connected Machine 代理程式 1.13 版開始提供,而且是設定 Proxy 伺服器設定的慣用方式。 此方法可防止 Azure Connected Machine 代理程式的 Proxy 設定干擾到系統上的其他應用程式。
注意
Azure Arc 所部署的延伸模組不會繼承代理程式特定的 Proxy 設定。 如需如何為每個延伸模組設定 Proxy 設定的指導,請參閱您部署的延伸模組文件。
若要設定代理程式透過 Proxy 伺服器進行通訊,請執行下列命令:
azcmagent config set proxy.url "http://ProxyServerFQDN:port"
如果您的網路需要,您可以使用 IP 位址或簡短的主機名稱來取代 FQDN。 如果您的 Proxy 伺服器在連接埠 80 上執行,您可以在結尾省略 ":80"。
若要檢查代理程式設定中是否已設定 Proxy 伺服器 URL,請執行下列命令:
azcmagent config get proxy.url
若要停止代理程式透過 Proxy 伺服器進行通訊,請執行下列命令:
azcmagent config clear proxy.url
使用 azcmagent config
命令重新設定 Proxy 設定時,您不需要重新啟動任何服務。
若要使用需要基本 Proxy 驗證的 Proxy,請將 Proxy URL 指定為:
azcmagent config set proxy.url "http://username:password@ProxyServerFQDN:port/"
注意
包含密碼的 Proxy URL 會以未加密的方式儲存在代理程式組態檔中。
私人端點的 Proxy 略過
從代理程式 1.15 版開始,您也可以指定不應使用指定 Proxy 伺服器的服務。 這有助於分割網路設計和私人端點案例,在這類案例中您希望 Microsoft Entra ID 和 Azure Resource Manager 流量通過 Proxy 伺服器到公用端點,但想要 Azure Arc 流量略過 Proxy,並與網路上的私人 IP 位址通訊。
Proxy 略過功能不需要您輸入欲略過的特定 URL。 而是提供不應該使用 Proxy 伺服器之服務的名稱。 location 參數是指 Arc Server 的 Azure 區域。
當設定為 ArcData
時,Proxy 略過值只會略過 SQL Server 的 Azure 延伸模組流量,而不會略過 Arc 代理程式。
Proxy 略過值 | 受影響的端點 |
---|---|
AAD |
login.windows.net login.microsoftonline.com pas.windows.net |
ARM |
management.azure.com |
AMA |
global.handler.control.monitor.azure.com <virtual-machine-region-name>.handler.control.monitor.azure.com <log-analytics-workspace-id>.ods.opinsights.azure.com management.azure.com <virtual-machine-region-name>.monitoring.azure.com <data-collection-endpoint>.<virtual-machine-region-name>.ingest.monitor.azure.com |
Arc |
his.arc.azure.com guestconfiguration.azure.com |
ArcData 1 |
*.<region>.arcdataservices.com |
1 從 Azure Connected Machine 代理程式 1.36 版和適用於 SQL Server 的 Azure 延伸模組 1.1.2504.99 版開始,可以使用 Proxy 略過值 ArcData
。 舊版在 "Arc" Proxy 略過值中包含 Azure Arc 端點所啟用的 SQL Server。
若要將 Microsoft Entra ID 和 Azure Resource Manager 流量透過 Proxy 伺服器傳送,但略過 Azure Arc 流量的 Proxy,請執行下列命令:
azcmagent config set proxy.url "http://ProxyServerFQDN:port"
azcmagent config set proxy.bypass "Arc"
若要提供服務清單,請以逗號分隔服務名稱:
azcmagent config set proxy.bypass "ARM,Arc"
若要清除 Proxy 略過內容,請執行下列命令:
azcmagent config clear proxy.bypass
您可以執行 azcmagent show
來檢視有效的 Proxy 伺服器和 Proxy 略過設定。
Windows 環境變數
在 Windows 上,Azure Connected Machine 代理程式會先檢查 proxy.url
代理程式設定屬性 (從代理程式 1.13 版開始),然後檢查全系統 HTTPS_PROXY
環境變數來判斷要使用的 Proxy 伺服器。 如果兩者皆為空白,即使已設定預設的 Windows 系統範圍 Proxy 設定,也不會使用 Proxy 伺服器。
Microsoft 建議使用代理程式專屬的 Proxy 設定,而不使用系統環境變數。
若要設定 Proxy 伺服器環境變數,請執行下列命令:
# 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
若要設定代理程式停止透過 Proxy 伺服器進行通訊,請執行下列命令:
[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
環境變數。 此處包含的指令碼會針對 Azure Connected Machine 代理程式以及機器上所有其他服務設定系統的預設 Proxy 設定,以使用指定的 Proxy 伺服器。
若要設定代理程式透過 Proxy 伺服器進行通訊,請執行下列命令:
sudo /opt/azcmagent/bin/azcmagent_proxy add "http://ProxyServerFQDN:port"
若要移除環境變數,請執行下列命令:
sudo /opt/azcmagent/bin/azcmagent_proxy remove
從環境變數移轉至代理程式專屬的 Proxy 設定
如果您已經使用環境變數來設定 Azure Connected Machine 代理程式的 Proxy 伺服器,而且想要根據本機代理程式設定移轉至代理程式專屬的 Proxy 設定,請遵循下列步驟:
將 Azure Connected Machine 代理程式升級至最新版本 (從 1.13 版開始),以使用新的 Proxy 組態設定。
執行
azcmagent config set proxy.url "http://ProxyServerFQDN:port"
,以 Proxy 伺服器資訊來設定代理程式。
警示:已啟用 Azure Arc 的伺服器中斷連線
Connected Machine 代理程式每隔五分鐘會定期將活動訊號訊息傳送至服務。 如果已啟用 Arc 的伺服器停止將活動訊號傳送至 Azure 的時間超過 15 分鐘,這可能表示其已離線、網路連線遭封鎖,或代理程式未執行。 制定計劃以了解如何回應和調查這些事件,包括設定資源健康狀態警示,以在這類事件發生時收到通知。
下一步
疑難排解資訊可在 Connected Machine 代理程式疑難排解指南中找到。
請檢閱規劃和部署指南,規劃以任何規模部署已啟用 Azure Arc 的伺服器,並實作集中式管理和監視。
了解如何使用 Azure 原則來管理您的機器,例如 VM 來賓設定、驗證機器是否回報至預期的 Log Analytics 工作區、啟用 VM 深入解析監視等等。