Azure Monitor SCOM 托管实例自我验证步骤

本文介绍 Operations Manager 管理员、Active Directory 管理员和网络管理员的自我验证过程。

注意

若要了解 Azure Monitor SCOM 托管实例体系结构,请参阅 Azure Monitor SCOM 托管实例

设置所需的参数后,运行自验证工具。 根据从遥测中收集的经验和数据,Operations Manager 管理员花费了大量时间来验证参数的准确性。 运行此工具有助于在继续部署之前识别环境或参数的任何问题。

许多客户都受益于此工具,因为它可节省以后排查参数问题所花费的时间。 建议在部署前运行此工具,以避免将来在本地参数诊断和故障排除时花费过多的时间。

在创建 SCOM 托管实例 实例的过程中,涉及三个主要角色。 以下是 Operations Manager 管理员在企业组织中设置步骤的典型流程:

  1. Operations Manager 管理员启动与 Active Directory 管理员的通信,以配置所有与 Active Directory 相关的设置。

  2. 然后,Operations Manager 管理员与网络管理员通信,以建立虚拟网络,并配置必要的防火墙、网络安全组和 DNS 解析以连接到指定的 Active Directory 控制器,如网络先决条件中所述。

  3. 实现所有配置后,Operations Manager 管理员将继续对测试虚拟机 (VM) 进行彻底测试,以确保一切按预期运行。 此测试阶段有助于主动识别和解决任何潜在问题。

如果 Operations Manager 管理员扮演所有三个角色,他们可以独立处理和管理所有任务,而无需每个特定领域的不同人员参与。

通过为每个角色提供的步骤来验证参数,我们的目标是简化参数设置过程,以减少创建 SCOM 托管实例所需的时间。

通过授权每个角色验证其各自的参数,我们可以加快整个设置过程,并实现更快的 SCOM 托管实例部署。

Operations Manager 管理员对步骤进行自我验证

运行 Operations Manager 管理员自我验证对于了解参数的准确性至关重要。

重要

最初,在为 SCOM 托管实例创建选择的同一子网中创建新的测试 Windows Server (2022/2019) VM。 随后,Active Directory 管理员和网络管理员可以单独使用此 VM 来验证其各自更改的有效性。 此方法可节省 Active Directory 管理员与网络管理员之间来回通信所花费的时间。

按照以下步骤运行验证脚本:

  1. 在所选子网中生成在 Windows Server 2022 或 2019 上运行的新 VM,以创建 SCOM 托管实例。 登录到 VM 并将其 DNS 服务器配置为使用计划在创建 SCOM 托管实例期间使用的同一 DNS 服务器 IP。 例如,请参阅以下屏幕截图以设置 DNS 服务器 IP。

    显示 DNS 服务器 IP 的屏幕截图。

  2. 将验证脚本下载 到测试 VM 并提取。 它由五个文件组成:

    • Readme.txt
    • ScomValidation.ps1
    • RunValidationAsSCOMAdmin.ps1
    • RunValidationAsActiveDirectoryAdmin.ps1
    • RunValidationAsNetworkAdmin.ps1
  3. 按照 文件中提到的 Readme.txt 步骤运行 RunValidationAsSCOMAdmin.ps1。 在运行设置值 RunValidationAsSCOMAdmin.ps1 之前,请确保使用适用的值填充中的设置值。

    # $settings = @{
    #   Configuration = @{
    #         DomainName="test.com"                 
    #         OuPath= "DC=test,DC=com"           
    #         DNSServerIP = "000.00.0.00"           
    #         UserName="test\testuser"              
    #         Password = "password"                 
    #         SqlDatabaseInstance= "test-sqlmi-instance.023a29518976.database.windows.net" 
    #         ManagementServerGroupName= "ComputerMSG"      
    #         GmsaAccount= "test\testgMSA$"
    #         DnsName= "lbdsnname.test.com"
    #         LoadBalancerIP = "00.00.00.000"
    #     }
    # }
    # Note : Before running this script, please make sure you have provided all the parameters in the settings
    $settings = @{
    Configuration = @{
    DomainName="<domain name>"
    OuPath= "<OU path>"
    DNSServerIP = "<DNS server IP>"
    UserName="<domain user name>"
    Password = "<domain user password>"
    SqlDatabaseInstance= "<SQL MI Host name>"
    ManagementServerGroupName= "<Computer Management server group name>"
    GmsaAccount= "<GMSA account>"
    DnsName= "<DNS name associated with the load balancer IP address>"
    LoadBalancerIP = "<Load balancer IP address>"
    }
    }
    
  4. 通常, RunValidationAsSCOMAdmin.ps1 运行所有验证。 如果要运行特定的检查,请打开ScomValidation.ps1并注释所有其他检查,这些检查位于文件末尾。 还可以在特定检查中添加断点,以调试检查并更好地了解问题。

         # Default mode is - SCOMAdmin, by default if mode is not passed then it will run all the validations 
         # adding all the checks to result set
         try {
             # Connectivity checks
             $validationResults += Invoke-ValidateStorageConnectivity $settings
             $results = ConvertTo-Json $validationResults -Compress
    
             $validationResults += Invoke-ValidateSQLConnectivity $settings
             $results = ConvertTo-Json $validationResults -Compress
    
             $validationResults += Invoke-ValidateDnsIpAddress $settings
             $results = ConvertTo-Json $validationResults -Compress
    
             $validationResults += Invoke-ValidateDomainControllerConnectivity $settings
             $results = ConvertTo-Json $validationResults -Compress
    
             # Parameter validations
             $validationResults += Invoke-ValidateDomainJoin $settings
             $results = ConvertTo-Json $validationResults -Compress
    
             $validationResults += Invoke-ValidateStaticIPAddressAndDnsname $settings
             $results = ConvertTo-Json $validationResults -Compress
    
             $validationResults += Invoke-ValidateComputerGroup $settings
             $results = ConvertTo-Json $validationResults -Compress
    
             $validationResults += Invoke-ValidategMSAAccount $settings
             $results = ConvertTo-Json $validationResults -Compress
    
             $validationResults += Invoke-ValidateLocalAdminOverideByGPO $settings
             $results = ConvertTo-Json $validationResults -Compress
         }
         catch {
             Write-Verbose -Verbose  $_
     }
    

    注意

    Operations Manager 管理员验证包括替代本地管理员组的任何 GPO 策略的检查。 可能需要很长时间才能完成,因为检查查询所有策略进行评估。

  5. 验证脚本显示所有验证检查及其各自的错误,这有助于解决验证问题。 为了快速解决问题,请使用断点在 PowerShell ISE 中运行脚本,从而加快调试过程。

    如果所有检查都成功通过,请返回到载入页面并启动载入过程。

Active Directory 管理员自行验证步骤

为了尽量减少与 Operations Manager 管理员的来回通信,Active Directory 管理员最好独立评估 Active Directory 参数。 如果需要,可以寻求 Operations Manager 管理员的帮助来运行验证工具,以确保参数评估过程更顺畅、更高效。

执行 Active Directory 管理员自验证是可选步骤。 我们为每个组织提供灵活性,以根据其便利性和特定要求决定是否执行此过程。

按照以下步骤运行验证脚本:

  1. 在所选子网中生成在 Windows Server 2022 或 2019 上运行的新 VM,以创建 SCOM 托管实例。 登录到 VM 并将其 DNS 服务器配置为使用计划在创建 SCOM 托管实例期间使用的同一 DNS 服务器 IP。 如果测试 VM 已由 Operations Manager 管理员创建,请使用测试 VM。 例如,请参阅以下屏幕截图以设置 DNS 服务器 IP。

    显示 DNS 服务器 IP 的屏幕截图。

  2. 将验证脚本下载 到测试 VM 并提取。 它由五个文件组成:

    • Readme.txt
    • ScomValidation.ps1
    • RunValidationAsSCOMAdmin.ps1
    • RunValidationAsActiveDirectoryAdmin.ps1
    • RunValidationAsNetworkAdmin.ps1
  3. 按照 文件中提到的 Readme.txt 步骤运行 RunValidationAsActiveDirectoryAdmin.ps1。 在运行设置值 RunValidationAsActiveDirectoryAdmin.ps1 之前,请确保使用适用的值填充中的设置值。

    # $settings = @{
    #   Configuration = @{
    #         DomainName="test.com"                 
    #         OuPath= "DC=test,DC=com"           
    #         DNSServerIP = "000.00.0.00"           
    #         UserName="test\testuser"              
    #         Password = "password"                 
    #         ManagementServerGroupName= "ComputerMSG"      
    #         GmsaAccount= "test\testgMSA$"
    #         DnsName= "lbdsnname.test.com"
    #         LoadBalancerIP = "00.00.00.000"
    #     }
    # }
    # Note : Before running this script, please make sure you have provided all the parameters in the settings
    $settings = @{
    Configuration = @{
    DomainName="<domain name>"
    OuPath= "<OU path>"
    DNSServerIP = "<DNS server IP>"
    UserName="<domain user name>"
    Password = "<domain user password>"
    ManagementServerGroupName= "<Computer Management server group name>"
    GmsaAccount= "<GMSA account>"
    DnsName= "<DNS name associated with the load balancer IP address>"
    LoadBalancerIP = "<Load balancer IP address>"
    }
    }
    
  4. 通常, RunValidationAsActiveDirectoryAdmin.ps1 运行所有验证。 如果要运行特定的检查,请打开ScomValidation.ps1并注释所有其他检查,这些检查位于 Active Directory 管理员检查下。 还可以在特定检查中添加断点,以调试检查并更好地了解问题。

    # Mode is AD admin then following validations/test will be performed
    if ($mode -eq "ADAdmin") {
    
        try {
            # Mode is AD admin then following validations/test will be performed
            $validationResults += Invoke-ValidateDnsIpAddress $settings
            $results = ConvertTo-Json $validationResults -Compress
    
            $validationResults += Invoke-ValidateDomainControllerConnectivity $settings
            $results = ConvertTo-Json $validationResults -Compress
    
            # Parameter validations
            $validationResults += Invoke-ValidateDomainJoin $settings
            $results = ConvertTo-Json $validationResults -Compress
    
            $validationResults += Invoke-ValidateStaticIPAddressAndDnsname $settings
            $results = ConvertTo-Json $validationResults -Compress
    
            $validationResults += Invoke-ValidateComputerGroup $settings
            $results = ConvertTo-Json $validationResults -Compress
    
            $validationResults += Invoke-ValidategMSAAccount $settings
            $results = ConvertTo-Json $validationResults -Compress
    
            $validationResults += Invoke-ValidateLocalAdminOverideByGPO $settings
            $results = ConvertTo-Json $validationResults -Compress
        }
        catch {
            Write-Verbose -Verbose  $_
        }
    }
    

    注意

    Active Directory 管理员验证包括替代本地管理员组的任何 GPO 策略的检查。 可能需要很长时间才能完成,因为检查查询所有策略进行评估。

  5. 验证脚本显示所有验证检查及其各自的错误,这有助于解决验证问题。 为了快速解决问题,请使用断点在 PowerShell ISE 中运行脚本,从而加快调试过程。

    如果所有检查都成功通过,则 Active Directory 参数没有问题。

网络管理员自行验证步骤

若要最大程度地减少与 Operations Manager 管理员的来回通信,网络管理员必须独立评估网络配置。 如果需要,他们可以寻求 Operations Manager 管理员的帮助来运行验证工具,以确保参数评估过程更顺畅、更高效。

执行网络管理员自验证是一个可选步骤。 我们为每个组织提供灵活性,以根据其便利性和特定要求决定是否执行此过程。

按照以下步骤运行验证脚本:

  1. 在所选子网中生成在 Windows Server 2022 或 2019 上运行的新 VM,以创建 SCOM 托管实例。 登录到 VM 并将其 DNS 服务器配置为使用计划在创建 SCOM 托管实例期间使用的同一 DNS 服务器 IP。 如果测试 VM 已由 Operations Manager 管理员创建,请使用测试 VM。 例如,请参阅以下屏幕截图以设置 DNS 服务器 IP。

    DNS 服务器 IP 的屏幕截图。

  2. 将验证脚本下载 到测试 VM 并提取。 它由五个文件组成:

    • Readme.txt
    • ScomValidation.ps1
    • RunValidationAsSCOMAdmin.ps1
    • RunValidationAsActiveDirectoryAdmin.ps1
    • RunValidationAsNetworkAdmin.ps1
  3. 按照 文件中提到的 Readme.txt 步骤运行 RunValidationAsNetworkAdmin.ps1。 在运行设置值 RunValidationAsNetworkAdmin.ps1 之前,请确保使用适用的值填充中的设置值。

    # $settings = @{
    #   Configuration = @{
    #         DomainName="test.com"                 
    #         DNSServerIP = "000.00.0.00"
    #	     SqlDatabaseInstance= "<SQL MI Host name>"           
    #     }
    # }
    # Note : Before running this script, please make sure you have provided all the parameters in the settings
    $settings = @{
    Configuration = @{
    DomainName="<domain name>"
    DNSServerIP = "<DNS server IP>"
    SqlDatabaseInstance= "<SQL MI Host name>"
    }
    }
    
  4. 通常, RunValidationAsNetworkAdmin.ps1 运行与网络配置相关的所有验证。 如果要运行特定的检查,请打开ScomValidation.ps1并注释所有其他检查,这些检查在网络管理员检查下。 还可以在特定检查中添加断点,以调试检查并更好地了解问题。

            # Mode is Network admin then following validations/test will be performed
            try {
                $validationResults += Invoke-ValidateStorageConnectivity $settings
                $results = ConvertTo-Json $validationResults -Compress
    
                $validationResults += Invoke-ValidateSQLConnectivity $settings
                $results = ConvertTo-Json $validationResults -Compress
    
                $validationResults += Invoke-ValidateDnsIpAddress $settings
                $results = ConvertTo-Json $validationResults -Compress
    
                $validationResults += Invoke-ValidateDomainControllerConnectivity $settings
                $results = ConvertTo-Json $validationResults -Compress
            }
            catch {
                Write-Verbose -Verbose  $_
        }
    
  5. 验证脚本显示所有验证检查及其各自的错误,这有助于解决验证问题。 为了快速解决问题,请使用断点在 PowerShell ISE 中运行脚本,从而加快调试过程。

    如果所有检查都成功通过,则网络配置没有问题。

后续步骤