你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn 。
管理 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),会导致在 Azure Active Directory 中创建(和删除)大量标识。 为避免这种标识变动,请改用用户分配的托管标识。 对于已启用 Azure Arc 的服务器,安装 Azure Arc 代理后,系统分配的托管标识会自动启用。 已启用 Azure Arc 的服务器仅支持系统分配的托管标识。
对于启用 Azure arc 的服务器来说不是必需的:如果是在 Azure 门户中创建数据收集规则 ,系统标识将自动启用。
网络:如果使用网络防火墙,则必须在虚拟机的虚拟网络上启用 Azure 资源管理器服务标记 。 虚拟机也必须具有以下 HTTPS 终结点的访问权限:
global.handler.control.monitor.azure.com
<virtual-machine-region-name>
.handler.control.monitor.azure.com(例如:westus.handler.control.azure.com)
<log-analytics-workspace-id>
.ods.opinsights.azure.com(例如:12345a01-b1cd-1234-e1f2-1234567g8h99.ods.opinsights.azure.com)
(如果在代理上使用专用链接,还必须添加 dce 终结点 )。
安装
有关如何从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 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 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 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 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>
更新
要执行代理的一次更新,必须先卸载现有代理版本。 然后按说明安装新版本。
建议通过启用自动扩展升级 功能来启用代理的自动更新。 导航到虚拟机或规模集,选择“扩展”选项卡,然后选择“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.AzureMonitorWindowsAgent\":{\"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 虚拟机、规模集的策略计划包含可执行以下操作的各个策略:
(可选)为每个区域的每个订阅创建并分配内置的用户分配托管标识。 了解详细信息 。
Bring Your Own User-Assigned Identity
:如果设置为 true
,它会在预定义的资源组中创建内置的用户分配托管标识,并将其分配到应用该策略的所有计算机。 如果设置为 false
,则你可以改用现有的用户分配标识,但必须事先将该标识分配到计算机。
在计算机上安装 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 映像名称(如果尚未包含)。
创建并部署关联,以将计算机链接到指定的数据收集规则。
Data Collection Rule Resource Id
:要通过此策略关联到应用该策略的所有计算机的规则的 Azure 资源管理器 resourceId。
已知问题
托管标识的默认行为。 了解详细信息 。
使用内置用户分配标识创建策略可能会出现争用状况。 了解详细信息 。
将策略分配给资源组。 如果策略的分配范围是资源组而不是订阅,则在分配/修正之前,必须手动为策略分配使用的标识(不同于代理使用的用户分配标识)授予这些角色 。 若未能完成此步骤,则会导致部署失败。
其他托管标识限制 。
内置策略
可以选择使用上述策略计划中的单个策略来大规模执行单个操作。 例如,如果你只想自动安装代理,请使用计划中的第二个代理安装策略,如下所示。
这些计划或策略将在创建时应用于每个虚拟机。 修正任务 会将计划中的策略定义部署到现有资源,以便为任何已创建的资源配置 Azure Monitor 代理。
使用 Azure 门户创建分配时,可以选择同时创建修正任务。 有关修正的信息,请参阅使用 Azure Policy 修正不符合的资源 。
后续步骤
创建数据收集规则 ,通过代理收集数据并将其发送给 Azure Monitor。