管理 Azure 監視器代理程式
本文內容
本文提供目前可用於安裝、解除安裝及更新 Azure 監視器代理程式 的不同選項。 此代理程式延伸模組可以安裝在 Azure 虛擬機器、擴展集和已啟用 Azure Arc 的伺服器上。 它也會列出建立與資料收集規則相關聯 的選項,定義代理程式應收集的資料。 安裝、升級或解除安裝 Azure 監視器代理程式不需要重新啟動伺服器。
虛擬機器擴充功能詳細資料
Azure 監視器代理程式會實作為 Azure VM 延伸模組 ,詳細資料如下表所示。 您可以使用任何安裝虛擬機器擴充功能的方法來安裝此功能,包括本文所述的方法。
延伸模組版本
檢視 Azure 監視器代理程式延伸模組版本 。
必要條件
安裝 Azure 監視器代理程式之前,必須先符合下列必要條件。
存取權限 :對於使用 Azure 入口網站以外的方法,您必須具有下列角色指派才能安裝代理程式:
內建角色
範圍
原因
虛擬機器、擴展集、 已啟用 Azure Arc 的伺服器 (英文)
若要部署代理程式
包含動作 Microsoft.Resources/deployments/ * 的任何角色 (例如 Log Analytics 參與者 )
透過 Azure Resource Manager 範本部署代理程式延伸模組 (也會供 Azure 原則使用)
非 Azure :若要裝載於 Azure 外部 的實體伺服器和虛擬機器上 (即內部部署) 或其他雲端中安裝代理程式,您必須先安裝 Azure Arc Connected Machine 代理程式 (無須額外成本)。
驗證 :必須在 Azure 虛擬機器上啟用受控識別 。 支援使用者指派與系統指派的受控識別。
使用者指派 :建議將此受控識別用於大規模部署,可透過內建 Azure 原則 進行設定。 您可以建立一次使用者指派的受控識別,並在多個 VM 之間共用,這代表其比系統指派的受控識別更具擴充性。 如果您採用使用者指派的受控識別,則必須透過延伸模組設定將受控識別詳細資料傳遞至 Azure 監視器代理程式:
{
"authentication": {
"managedIdentity": {
"identifier-name": "mi_res_id" or "object_id" or "client_id",
"identifier-value": "<resource-id-of-uai>" or "<guid-object-or-client-id>"
}
}
}
建議使用 mi_res_id
作為 identifier-name
。 為了簡潔起見,下列範例命令僅顯示有 mi_res_id
的使用方式。 如需 mi_res_id
、object_id
和 client_id
的詳細資訊,請參閱受控識別文件 。
系統指派 :此受控識別適用於初始測試或小型部署。 舉例來說,當大規模使用訂閱內的所有 VM 時,會導致在 Microsoft Entra ID 中建立 (和刪除) 大量的身分識別。 若要避免這類身分識別混亂,請改用使用者指派的受控身分識別。 針對啟用 Azure Arc 的伺服器,只要安裝 Azure Arc 代理程式,系統指派的受控識別便會自動啟用 。 這是啟用 Azure Arc 的伺服器唯一支援的類型。
對於啟用 Azure Arc 的伺服器而言並非必要 :當您在 Azure 入口網站建立資料收集規則 來安裝代理程式,則會自動啟用系統身分識別。
網路 :如果您使用網路防火牆,則虛擬機器的虛擬網路上必須啟用 Azure Resource Manager 服務標籤 。 虛擬機器也必須能夠存取下列 HTTPS 端點:
global.handler.control.monitor.azure.com
<virtual-machine-region-name>
.handler.control.monitor.azure.com (example: westus.handler.control.monitor.azure.com)
<log-analytics-workspace-id>
.ods.opinsights.azure.com (範例:12345a01-b1cd-1234-e1f2-1234567g8h99.ods.opinsights.azure.com)
(如果您在代理程式上使用私人連結,則必須新增 dce 端點 )。
磁碟空間 :必要的磁碟空間,可能會因代理程式使用方式或代理程式無法與指示傳送監視資料的目的地通訊而有很大的差異。 根據預設,代理程式需要 10Gb 的磁碟空間才能執行。 下方將提供容量規劃的指引:
目的
環境
路徑
建議的空間
下載並安裝套件
Linux
/var/lib/waagent/Microsoft.Azure.Monitor.AzureMonitorLinuxAgent-{Version}/
500 MB
下載並安裝套件
Windows
C:\Packages\Plugins\Microsoft.Azure.Monitor.AzureMonitorWindowsAgent
500 MB
擴充功能記錄
Linux (Azure VM)
/var/log/azure/Microsoft.Azure.Monitor.AzureMonitorLinuxAgent/
100 MB
擴充功能記錄
Linux (Azure Arc)
/var/lib/GuestConfig/extension_logs/Microsoft.Azure.Monitor.AzureMonitorLinuxAgent-{version}/
100 MB
擴充功能記錄
Windows (Azure VM)
C:\WindowsAzure\Logs\Plugins\Microsoft.Azure.Monitor.AzureMonitorWindowsAgent
100 MB
擴充功能記錄
Windows (Azure Arc)
C:\ProgramData\GuestConfig\extension_logs\Microsoft.Azure.Monitor.AzureMonitorWindowsAgent
100 MB
代理程式快取
Linux
/etc/opt/microsoft/azuremonitoragent, /var/opt/microsoft/azuremonitoragent
500 MB
代理程式快取
Windows (Azure VM)
C:\WindowsAzure\Resources\AMADataStore.{DataStoreName}
10.5 GB
代理程式快取
Windows (Azure Arc)
C:\Resources\Directory\AMADataStore. {DataStoreName}
10.5 GB
事件快取
Linux
/var/opt/microsoft/azuremonitoragent/events
10 GB
安裝
如需如何從 Azure 入口網站安裝 Azure 監視器代理程式的資訊,請參閱建立資料收集規則 。 此程序會建立規則,將其與選取的資源建立關聯,並在資源上安裝 Azure 監視器代理程式 (若尚未安裝)。
您可以使用 PowerShell 命令新增虛擬機器延伸模組,在 Azure 虛擬機器和已啟用 Azure Arc 的伺服器上安裝 Azure 監視器代理程式。
在 Azure 虛擬機器上安裝
使用下列 PowerShell 命令,在 Azure 虛擬機器上安裝 Azure 監視器代理程式。 根據您選擇的驗證方法,挑選適當的命令。
使用者指派的受控識別
Windows
Set-AzVMExtension -Name AzureMonitorWindowsAgent -ExtensionType AzureMonitorWindowsAgent -Publisher Microsoft.Azure.Monitor -ResourceGroupName <resource-group-name> -VMName <virtual-machine-name> -Location <location> -TypeHandlerVersion <version-number> -EnableAutomaticUpgrade $true -SettingString '{"authentication":{"managedIdentity":{"identifier-name":"mi_res_id","identifier-value":"/subscriptions/<my-subscription-id>/resourceGroups/<my-resource-group>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<my-user-assigned-identity>"}}}'
Linux
Set-AzVMExtension -Name AzureMonitorLinuxAgent -ExtensionType AzureMonitorLinuxAgent -Publisher Microsoft.Azure.Monitor -ResourceGroupName <resource-group-name> -VMName <virtual-machine-name> -Location <location> -TypeHandlerVersion <version-number> -EnableAutomaticUpgrade $true -SettingString '{"authentication":{"managedIdentity":{"identifier-name":"mi_res_id","identifier-value":/subscriptions/<my-subscription-id>/resourceGroups/<my-resource-group>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<my-user-assigned-identity>"}}}'
系統指派的受控識別
Windows
Set-AzVMExtension -Name AzureMonitorWindowsAgent -ExtensionType AzureMonitorWindowsAgent -Publisher Microsoft.Azure.Monitor -ResourceGroupName <resource-group-name> -VMName <virtual-machine-name> -Location <location> -TypeHandlerVersion <version-number> -EnableAutomaticUpgrade $true
Linux
Set-AzVMExtension -Name AzureMonitorLinuxAgent -ExtensionType AzureMonitorLinuxAgent -Publisher Microsoft.Azure.Monitor -ResourceGroupName <resource-group-name> -VMName <virtual-machine-name> -Location <location> -TypeHandlerVersion <version-number> -EnableAutomaticUpgrade $true
在 Azure 虛擬機器擴展集上安裝
使用 Add-AzVmssExtension PowerShell Cmdlet 安裝 Azure 虛擬機擴展集上的 Azure 監視器代理程式。
在已啟用 Azure Arc 的伺服器上安裝
使用下列 PowerShell 命令,在已啟用 Azure Arc 的伺服器上安裝 Azure 監視器代理程式。
Windows
New-AzConnectedMachineExtension -Name AzureMonitorWindowsAgent -ExtensionType AzureMonitorWindowsAgent -Publisher Microsoft.Azure.Monitor -ResourceGroupName <resource-group-name> -MachineName <arc-server-name> -Location <arc-server-location> -EnableAutomaticUpgrade
Linux
New-AzConnectedMachineExtension -Name AzureMonitorLinuxAgent -ExtensionType AzureMonitorLinuxAgent -Publisher Microsoft.Azure.Monitor -ResourceGroupName <resource-group-name> -MachineName <arc-server-name> -Location <arc-server-location> -EnableAutomaticUpgrade
您可以使用 Azure CLI 命令新增虛擬機器延伸模組,在 Azure 虛擬機器和已啟用 Azure Arc 的伺服器上安裝 Azure 監視器代理程式。
在 Azure 虛擬機器上安裝
使用下列 CLI 命令,在 Azure 虛擬機器上安裝 Azure 監視器代理程式。 根據您選擇的驗證方法,挑選適當的命令。
使用者指派的受控識別
Windows
az vm extension set --name AzureMonitorWindowsAgent --publisher Microsoft.Azure.Monitor --ids <vm-resource-id> --enable-auto-upgrade true --settings '{"authentication":{"managedIdentity":{"identifier-name":"mi_res_id","identifier-value":"/subscriptions/<my-subscription-id>/resourceGroups/<my-resource-group>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<my-user-assigned-identity>"}}}'
Linux
az vm extension set --name AzureMonitorLinuxAgent --publisher Microsoft.Azure.Monitor --ids <vm-resource-id> --enable-auto-upgrade true --settings '{"authentication":{"managedIdentity":{"identifier-name":"mi_res_id","identifier-value":"/subscriptions/<my-subscription-id>/resourceGroups/<my-resource-group>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<my-user-assigned-identity>"}}}'
系統指派的受控識別
Windows
az vm extension set --name AzureMonitorWindowsAgent --publisher Microsoft.Azure.Monitor --ids <vm-resource-id> --enable-auto-upgrade true
Linux
az vm extension set --name AzureMonitorLinuxAgent --publisher Microsoft.Azure.Monitor --ids <vm-resource-id> --enable-auto-upgrade true
在 Azure 虛擬機器擴展集上安裝
使用 az vmss 擴充功能組 CLI Cmdlet 來安裝 Azure 虛擬機擴展集上的 Azure 監視器代理程式。
在已啟用 Azure Arc 的伺服器上安裝
使用下列 CLI 命令,在已啟用 Azure Arc 的伺服器上安裝 Azure 監視器代理程式。
Windows
az connectedmachine extension create --name AzureMonitorWindowsAgent --publisher Microsoft.Azure.Monitor --type AzureMonitorWindowsAgent --machine-name <arc-server-name> --resource-group <resource-group-name> --location <arc-server-location> --enable-auto-upgrade true
Linux
az connectedmachine extension create --name AzureMonitorLinuxAgent --publisher Microsoft.Azure.Monitor --type AzureMonitorLinuxAgent --machine-name <arc-server-name> --resource-group <resource-group-name> --location <arc-server-location> --enable-auto-upgrade true
您可以使用 Resource Manager 範本,在 Azure 虛擬機器和已啟用 Azure Arc 的伺服器上安裝 Azure 監視器代理程式,以及建立與資料收集規則之間的關聯。 您必須先建立任何資料收集規則,才能建立關聯。
取得安裝代理程式的範例範本,並從下列資源中建立關聯:
使用適用於 Resource Manager 範本的任何部署方法 來安裝範本,例如下列命令。
PowerShell
New-AzResourceGroupDeployment -ResourceGroupName "<resource-group-name>" -TemplateFile "<template-filename.json>" -TemplateParameterFile "<parameter-filename.json>"
Azure CLI
az deployment group create --resource-group "<resource-group-name>" --template-file "<path-to-template>" --parameters "@<parameter-filename.json>"
解除安裝
若要使用 Azure 入口網站解除安裝 Azure 監視器代理程式,請前往虛擬機器、擴展集或已啟用 Azure Arc 的伺服器。 選取 [延伸模組] 索引標籤,然後選取 [AzureMonitorWindowsAgent] 或 [AzureMonitorLinuxAgent] 。 在開啟的對話方塊中,選取 [解除安裝] 。
在 Azure 虛擬機器上解除安裝
使用下列 PowerShell 命令,在 Azure 虛擬機器上解除安裝 Azure 監視器代理程式。
Windows
Remove-AzVMExtension -Name AzureMonitorWindowsAgent -ResourceGroupName <resource-group-name> -VMName <virtual-machine-name>
Linux
Remove-AzVMExtension -Name AzureMonitorLinuxAgent -ResourceGroupName <resource-group-name> -VMName <virtual-machine-name>
在 Azure 虛擬機器擴展集上解除安裝
使用 Remove-AzVmssExtension PowerShell Cmdlet 解除安裝 Azure 虛擬機擴展集上的 Azure 監視器代理程式。
在已啟用 Azure Arc 的伺服器上解除安裝
使用下列 PowerShell 命令,在已啟用 Azure Arc 的伺服器上解除安裝 Azure 監視器代理程式。
Windows
Remove-AzConnectedMachineExtension -MachineName <arc-server-name> -ResourceGroupName <resource-group-name> -Name AzureMonitorWindowsAgent
Linux
Remove-AzConnectedMachineExtension -MachineName <arc-server-name> -ResourceGroupName <resource-group-name> -Name AzureMonitorLinuxAgent
在 Azure 虛擬機器上解除安裝
使用下列 CLI 命令,在 Azure 虛擬機器上解除安裝 Azure 監視器代理程式。
Windows
az vm extension delete --resource-group <resource-group-name> --vm-name <virtual-machine-name> --name AzureMonitorWindowsAgent
Linux
az vm extension delete --resource-group <resource-group-name> --vm-name <virtual-machine-name> --name AzureMonitorLinuxAgent
在 Azure 虛擬機器擴展集上解除安裝
使用 az vmss 擴充功能刪除 CLI Cmdlet 來解除安裝 Azure 虛擬機擴展集上的 Azure 監視器代理程式。
在已啟用 Azure Arc 的伺服器上解除安裝
使用下列 CLI 命令,在已啟用 Azure Arc 的伺服器上解除安裝 Azure 監視器代理程式。
Windows
az connectedmachine extension delete --name AzureMonitorWindowsAgent --machine-name <arc-server-name> --resource-group <resource-group-name>
Linux
az connectedmachine extension delete --name AzureMonitorLinuxAgent --machine-name <arc-server-name> --resource-group <resource-group-name>
更新
注意
建議啟用自動擴充功能升級 ,在發行新的擴充功能版本之後,可能需要最多 5 週 的時間,才能將已安裝的延伸模組更新至所有區域發行的已發行 (最新版) 版本。 升級會以批次的方式發出,因此您可能會看到某些虛擬機器、擴展集或已啟用 Arc 的伺服器會在其他虛擬機之前升級。 如果您需要立即升級擴充功能,您可以使用下列手動指示。
若要執行代理程式的一次性更新,您必須先解除安裝現有的代理程式版本。 然後如先前所述安裝新版本。
建議啟用自動延伸模組升級 功能,來自動更新代理程式。 移至虛擬機器或擴展集,選取 [延伸模組] 索引標籤,然後選取 [AzureMonitorWindowsAgent] 或 [AzureMonitorLinuxAgent] 。 在開啟的對話方塊中,選取 [啟用自動升級] 。
在 Azure 虛擬機器上更新
若要執行代理程式的單次更新,您必須先解除安裝現有的代理程式版本,然後安裝上述的新版本。
建議使用下列 PowerShell 命令來啟用自動延伸模組升級 功能,藉以自動更新代理程式。
Windows
Set-AzVMExtension -ExtensionName AzureMonitorWindowsAgent -ResourceGroupName <resource-group-name> -VMName <virtual-machine-name> -Publisher Microsoft.Azure.Monitor -ExtensionType AzureMonitorWindowsAgent -TypeHandlerVersion <version-number> -Location <location> -EnableAutomaticUpgrade $true
Linux
Set-AzVMExtension -ExtensionName AzureMonitorLinuxAgent -ResourceGroupName <resource-group-name> -VMName <virtual-machine-name> -Publisher Microsoft.Azure.Monitor -ExtensionType AzureMonitorLinuxAgent -TypeHandlerVersion <version-number> -Location <location> -EnableAutomaticUpgrade $true
在已啟用 Azure Arc 的伺服器上更新
若要執行代理程式的一次性升級,請使用下列 PowerShell 命令。
Windows
$target = @{"Microsoft.Azure.Monitor.AzureMonitorWindowsAgent" = @{"targetVersion"=<target-version-number>}}
Update-AzConnectedExtension -ResourceGroupName $env.ResourceGroupName -MachineName <arc-server-name> -ExtensionTarget $target
Linux
$target = @{"Microsoft.Azure.Monitor.AzureMonitorLinuxAgent" = @{"targetVersion"=<target-version-number>}}
Update-AzConnectedExtension -ResourceGroupName $env.ResourceGroupName -MachineName <arc-server-name> -ExtensionTarget $target
建議使用下列 PowerShell 命令來啟用自動延伸模組升級 功能,藉以自動更新代理程式。
Windows
Update-AzConnectedMachineExtension -ResourceGroup <resource-group-name> -MachineName <arc-server-name> -Name AzureMonitorWindowsAgent -EnableAutomaticUpgrade
Linux
Update-AzConnectedMachineExtension -ResourceGroup <resource-group-name> -MachineName <arc-server-name> -Name AzureMonitorLinuxAgent -EnableAutomaticUpgrade
在 Azure 虛擬機器上更新
若要執行代理程式的單次更新,您必須先解除安裝現有的代理程式版本,然後安裝上述的新版本。
我們建議您使用下列 CLI 命令來啟用自動延伸模組升級 功能,藉以自動更新代理程式。
Windows
az vm extension set --name AzureMonitorWindowsAgent --publisher Microsoft.Azure.Monitor --vm-name <virtual-machine-name> --resource-group <resource-group-name> --enable-auto-upgrade true
Linux
az vm extension set --name AzureMonitorLinuxAgent --publisher Microsoft.Azure.Monitor --vm-name <virtual-machine-name> --resource-group <resource-group-name> --enable-auto-upgrade true
在已啟用 Azure Arc 的伺服器上更新
若要執行代理程式的一次性升級,請使用下列 CLI 命令。
Windows
az connectedmachine upgrade-extension --extension-targets "{\"Microsoft.Azure.Monitor.AzureMonitorWindowsAgent\":{\"targetVersion\":\"<target-version-number>\"}}" --machine-name <arc-server-name> --resource-group <resource-group-name>
Linux
az connectedmachine upgrade-extension --extension-targets "{\"Microsoft.Azure.Monitor.AzureMonitorLinuxAgent\":{\"targetVersion\":\"<target-version-number>\"}}" --machine-name <arc-server-name> --resource-group <resource-group-name>
建議使用下列 PowerShell 命令來啟用自動延伸模組升級 功能,藉以自動更新代理程式。
Windows
az connectedmachine extension update --name AzureMonitorWindowsAgent --machine-name <arc-server-name> --resource-group <resource-group-name> --enable-auto-upgrade true
Linux
az connectedmachine extension update --name AzureMonitorLinuxAgent --machine-name <arc-server-name> --resource-group <resource-group-name> --enable-auto-upgrade true
使用 Azure 原則
使用下列原則和原則計畫,在每次建立虛擬機器、擴展集或已啟用 Azure Arc 的伺服器時,自動安裝代理程式,並將其與資料收集規則建立關聯。
注意
根據 Microsoft 身分識別最佳做法,在虛擬機器和擴展集上安裝 Azure 監視器代理程式的原則依賴於使用者指派的受控識別。 對於這些資源而言,這是更具可調整性和復原性的受控識別選項。
針對已啟用 Azure Arc 的伺服器,原則依賴於系統指派的受控識別,這是目前唯一支援的選項。
內建原則計畫
在繼續之前,請先詳讀代理程式安裝的必要條件 。
Windows 和 Linux 虛擬機有內建的原則計劃,擴展集可使用 Azure 監視器代理程式端對端進行大規模上線
注意
原則定義只包含 Microsoft 支援的 Windows 和 Linux 版本清單。 若要新增自訂映像,請使用 Additional Virtual Machine Images
參數。
上述計劃包含個別原則::
(選用) 建立並指派每個訂閱、每個區域的內建使用者指派受控識別。 深入了解 。
Bring Your Own User-Assigned Identity
:如果設為 false
,它會在預先定義的資源群組中建立內建使用者指派的受控識別,並將其指派給套用原則的所有機器。 資源群組的位置可以在 Built-In-Identity-RG Location
參數中設定。
如果設定為 true
,您可以改用現有的使用者指派身分識別,自動指派給套用原則的所有機器。
在機器上安裝 Azure 監視器代理程式延伸模組,並將其設定為採用使用者指派的身分識別,如下列參數所指定。
Bring Your Own User-Assigned Managed Identity
:如果設定為 false
,它會將代理程式設為使用上述原則所建立的內建使用者指派受控識別。 如果設定為 true
,這會將代理程式設定為使用現有的使用者指派身分識別。
User-Assigned Managed Identity Name
:如果使用您自己的身分識別 (所選的 true
),請指定指派給機器的身分識別名稱。
User-Assigned Managed Identity Resource Group
:如果使用您自己的身分識別 (所選的 true
),請指定身分識別所在的資源群組。
Additional Virtual Machine Images
:傳遞您想要套用原則的其他 VM 映像名稱 (如果尚未包含)。
Built-In-Identity-RG Location
:如果您使用內建使用者指派的受控識別,請指定應建立身分識別和資源群組的位置。 只有當 參數設定為 false
時Bring Your Own User-Assigned Managed Identity
,才會使用此參數。
建立並部署關聯,以將機器連結至指定的資料收集規則。
Data Collection Rule Resource Id
:規則的 Azure Resource Manager resourceId,您想透過此原則與套用此原則的所有機器建立關聯的規則。
已知問題
受控識別預設行為。 深入了解 。
使用內建使用者指派的身分識別建立原則,可能會出現競爭條件。 深入了解 。
將原則指派給資源群組。 如果原則的指派範圍是資源群組而非某項訂閱,原則指派所使用的身分識別 (與代理程式所使用的使用者指派身分識別不同) 必須先手動授與這些角色 權限,才能指派/補救。 未執行此步驟會導致部署失敗 。
其他受控識別限制 。
內建原則
您可以選擇使用上述原則計畫中的個別原則,藉此大規模執行單一動作。 例如,如果您只 想自動安裝代理程式,請使用計畫的第二個代理程式安裝原則,如下列所示。
計畫或原則將會在建立時套用至每部虛擬機器。 補救工作 會將計畫中的原則定義部署至現有資源,以便為已建立的任何資源設定 Azure 監視器代理程式。
當您使用 Azure 入口網站建立指派時,可以選擇同時建立補救工作。 如需補救的相關資訊,請參閱補救不符合 Azure 原則規範的資源 。
常見問題集
本節提供常見問題的答案。
在我的非 Azure 電腦上安裝 Azure Arc Connected Machine 代理程式有何影響?
安裝 Azure Arc Connected Machine 代理程式之後,不會對機器造成任何影響。 這幾乎不佔用到系統或網路資源,並且設計為在執行其主機時佔用較少的磁碟使用量。
下一步
建立資料收集規則 ,以從代理程式收集資料,並將其傳送至 Azure 監視器。