MMA 发现和删除实用工具
将计算机迁移到 Azure Monitor 代理 (AMA) 后,需要删除 Log Analytics 代理(也称为 Microsoft 管理代理或 MMA),以避免日志重复。 Azure 租户安全解决方案 (AzTS) MMA 发现和删除实用工具可以从租户的 Azure 虚拟机 (VM)、Azure 虚拟机规模集和 Azure Arc 服务器中集中删除 MMA 扩展。
该实用工具按两个步骤工作:
发现:该实用工具会创建已安装 MMA 的所有计算机的清单。 建议在运行实用工具时不要创建具有 MMA 扩展的任何新 VM、虚拟机规模集或 Azure Arc 服务器。
删除:该实用工具会选择装有 MMA 和 AMA 的计算机,并删除 MMA 扩展。 可以在验证计算机列表后禁用此步骤并运行它。 可以选择从只有 MMA 的计算机中删除扩展,但我们建议先将所有依赖项迁移到 AMA,然后删除 MMA。
先决条件
使用 PowerShell 扩展在 Visual Studio Code 中执行所有安装步骤。 您需要:
- Windows 10 或更高版本,或 Windows Server 2019 或更高版本。
- PowerShell 5.0 或更高版本。 通过运行
$PSVersionTable
来查看版本。 - PowerShell。 语言必须设置为
FullLanguage
模式。 通过在 PowerShell 中运行$ExecutionContext.SessionState.LanguageMode
来检查模式。 有关详细信息,请参阅 PowerShell 参考。 - Bicep。 安装脚本使用 Bicep 自动进行安装。 通过运行
bicep --version
检查安装。 有关详细信息,请参阅安装 Bicep 工具。 - 用户分配的托管标识,它对目标作用域具有读取者、虚拟机参与者和 Azure Arc ScVmm VM 参与者访问权限。
- 一个新资源组,用于包含安装自动化自动创建的所有 Azure 资源。
- 对已配置的作用域具有适当权限。 若要向修正用户分配的托管标识授予对目标作用域具有的上述角色,必须具有用户访问管理员或所有者权限。 例如,如果要为特定订阅配置安装程序,则必须对该订阅具有用户访问管理员角色分配,以便脚本可以为修正用户分配的托管标识提供权限。
下载部署包
部署包包含:
- Bicep 模板,其中包含在安装过程中创建的资源配置详细信息。
- 部署安装脚本,它提供用于运行安装的 cmdlet。
安装此包:
转到 AzTS-docs GitHub 存储库。 将部署包文件 AzTSMMARemovalUtilityDeploymentFiles.zip 下载到本地计算机。
将 .zip 文件提取到本地文件夹位置。
使用此脚本取消阻止文件:
Get-ChildItem -Path "<Extracted folder path>" -Recurse | Unblock-File
设置实用工具
转到部署文件夹并加载合并的安装脚本。 你必须对订阅具有所有者访问权限。
CD "<LocalExtractedFolderPath>\AzTSMMARemovalUtilityDeploymentFiles" . ".\MMARemovalUtilityConsolidatedSetup.ps1"
使用以下 PowerShell 命令登录到 Azure 帐户:
$TenantId = "<TenantId>" Connect-AzAccount -Environment AzureChinaCloud -Tenant $TenantId
运行安装脚本以执行以下操作:
- 安装所需的 Az 模块。
- 设置修正用户分配的托管标识。
- 根据用户首选项提示并收集使用情况遥测收集的载入详细信息。
- 创建或更新资源组。
- 使用分配的托管标识创建或更新资源。
- 创建或更新监视仪表板。
- 配置目标作用域。
$SetupInstallation = Install-AzTSMMARemovalUtilitySolutionConsolidated ` -RemediationIdentityHostSubId <MIHostingSubId> ` -RemediationIdentityHostRGName <MIHostingRGName> ` -RemediationIdentityName <MIName> ` -TargetSubscriptionIds @("<SubId1>","<SubId2>","<SubId3>") ` -TargetManagementGroupNames @("<MGName1>","<MGName2>","<MGName3>") ` -TenantScope ` -SubscriptionId <HostingSubId> ` -HostRGName <HostingRGName> ` -Location <Location> ` -AzureEnvironmentName <AzureEnvironmentName>
该脚本包含以下参数:
参数名称 说明 必须 RemediationIdentityHostSubId
用于创建修正资源的订阅 ID。 是 RemediationIdentityHostRGName
用于创建修正的新资源组名称。 默认为 AzTS-MMARemovalUtility-RG
。否 RemediationIdentityName
修正托管标识的名称。 是 TargetSubscriptionIds
要在其上运行的目标订阅 ID 的列表。 否 TargetManagementGroupNames
要运行的目标管理组名称的列表。 否 TenantScope
通过租户 ID 分配角色的租户作用域。 否 SubscriptionId
在其中安装安装程序的订阅 ID。 是 HostRGName
在其中创建修正托管标识的新资源组的名称。 默认值为 AzTS-MMARemovalUtility-Host-RG
。否 Location
在其中创建安装程序的位置域控制器。 否 AzureEnvironmentName
安装解决方案的 Azure 环境: AzureCloud
或AzureGovernmentCloud
。 默认值为AzureCloud
。否
运行实用工具
Update-AzTSMMARemovalUtilityDiscoveryTrigger `
-SubscriptionId <HostingSubId> `
-ResourceGroupName <HostingRGName> `
-StartScopeResolverAfterMinutes 60 `
-StartExtensionDiscoveryAfterMinutes 30
该脚本包含以下参数:
参数名称 | 说明 | 必须 |
---|---|---|
SubscriptionId |
在其中安装了实用工具的订阅 ID。 | 是 |
ResourceGroupName |
在其中安装了实用工具的资源组的名称。 | 是 |
StartScopeResolverAfterMinutes |
在运行解析程序之前等待的时间(以分钟为单位)。 | 是(与 -StartScopeResolverImmediately 互斥) |
StartScopeResolverImmediately |
用于立即运行解析程序的指示器。 | 是(与 -StartScopeResolverAfterMinutes 互斥) |
StartExtensionDiscoveryAfterMinutes |
等待运行发现的时间(以分钟为单位)(应在解析程序完成之后)。 | 是(与 -StartExtensionDiscoveryImmediatley 互斥) |
StartExtensionDiscoveryImmediatley |
用于立即运行扩展发现的指示器。 | 是(与 -StartExtensionDiscoveryAfterMinutes 互斥) |