你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
启用 VM 见解
本文详细介绍了如何使用 Azure 门户、ARM 模板和 PowerShell 脚本等各种方法在 Azure Monitor 中启用 VM 见解。
先决条件
- 必须有 Log Analytics 工作区来存储 VM 见解收集的数据。 如果使用 Azure 门户启用 VM 见解,则可以创建新的工作区。
- 需要有权创建数据收集规则 (DCR),并将其与 Azure Monitor 代理相关联。 有关详细信息,请参阅“数据收集规则权限”。
- 请参阅 Azure Monitor 代理支持的操作系统和环境,以验证你的操作系统是否受 Azure Monitor 代理支持。
- 有关与 Azure Monitor 代理相关的先决条件,请参阅管理 Azure Monitor 代理。
- 有关 Azure Monitor 代理的网络要求,请参阅“Azure Monitor 代理网络配置”。
- 请参阅“Dependency Agent 要求”,以验证你的操作系统是否受 Dependency Agent 支持,并了解 Dependency Agent 的网络要求。
代理
为计算机启用 VM 见解时,将安装以下代理。
- Azure Monitor 代理:从计算机收集数据并将其传递到 Log Analytics 工作区。
- “依赖项代理”:收集有关在虚拟机上运行的进程和外部进程依赖项的已发现数据,以支持 VM 见解中的映射功能。 其他 VM 见解功能不需要此代理,因此如果不使用映射功能,则无需安装依赖项代理。
VM 见解 DCR
Azure Monitor 代理使用数据收集规则 (DCR) 来指定要收集的数据及其处理方式。 启用 VM 见解时,请专门为 VM 见解创建 DCR,并将其与要监视的任何计算机上的 Azure Monitor 代理相关联。
VM 见解 DCR 中的唯一配置是 Log Analytics 工作区,以及是否收集进程和依赖项数据。 应为每个用于 VM 见解的 Log Analytics 工作区使用单个 DCR,并将该 DCR 与多个计算机相关联,而不是为每个计算机创建单独的 DCR。 如果要从某些计算机收集进程和依赖项,但不希望从其他计算机收集,则可能需要创建单独的 DCR。
不应修改 VM 见解 DCR。 如果需要从受监视的计算机(如事件日志和安全日志)收集其他数据,请创建其他 DCR 并将其与同一台计算机相关联。 可以参考“使用 Azure Monitor 代理收集数据”,了解如何创建这些 DCR。
创建 VM 见解 DCR
有两种方法可以创建 VM 见解 DCR。 无论选择哪种方法,DCR 都是相同的,可与任何进程一起使用,以便在其他计算机上启用 VM 见解。 虽然不是必要项,但应该按照 Azure 门户使用的命名约定为 DCR MSVMI-{WorkspaceName}
命名。
使用专用链接启用网络隔离
默认情况下,Azure Monitor 代理会连接到公共终结点以连接到你的 Azure Monitor 环境。 若要为 VM 见解启用网络隔离,请将 VM 见解 DCR 关联到链接到 Azure Monitor 专用链接范围的数据收集终结点 (DCE),如“使用专用链接为 Azure Monitor 代理启用网络隔离”中所述。
启用 VM 见解
使用 Azure 门户启用 VM 见解
使用以下程序,在不受监视的虚拟机或虚拟机规模集上启用 VM 见解。 此过程不需要先部署代理或创建 VM 见解 DCR,因为这些任务由门户执行。
注意
在 Azure Monitor 代理安装过程中,如果系统分配的托管标识尚不存在,Azure 会将该标识分配给计算机。
从 Azure 门户的“监视”菜单中选择“虚拟机”>“未受监视”。 此选项卡包括未启用 VM 见解的所有计算机。 任何已安装了 Azure Monitor 代理的计算机。 如果虚拟机安装了 Log Analytics 代理,但未安装依赖项代理,则会作为“未监视”项列出。
选择要启用的任何计算机旁边的“启用”。 如果计算机当前未运行,则必须启动它才能启用此功能。
在“加入见解”页上,选择“启用”。
在“监视配置”页上,选择“Azure Monitor 代理”,然后从“数据收集规则”下拉列表中选择一个 DCR。 仅列出了为 VM 见解配置的 DCR。
如果尚未为 VM 见解创建 DCR,Azure Monitor 会提出创建一个具有默认 Log Analytics 工作区和以下设置的 DCR。 你可以接受这些默认值,也可以单击“新建”以使用不同的设置创建新的 DCR。 这允许你选择工作区,并指定是否使用 VM 见解映射功能收集进程和依赖项。
选择“配置”以启动配置过程。 安装代理并开始收集数据需要几分钟时间。 在执行配置时,你会收到状态消息。
如果对虚拟机规模集使用手动升级模型,请升级实例以完成设置。 可以从“设置”部分的“实例”页启动升级。
使用 ARM 模板启用 VM 见解
使用 ARM 模板启用 VM 见解需要完成三个步骤。 以下部分详细介绍了这些步骤。
部署代理
使用以下文章中的指南在计算机上安装所需代理。 仅当想要启用映射功能时,才需要 Dependency Agent。
注意
如果虚拟机规模集已将升级策略设置为手动,则安装模板后,默认情况下不会为实例启用 VM 见解。 必须手动升级实例。
创建数据收集规则 (DCR)
如果还没有适用于 VM 见解的 DCR,请使用上文 VM 见解 DCR 中的详细信息创建一个。
关联 DCR 与代理
启用 VM 见解的最后一步是关联 DCR 与 Azure Monitor 代理。 使用下面管理 Azure Monitor 中的数据收集规则关联中的模板。 若要在多台计算机上启用,需要使用此模板为每台计算机创建关联。 如果不熟悉部署 ARM 模板的方法,请参阅“部署模板”。
注意
如果将已启用映射功能的 DCR 关联到未安装 Dependency Agent 的计算机,则映射视图将不可用。 若要启用映射视图,请在安装 Dependency Agent 时在 Dependency Agent 扩展中设置 enableAMA property = true
。
ARM 模板
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"vmName": {
"type": "string",
"metadata": {
"description": "Name of the virtual machine."
}
},
"associationName": {
"type": "string",
"metadata": {
"description": "Name of the association."
}
},
"dataCollectionRuleId": {
"type": "string",
"metadata": {
"description": "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": "[parameters('associationName')]",
"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"
},
"associationName": {
"value": "my-windows-vm-my-dcr"
},
"dataCollectionRuleId": {
"value": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/my-resource-group/providers/microsoft.insights/datacollectionrules/my-dcr"
}
}
}
部署 ARM 模板
可以使用任何方法安装 ARM 模板,以便部署上述 ARM 模板。 有关如何从 Azure 门户部署模板的详细信息,请参阅快速入门:使用 Azure 门户创建和部署 ARM 模板。
以下示例演示如何使用常用方法,通过命令行部署模板。
New-AzResourceGroupDeployment -Name EnableVMinsights -ResourceGroupName <ResourceGroupName> -TemplateFile <Template.json> -TemplateParameterFile <Parameters.json>
az deployment group create --resource-group <ResourceGroupName> --template-file <Template.json> --parameters <Parameters.json>
使用 PowerShell 脚本为多台 VM 启用 VM 见解
本部分介绍如何使用可启用多台 VM 的 PowerShell 脚本启用 VM 见解。 此过程使用脚本为 Azure Monitoring 代理 (AMA) 安装 VM 扩展,并在必要时安装 Dependency Agent 以启用 VM 见解。
使用此脚本之前,必须使用上文“VM 见解 DCR”中的详细信息创建 VM 见解 DCR。
PowerShell 脚本
若要为多个 VM 或虚拟机规模集启用 VM 见解,请使用 PowerShell 脚本 Install-VMInsights.ps1。 此脚本会根据你指定的参数循环访问计算机。 此脚本可用于为以下项启用 VM 见解。 每个参数都接受通配符。
- 订阅中的每个虚拟机和虚拟机规模集。
-ResourceGroup
指定的范围内资源组。
-Name
指定的 VM 或虚拟机规模集。
验证你是否使用的是启用了 Enable-AzureRM
兼容性别名的 Az PowerShell 模块 1.0.0 或更高版本。 运行 Get-Module -ListAvailable Az
即可查找版本。 若要升级,请参阅安装 Azure PowerShell 模块。 如果在本地运行 PowerShell,请运行 Connect-AzAccount
以创建与 Azure 的连接。
如需脚本自变量详细信息和示例用法的列表,请运行 Get-Help
。
Get-Help Install-VMInsights.ps1 -Detailed
使用 Azure Monitor 代理启用 VM 见解时,脚本会将数据收集规则 (DCR) 和用户分配的托管标识 (UAMI) 关联到 VM/虚拟机规模集。 UAMI 设置会传递到 Azure Monitor 代理扩展。
Install-VMInsights.ps1 -SubscriptionId <SubscriptionId> `
[-ResourceGroup <ResourceGroup>] `
[-ProcessAndDependencies ] `
[-Name <VM or Virtual Machine Scale Set name>] `
-DcrResourceId <DataCollectionRuleResourceId> `
-UserAssignedManagedIdentityName <UserAssignedIdentityName> `
-UserAssignedManagedIdentityResourceGroup <UserAssignedIdentityResourceGroup>
必需参数:
-SubscriptionId <String>
Azure 订阅 ID。
-DcrResourceId <String>
数据收集规则 (DCR) Azure 资源 ID 标识符。 可以将来自不同订阅的 DCR 指定给启用了 Vm-Insights 的 VM 或虚拟机规模集。
-UserAssignedManagedIdentityResourceGroup <String>
用户分配的托管标识 (UAMI) 资源组的名称。
-UserAssignedManagedIdentityName <String>
用户分配的托管标识 (UAMI) 的名称。
可选参数:
-ProcessAndDependencies
将此标志设置为使用 Azure Monitoring Agent (AMA) 设置加入 Dependency Agent。 如果未指定,则仅加入 Azure Monitoring Agent (AMA)。
-Name <String>
要加入的 VM 或虚拟机规模集的名称。 如果未指定,则加入订阅或资源组中的所有 VM 和虚拟机规模集。 使用通配符指定多个 VM 或虚拟机规模集。
-ResourceGroup <String>
包含要加入的 VM 或虚拟机规模集的资源组的名称。 如果未指定,则加入订阅中的所有 VM 和虚拟机规模集。 使用通配符指定多个资源组。
-PolicyAssignmentName <String>
仅包含与此策略关联的 VM。 指定了 PolicyAssignmentName 参数时,会考虑参数 SubscriptionId 的 VM 部分。
-TriggerVmssManualVMUpdate [<SwitchParameter>]
触发升级策略设置为“手动”的规模集中 VM 实例的更新。
-WhatIf [<SwitchParameter>]
获取有关脚本中命令的预期效果的信息。
-Confirm [<SwitchParameter>]
确认脚本中的每个操作。
-Approve [<SwitchParameter>]
为安装提供批准以启动,列出的 VM/虚拟机规模集不会出现任何确认提示。
该脚本支持 -Name
和 -ResourceGroup
的通配符。 例如,-Name vm*
会为所有以“vm”开头的 VM 和虚拟机规模集启用 VM 见解。 有关详细信息,请参阅 Windows PowerShell 中的通配符。
示例:
Install-VMInsights.ps1 -SubscriptionId 12345678-abcd-abcd-1234-12345678 `
-ResourceGroup rg-AMAPowershell `
-ProcessAndDependencies `
-Name vmAMAPowershellWindows `
-DcrResourceId /subscriptions/12345678-abcd-abcd-1234-12345678/resourceGroups/rg-AMAPowershell/providers/Microsoft.Insights/dataCollectionRules/MSVMI-ama-vmi-default-dcr `
-UserAssignedManagedIdentityName miamatest1 `
-UserAssignedManagedIdentityResourceGroup amapowershell
在 Azure 门户中检查你的计算机,查看是否已安装扩展或使用以下命令:
az vm extension list --resource-group <resource group> --vm-name <VM name> -o table
后续步骤
要了解如何使用性能监视功能,请参阅查看 VM 见解性能。 要查看已发现的应用程序依赖项,请参阅查看 VM 见解映射。