本文介绍可用于在 Azure 虚拟机、虚拟机规模集和已启用 Azure Arc 的服务器上安装、卸载、更新和配置 Azure Monitor 代理 的不同方法。
有关使用 Azure Monitor 代理的先决条件和其他要求,请参阅以下文章:
重要
安装、升级或卸载 Azure Monitor 代理不需要重启计算机。
下表列出了在 Azure VM 和已启用 Azure Arc 的服务器上安装 Azure Monitor 代理的选项。
对于不在 Azure 中的任何计算机,必须先在计算机上安装 Azure Arc 代理 ,然后才能安装 Azure Monitor 代理。
展开表
安装方法
说明
虚拟机 (VM) 扩展
使用本文中所述的任何方法通过 Azure 扩展框架安装代理。 此方法不会创建 DCR,因此必须创建至少一个 DCR 并将其与代理关联,然后才能开始数据收集。
创建 DCR
在 Azure 门户中创建 DCR 时,Azure Monitor 代理安装在添加为 DCR 资源的任何计算机上。 代理会立即开始收集 DCR 中定义的数据。
容器洞察
在 Kubernetes 群集上启用容器见解后,Azure Monitor 代理的容器化版本会安装在群集中,并创建一个 DCR,以立即开始收集数据。 可以根据使用 DCR 在容器见解中配置数据收集和成本优化 的指南来修改 DCR。
客户端安装程序
使用适用于 Windows 11 和 Windows 10 客户端的 Windows MSI 安装程序来安装代理。
Azure Policy
使用 Azure Policy 在 Azure 虚拟机和已启用 Azure Arc 的服务器上自动安装代理,并自动将它们与所需的 DCR 关联。
备注
若要跨租户发送数据,必须先启用 Azure Lighthouse 。
不支持克隆安装了 Azure Monitor 代理的计算机。 适合这些场景的最佳做法是使用 Azure Policy 或基础结构即代码 (IaaC) 工具大规模部署 Azure Monitor 代理。
可以使用 PowerShell 命令添加虚拟机扩展,由此在 Azure 虚拟机或已启用 Azure Arc 的服务器上安装 Azure Monitor 代理。
使用以下 PowerShell 命令在 Azure 虚拟机上安装 Azure Monitor 代理。 根据所用身份验证方法选择相应的命令。
Windows
## User-assigned managed identity
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>"}}}'
## System-assigned managed identity
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
## User-assigned managed identity
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>"}}}'
## System-assigned managed identity
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
使用 Add-AzVmssExtension PowerShell cmdlet 在 Azure 虚拟机规模集上安装 Azure Monitor 代理。
使用以下 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
使用 az vmss extension set Azure CLI cmdlet 在 Azure 虚拟机规模集上安装 Azure Monitor 代理。
使用以下 Azure 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 虚拟机或已启用 Azure Arc 的服务器上安装 Azure Monitor 代理,以及创建与 DCR 的关联。 必须先创建 DCR,然后才能创建 DCR 的关联。
从以下资源中获取安装代理和创建关联的示例模板:
使用资源管理器模板的任意部署方法 安装模板,包括以下命令。
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” 。 在打开的对话框中,选择“卸载”。
使用以下 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>
使用 Remove-AzVmssExtension PowerShell cmdlet 在 Azure 虚拟机规模集上卸载 Azure Monitor 代理。
使用以下 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
使用 az vmss extension delete Azure CLI cmdlet 在 Azure 虚拟机规模集上删除 Azure Monitor 代理。
使用以下 Azure 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>
要进行代理的一次性更新,必须先卸载现有代理版本。 然后按说明安装新版本。
若要执行代理的一次性更新,请如前所述安装新版本。
使用以下 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
要进行代理的一次性升级,请使用以下 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
要进行代理的一次性更新,必须先卸载现有代理版本。 然后按本文所述安装新版本。
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 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>
建议通过选择加入自动扩展升级 来启用代理的自动更新。
运行以下 Azure CLI 命令:
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
数据收集规则 (DCR) 充当计算机上 Azure Monitor 代理的管理工具。 AgentSettings DCR 可用于配置某些 Azure Monitor 代理参数,以便将代理配置为满足特定的监视需求。
备注
使用 AgentSettings DCR 时的重要注意事项:
目前只能使用 Azure 资源管理器模板来配置 AgentSettings DCR。
AgentSettings 必须是没有其他设置的单个 DCR。
虚拟机和 AgentSettings DCR 必须位于同一区域。
AgentSettings DCR 当前支持设置以下参数:
展开表
参数
说明
有效值
MaxDiskQuotaInMB
为了提供复原能力,代理在其无法发送数据时在本地缓存中收集数据。 还原连接后,代理发送缓存中的数据。 该参数是 Azure Monitor 代理日志文件和缓存使用的磁盘空间量 (MB)。
Linux:4,000
到 1,000,000
Windows:4000
到 1,000,000
UseTimeReceivedForForwardedEvents
将 Microsoft Sentinel Windows 事件转发 (WEF) 表中的 WEF 列更改为使用 TimeReceived
而不是 TimeGenerated
数据
0
或 1
通过在 VM 上安装 Azure Monitor 代理 来准备环境。
创建 DCR。
以下示例将 Azure Monitor 代理缓存使用的最大磁盘空间量设置为 5,000 MB。
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {},
"resources": [
{
"type": "Microsoft.Insights/dataCollectionRules",
"name": "dcr-contoso-01",
"apiVersion": "2023-03-11",
"properties":
{
"description": "A simple agent settings",
"agentSettings":
{
"logs": [
{
"name": "MaxDiskQuotaInMB",
"value": "5000"
}
]
}
},
"kind": "AgentSettings",
"location": "chinanorth"
}
]
}
将 DCR 与计算机关联。 使用以下资源管理器文件。
模板文件:
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"vmName": {
"type": "string",
"metadata": {
"description": "The name of the virtual machine."
}
},
"dataCollectionRuleId": {
"type": "string",
"metadata": {
"description": "The resource ID of the data collection rule."
}
}
},
"resources": [
{
"type": "Microsoft.Insights/dataCollectionRuleAssociations",
"apiVersion": "2021-09-01-preview",
"scope": "[format('Microsoft.Compute/virtualMachines/{0}', parameters('vmName'))]",
"name": "agentSettings",
"properties": {
"description": "Association of data collection rule. Deleting this association will break the data collection for this virtual machine.",
"dataCollectionRuleId": "[parameters('dataCollectionRuleId')]"
}
}
]
}
参数文件:
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"vmName": {
"value": "my-azure-vm"
},
"dataCollectionRuleId": {
"value": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/my-resource-group/providers/microsoft.insights/datacollectionrules/my-dcr"
}
}
}
要应用更改,请重启 Azure Monitor 代理。
创建数据收集规则 ,通过代理收集数据并将其发送给 Azure Monitor。