MMA 发现和删除实用工具

将计算机迁移到 Azure Monitor 代理 (AMA) 后,需要删除 Log Analytics 代理(也称为 Microsoft 管理代理或 MMA),以避免日志重复。 Azure 租户安全解决方案 (AzTS) MMA 发现和删除实用工具可以从租户的 Azure 虚拟机 (VM)、Azure 虚拟机规模集和 Azure Arc 服务器中集中删除 MMA 扩展。

该实用工具按两个步骤工作:

  1. 发现:该实用工具会创建已安装 MMA 的所有计算机的清单。 建议在运行实用工具时不要创建具有 MMA 扩展的任何新 VM、虚拟机规模集或 Azure Arc 服务器。

  2. 删除:该实用工具会选择装有 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。

安装此包:

  1. 转到 AzTS-docs GitHub 存储库。 将部署包文件 AzTSMMARemovalUtilityDeploymentFiles.zip 下载到本地计算机。

  2. 将 .zip 文件提取到本地文件夹位置。

  3. 使用此脚本取消阻止文件:

    Get-ChildItem -Path "<Extracted folder path>" -Recurse | Unblock-File 
    

设置实用工具

  1. 转到部署文件夹并加载合并的安装脚本。 你必须对订阅具有所有者访问权限。

    CD "<LocalExtractedFolderPath>\AzTSMMARemovalUtilityDeploymentFiles"
    . ".\MMARemovalUtilityConsolidatedSetup.ps1"
    
  2. 使用以下 PowerShell 命令登录到 Azure 帐户:

    $TenantId = "<TenantId>"
    Connect-AzAccount -Environment AzureChinaCloud -Tenant $TenantId
    
  3. 运行安装脚本以执行以下操作:

    • 安装所需的 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 环境:AzureCloudAzureGovernmentCloud。 默认值为 AzureCloud

运行实用工具

Update-AzTSMMARemovalUtilityDiscoveryTrigger ` 
    -SubscriptionId <HostingSubId> `
    -ResourceGroupName <HostingRGName> `
    -StartScopeResolverAfterMinutes 60 `
    -StartExtensionDiscoveryAfterMinutes 30 

该脚本包含以下参数:

参数名称 说明 必须
SubscriptionId 在其中安装了实用工具的订阅 ID。
ResourceGroupName 在其中安装了实用工具的资源组的名称。
StartScopeResolverAfterMinutes 在运行解析程序之前等待的时间(以分钟为单位)。 是(与 -StartScopeResolverImmediately 互斥)
StartScopeResolverImmediately 用于立即运行解析程序的指示器。 是(与 -StartScopeResolverAfterMinutes 互斥)
StartExtensionDiscoveryAfterMinutes 等待运行发现的时间(以分钟为单位)(应在解析程序完成之后)。 是(与 -StartExtensionDiscoveryImmediatley 互斥)
StartExtensionDiscoveryImmediatley 用于立即运行扩展发现的指示器。 是(与 -StartExtensionDiscoveryAfterMinutes 互斥)