你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn 。
安装和管理 Azure Monitor 代理
本文内容
本文介绍可用于在 Azure 虚拟机、虚拟机规模集和已启用 Azure Arc 的服务器上安装、卸载、更新和配置 Azure Monitor 代理 的不同方法。
重要
Azure Monitor 代理安装到客户端计算机后,至少需要一个数据收集规则 (DCR) 才能开始收集数据。 安装方法决定了是否自动创建 DCR。 如果在安装过程中未自动创建 DCR,则必须按照使用 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 中定义的数据。
VM 见解
在计算机上启用 VM 见解时,会安装 Azure Monitor 代理,并创建一个 DCR 来收集预定义的数据集。 不应修改此 DCR,但可以创建更多 DCR 来收集更多数据。
容器见解
在 Kubernetes 群集上启用容器见解后,Azure Monitor 代理的容器化版本会安装在群集中,并创建一个 DCR,以立即开始收集数据。 可以根据使用 DCR 在容器见解中配置数据收集和成本优化 的指导修改 DCR。
客户端安装程序
使用适用于 Windows 11 和 Windows 10 客户端的 Windows MSI 安装程序来安装代理。
Azure Policy
使用 Azure Policy 在 Azure 虚拟机和已启用 Azure Arc 的服务器上自动安装代理,并自动将它们与所需的 DCR 关联。
安装代理扩展
可以使用 PowerShell 命令添加虚拟机扩展,由此在 Azure 虚拟机或已启用 Azure Arc 的服务器上安装 Azure Monitor 代理。
Azure 虚拟机
使用以下 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
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 虚拟机
使用以下 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 Azure CLI cmdlet 在 Azure 虚拟机规模集上安装 Azure Monitor 代理。
已启用 Azure Arc 的服务器
使用以下 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” 。 在打开的对话框中,选择“卸载”。
在 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 虚拟机上卸载
使用以下 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 Azure CLI cmdlet 在 Azure 虚拟机规模集上卸载 Azure Monitor 代理。
在已启用 Azure Arc 服务器上卸载
使用以下 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>
更新
注意
强烈建议始终更新到最新版本的代理,或选择加入自动扩展升级 。
自动扩展的推出遵循标准的 Azure 部署做法,以便安全地部署最新版本的代理。 预计自动更新需要数周时间才能推出最新版本。
升级是分批发布的,因此一些虚拟机、规模集或已启用 Azure 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 虚拟机上的更新
要进行代理的一次性更新,必须先卸载现有代理版本。 然后按本文所述安装新版本。
建议通过以下 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 的服务器上更新
要进行代理的一次性升级,请使用以下 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:1025
到 51199
Windows:4000
到 51199
UseTimeReceivedForForwardedEvents
将 Microsoft Sentinel Windows 事件转发 (WEF) 表中的 WEF 列更改为使用 TimeReceived
而不是 TimeGenerated
数据
0
或 1
设置 AgentSettings DCR
通过在 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": "eastus"
}
]
}
将 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。