本文介绍可用于在Azure虚拟机、虚拟机规模集和启用Azure Arc的服务器上安装、卸载、更新和配置 Azure Monitor Agent的不同方法。
先决条件
有关使用 Azure Monitor 代理的先决条件和其他要求,请参阅以下文章:
重要
安装、升级或卸载Azure Monitor代理不需要重启计算机。
安装选项
下表列出了在Azure VM 和启用了Azure Arc的服务器上安装 Azure Monitor 代理的选项。
对于不在Azure中的任何计算机,必须先在计算机上安装 Azure Arc agent,然后才能安装Azure Monitor代理。
| 安装方法 |
说明 |
| 虚拟机 (VM) 扩展 |
使用本文中所述的任何方法通过 Azure 扩展框架安装代理。 此方法不会创建 DCR,因此必须创建至少一个 DCR 并将其与代理关联,然后才能开始数据收集。 |
|
创建 DCR |
在 Azure 门户中创建 DCR 时,Azure Monitor Agent 会被安装在作为 DCR 资源添加的任何计算机上。 代理会立即开始收集 DCR 中定义的数据。 |
|
容器洞察 |
在 Kubernetes 群集上启用 Prometheus 指标或容器日志收集时,会在群集中安装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 代理,以添加虚拟机扩展。
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 扩展集 Azure CLI 命令在 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 Resource Manager模板在Azure虚拟机或启用了Azure Arc的服务器上安装Azure Monitor代理,并创建与 DCR 的关联。 必须先创建 DCR,然后才能创建 DCR 的关联。
从以下资源中获取安装代理和创建关联的示例模板:
使用任意 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 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 扩展 delete Azure CLI cmdlet 来卸载 Azure 虚拟机规模集上的 Azure 监控代理。
在已启用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的服务器可能会在其他虚拟机、规模集或启用Azure Arc的服务器之前升级。
如果需要立即升级扩展,可以使用本文中所述的手动说明。 仅支持去年发布的代理。
若要对代理进行一次性更新,请转到虚拟机或扩展集。 选择“ 扩展 ”选项卡,然后检查代理并单击“ 更新”。
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虚拟机上的更新
要进行代理的一次性更新,必须先卸载现有代理版本。 然后按本文所述安装新版本。
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 Resource Manager 模板配置 AgentSettings DCR。
- AgentSettings 必须是没有其他设置的单个 DCR。
- 虚拟机和 AgentSettings DCR 必须位于同一区域。
支持的参数
AgentSettings DCR 当前支持设置以下参数:
| 参数 |
说明 |
有效值 |
MaxDiskQuotaInMB |
为了提供复原能力,代理在其无法发送数据时在本地缓存中收集数据。 还原连接后,代理发送缓存中的数据。 此参数是Azure Monitor代理日志文件和缓存使用的磁盘空间量(以 MB 为单位)。 |
Linux:4,000 到 1,000,000 default: 10,000 Windows:4,000 到 1,000,000 |
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": "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')]"
}
}
]
}
注意
如果要将 DCR 与启用了 Azure Arc 的计算机关联,则必须修改 scope 属性和 parameters 名称。
“scope”: “[format('Microsoft.HybridCompute/machines/{0}', parameters('name')]”
参数文件:
{
"$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。