管理 Azure Monitor 代理
本文内容
本文提供了当前可用于安装、卸载和更新 Azure Monitor 代理 的不同选项。 此代理扩展可以安装在 Azure 虚拟机、规模集和已启用 Azure Arc 的服务器上。 它还列出了相关选项,用于创建与定义代理应收集何种数据的数据收集规则的关联 。 安装、升级或卸载 Azure Monitor 代理不需要重启服务器。
虚拟机扩展详细信息
Azure Monitor 代理以 Azure VM 扩展 方式实现,详细信息如下表所示。 可以使用任何方法来安装虚拟机扩展,其中包括本文中所述的方法。
扩展版本
查看 Azure Monitor 代理扩展版本 。
先决条件
必须先满足以下先决条件,然后才能安装 Azure Monitor 代理。
权限:对于利用 Azure 门户之外的其他方法,必须具有以下角色分配来安装代理:
内置角色
作用域
原因
虚拟机、规模集、 已启用 Azure Arc 的服务器
部署代理
包括 Microsoft.Resources/deployments/* 操作的任何角色(例如 Log Analytics 参与者 )
通过 Azure 资源管理器模板(也由 Azure Policy 使用)部署代理扩展
非 Azure:要在 Azure 外部(即本地)或其他云中托管的物理服务器和虚拟机上安装代理,必须先安装 Azure Arc Connected Machine Agent(无需额外付费) 。
身份验证:必须在 Azure 虚拟机上启用托管标识 。 用户分配的托管标识和系统分配的托管标识均受支持。
用户分配的托管标识:建议将此托管标识用于大规模部署,可通过内置的 Azure 策略 进行配置。 可以创建一次用户分配的托管标识并跨多个 VM 共享,因此它比系统分配的托管标识更具可缩放性。 如果使用用户分配的托管标识,则必须通过扩展设置将托管标识详细信息传递给 Azure Monitor 代理:
{
"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 资源管理器服务标记 。 虚拟机也必须具有以下 HTTPS 终结点的访问权限:
global.handler.control.monitor.azure.cn
<virtual-machine-region-name>
.handler.control.monitor.azure.cn(示例:chinanorth.handler.control.monitor.azure.cn)
<log-analytics-workspace-id>
.ods.opinsights.azure.cn(示例:12345a01-b1cd-1234-e1f2-1234567g8h99.ods.opinsights.azure.cn)
(如果在代理上使用专用链接,还必须添加 dce 终结点 )。
注意
将 AMA 与 AMPLS 配合使用时,所有数据收集规则都使用数据收集终结点。 必须使用专用链接 将这些 DCE 添加到 AMPLS 配置
磁盘空间 :所需的磁盘空间可能会有很大差异,具体取决于代理的使用方式或代理是否无法与指示其发送监视数据的目标进行通信。 默认情况下,代理需要 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 Monitor 代理的信息,请参阅创建数据收集规则 。 这个过程创建规则,将其关联到选定的资源,并在这些资源上安装 Azure Monitor 代理(如果尚未安装)。
可以使用 PowerShell 命令添加虚拟机扩展,由此在 Azure 虚拟机和已启用 Azure Arc 的服务器上安装 Azure Monitor 代理。
在 Azure 虚拟机上安装
使用以下 PowerShell 命令在 Azure 虚拟机上安装 Azure Monitor 代理。 根据所选的身份验证方法选择相应的命令。
用户分配的托管标识
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 Monitor 代理。
在已启用 Azure Arc 服务器上安装
使用以下 PowerShell 命令在已启用 Azure Arc 的服务器上安装 Azure Monitor 代理。
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 Monitor 代理。
在 Azure 虚拟机上安装
使用以下 CLI 命令在 Azure 虚拟机上安装 Azure Monitor 代理。 根据所选的身份验证方法选择相应的命令。
用户分配的托管标识
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 extension set CLI cmdlet 在 Azure 虚拟机规模集上安装 Azure Monitor 代理。
在已启用 Azure Arc 服务器上安装
使用以下 CLI 命令在已启用 Azure Arc 的服务器上安装 Azure Monitor 代理。
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
可以使用资源管理器模板在 Azure 虚拟机和已启用 Azure Arc 的服务器上安装 Azure Monitor 代理,以及创建数据收集规则关联。 创建关联之前,必须先创建任何数据收集规则。
有关安装代理和创建关联的示例模板,请参阅以下资源:
使用任何资源管理器模板的部署方法 安装模板,例如以下命令。
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 Monitor 代理,请转到虚拟机、规模集或已启用 Azure Arc 的服务器。 选择“扩展”选项卡,然后选择“AzureMonitorWindowsAgent”或“AzureMonitorLinuxAgent”。 在打开的对话框中,选择“卸载”。
在 Azure 虚拟机上卸载
使用以下 PowerShell 命令在 Azure 虚拟机上卸载 Azure Monitor 代理。
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 Monitor 代理。
在已启用 Azure Arc 服务器上卸载
使用以下 PowerShell 命令在已启用 Azure Arc 的服务器上卸载 Azure Monitor 代理。
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 Monitor 代理。
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 extension delete CLI cmdlet 在 Azure 虚拟机规模集上卸载 Azure Monitor 代理。
在已启用 Azure Arc 服务器上卸载
使用以下 CLI 命令在已启用 Azure Arc 的服务器上卸载 Azure Monitor 代理。
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>
更新
要执行代理的一次更新,必须先卸载现有代理版本。 然后按说明安装新版本。
Azure 虚拟机上的更新
若要执行代理的一次性更新,必须先卸载现有代理版本,然后按照说明安装新版本。
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 虚拟机上的更新
若要执行代理的一次性更新,必须先卸载现有代理版本,然后按照说明安装新版本。
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 Policy
创建虚拟机、规模集或已启用 Azure Arc 的服务器时,可使用以下策略和策略计划自动安装代理并将其与数据收集规则关联。
备注
根据 Microsoft 标识最佳做法,有关在虚拟机和规模集上安装 Azure Monitor 代理的策略依赖于用户分配的托管标识。 对于这些资源而言,这是可缩放性和可复原性更强的托管标识选项。
对于已启用 Azure Arc 的服务器,策略依赖于系统分配的托管标识,因为目前这唯一受支持的选项。
内置策略计划
在继续之前,请查看代理安装先决条件 。
有适用于 Windows 和 Linux 虚拟机规模集的内置策略计划,它们使用 Azure Monitor 代理端到端提供大规模加入功能
注意
策略定义仅包括 Microsoft 支持的 Windows 和 Linux 版本列表。 若要添加自定义映像,请使用 Additional Virtual Machine Images
参数。
这些计划包括具有以下用途的各项策略:
(可选)为每个区域的每个订阅创建并分配内置的用户分配托管标识。 了解详细信息 。
Bring Your Own User-Assigned Identity
:如果设置为 false
,它会在预定义的资源组中创建内置的用户分配托管标识,并将其分配到应用该策略的所有计算机。 可以在参数 Built-In-Identity-RG Location
中配置资源组的位置。
如果设置为 true
,则可以改用自动分配给应用该策略的所有计算机的现有用户分配标识。
在计算机上安装 Azure Monitor 代理扩展,并将其配置为使用由以下参数指定的用户分配标识。
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
:如果使用内置的用户分配托管标识,请指定应创建标识和资源组的位置。 仅当 Bring Your Own User-Assigned Managed Identity
参数设置为 false
时,才使用此参数。
创建并部署关联,以将计算机链接到指定的数据收集规则。
Data Collection Rule Resource Id
:要通过此策略关联到应用该策略的所有计算机的规则的 Azure 资源管理器 resourceId。
已知问题
托管标识的默认行为。 了解详细信息 。
使用内置用户分配标识创建策略可能会出现争用状况。 了解详细信息 。
将策略分配给资源组。 如果策略的分配范围是资源组而不是订阅,则在分配/修正之前,必须手动为策略分配使用的标识(不同于代理使用的用户分配标识)授予这些角色 。 若未能完成此步骤,则会导致部署失败。
其他托管标识限制 。
内置策略
可以选择使用上述策略计划中的单个策略来大规模执行单个操作。 例如,如果你只想自动安装代理,请使用计划中的第二个代理安装策略,如下所示。
这些计划或策略将在创建时应用于每个虚拟机。 修正任务 会将计划中的策略定义部署到现有资源,以便为任何已创建的资源配置 Azure Monitor 代理。
使用 Azure 门户创建分配时,可以选择同时创建修正任务。 有关修正的信息,请参阅使用 Azure Policy 修正不符合的资源 。
常见问题解答
本部分提供常见问题的解答。
安装 Azure Arc Connected Machine agent 对我的非 Azure 计算机有什么影响?
安装 Azure Arc Connected Machine Agent 后,不会对计算机造成任何影响。 它几乎不使用系统或网络资源,并且设计为在运行它的主机上占用较少的内存。
后续步骤
创建数据收集规则 ,通过代理收集数据并将其发送给 Azure Monitor。