Поделиться через


Устранение неполадок с помощью средства диагностики Guarded Fabric

В этой статье описывается использование средства диагностики Guarded Fabric для выявления и устранения распространенных сбоев в развертывании, конфигурации и текущей работе защищенной инфраструктуры структуры. Это включает службу защиты узлов (HGS), все защищенные узлы и вспомогательные службы, такие как DNS и Active Directory.

Область применения: Windows Server 2022, Windows Server 2019, Windows Server 2016

Средство диагностики можно использовать для выполнения первого прохода при переключении в незащищенную структуру, предоставляя администраторам отправную точку для устранения сбоев и выявления неправильно настроенных ресурсов. Средство не является заменой звукового захвата операционной защищенной структуры и служит только для быстрого проверки наиболее распространенных проблем, возникающих во время повседневных операций.

Полная документация по командлетам, используемым в этой статье, приведена в справочнике по модулю HgsDiagnostics.

Примечание.

При запуске средства диагностика Guarded Fabric (Get-HgsTrace -RunDiagnostics) может быть возвращено неверное состояние, утверждая, что конфигурация HTTPS нарушена, если она не используется. Эта ошибка может быть возвращена независимо от режима аттестации HGS. Ниже приведены возможные первопричины.

  • HTTPS действительно неправильно настроен/сломан
  • Вы используете аттестацию, доверенную администратором, и связь доверия нарушена. Это независимо от того, правильно ли настроен HTTPS, неправильно или вообще не используется. Обратите внимание, что диагностика возвращает неверное состояние только при целевом узле Hyper-V. Если диагностика нацелены на службу защиты узла, то будет правильно возвращено состояние.

Быстрое начало работы

Вы можете диагностировать защищенный узел или узел HGS, вызвав следующую команду из сеанса Windows PowerShell с правами локального администратора:

Get-HgsTrace -RunDiagnostics -Detailed

Это позволит автоматически обнаруживать роль текущего узла и диагностировать все соответствующие проблемы, которые могут быть обнаружены автоматически. Все результаты, созданные во время этого процесса, отображаются из-за наличия переключателя -Detailed .

Оставшаяся часть этого раздела содержит подробное пошаговое руководство по расширенному использованию Get-HgsTrace таких действий, как диагностика нескольких узлов одновременно и обнаружение сложной неправильной настройки между узлами.

Общие сведения о диагностике

Защищенные структуры диагностика доступны на любом узле с экранированных средств и компонентов, связанных с виртуальными машинами, включая узлы, работающие под управлением server Core. В настоящее время диагностика включены со следующими функциями и пакетами:

  • Роль службы защиты узла
  • Служба защиты узла — поддержка Hyper-V
  • Средства экранирования виртуальных машин для управления Fabric
  • Средства удаленного администрирования сервера (RSAT)

Это означает, что средства диагностики будут доступны на всех защищенных узлах, узлах HGS, некоторых серверах управления структурами и на всех рабочих станциях Windows 10 с установленным RSAT . Диагностику можно вызвать с любого из указанных выше компьютеров с целью диагностики любого защищенного узла или узла HGS в защищенной структуре; с помощью целевых объектов удаленной трассировки диагностика может находить и подключаться к узлам, кроме компьютера, работающего диагностика.

Каждый узел, предназначенный для диагностика, называется "целевым объектом трассировки". Целевые объекты трассировки определяются именами узлов и ролями. Роли описывают функцию заданного целевого объекта трассировки, выполняемую в защищенной структуре. В настоящее время целевые объекты трассировки поддерживают HostGuardianService и GuardedHost роли. Обратите внимание, что узел может занимать несколько ролей одновременно, и это также поддерживается диагностика, однако это не должно быть сделано в рабочих средах. Узлы HGS и Hyper-V всегда должны храниться отдельно и отличаться.

Администраторы могут начать любые диагностические задачи, выполнив команду Get-HgsTrace. Этот командлет выполняет две различные функции на основе коммутаторов, предоставляемых во время выполнения: сбор трассировки и диагностика. Эти два объединенных составляют всю структуру средства диагностики Guarded Fabric. Хотя не требуется явно, наиболее полезные диагностика требуют трассировки, которые можно собирать только с учетными данными администратора в целевом объекте трассировки. Если у пользователя недостаточно привилегий, выполняющих коллекцию трассировок, трассировка, требующая повышения прав, завершится ошибкой, а все остальные будут передаваться. Это позволяет частично диагностировать в случае, если оператор с низким уровнем привилегий выполняет триадж.

Коллекция трассировок

По умолчанию Get-HgsTrace будут собираться только трассировки и сохранять их во временную папку. Трассировки принимают форму папки с именем целевого узла, заполненной специально отформатированными файлами, описывающими настройку узла. Трассировки также содержат метаданные, описывающие способ вызова диагностика для сбора трассировок. Эти данные используются диагностика для повторного восстановления информации о узле при выполнении ручной диагностики.

При необходимости трассировки можно просматривать вручную. Все форматы доступны для чтения (XML) или могут быть легко проверены с помощью стандартных средств (например, сертификатов X509 и расширений оболочки шифрования Windows). Обратите внимание, что трассировки не предназначены для ручной диагностики и всегда эффективнее обрабатывать трассировки с помощью средств диагностики Get-HgsTrace.

Результаты выполнения коллекции трассировки не указывают на работоспособность данного узла. Они просто указывают на то, что трассировки были успешно собраны. Необходимо использовать средства диагностики Get-HgsTrace для определения того, указывают ли трассировки на неработоемую среду.

-Diagnostic С помощью параметра можно ограничить коллекцию трассировок только этими трассировками, необходимыми для работы указанной диагностика. Это сокращает объем собранных данных, а также разрешения, необходимые для вызова диагностика.

Diagnosis

Собранные трассировки можно диагностировать, указав Get-HgsTrace расположение трассировок с помощью -Path параметра и указав -RunDiagnostics переключатель. Кроме того, можно выполнять сбор и диагностику в одном проходе, Get-HgsTrace предоставляя -RunDiagnostics переключатель и список целевых объектов трассировки. Если целевые объекты трассировки отсутствуют, текущий компьютер используется в качестве неявного целевого объекта, с его ролью, выводимой путем проверки установленных модулей Windows PowerShell.

Диагностика предоставляет результаты в иерархическом формате, показывающее, какие целевые объекты трассировки, диагностические наборы и отдельные диагностика отвечают за определенный сбой. Ошибки включают рекомендации по исправлению и разрешению, если можно определить, какие действия следует предпринять далее. По умолчанию передача и неуместные результаты скрыты. Чтобы просмотреть все тестируемые диагностика, укажите переключатель-Detailed. Это приводит к отображению всех результатов независимо от их состояния.

Можно ограничить набор диагностика, выполняемых с помощью -Diagnostic параметра. Это позволяет указать, какие классы диагностики должны выполняться в целевых объектах трассировки и подавлять все остальные. Примерами доступных диагностических классов являются сеть, рекомендации и клиентское оборудование. Ознакомьтесь с документацией по командлету, чтобы найти актуальный список доступных диагностика.

Предупреждение

Диагностика не является заменой надежного конвейера мониторинга и реагирования на инциденты. Существует пакет System Center Operations Manager, доступный для мониторинга защищенных структур, а также различных каналов журнала событий, которые можно отслеживать для обнаружения проблем раньше. Затем можно использовать диагностику для быстрого анализа этих сбоев и установления курса действий.

Назначение диагностика

Get-HgsTrace работает с целевыми объектами трассировки. Целевой объект трассировки — это объект, соответствующий узлу HGS или защищенному узлу внутри защищенной структуры. Его можно рассматривать как расширение к PSSessionобъекту, которое включает сведения, необходимые только для диагностика, например роль узла в структуре. Целевые объекты можно создавать неявно (например, локальную или ручную диагностику) или явно с помощью командлета New-HgsTraceTarget .

Локальный диагноз

По умолчанию Get-HgsTrace целевой объект localhost (т. е. для вызова командлета). Это называется неявным локальным целевым объектом. Неявный локальный целевой объект используется только в -Target том случае, если в параметре отсутствуют целевые объекты, а в параметре отсутствуют существующие трассировки -Path.

Неявный локальный целевой объект использует вывод ролей, чтобы определить, какая роль выполняет текущий узел в защищенной структуре. Это основано на установленных модулях Windows PowerShell, которые примерно соответствуют установленным функциям в системе. Наличие HgsServer модуля приводит к тому, что целевой объект трассировки принимает роль HostGuardianService и наличие HgsClient модуля приводит к тому, что целевой объект трассировки будет принимать роль GuardedHost. Для данного узла может присутствовать оба модуля, в этом случае он будет рассматриваться как a HostGuardianService и a GuardedHost.

Поэтому вызов диагностика по умолчанию для сбора трассировок локально:

Get-HgsTrace

Это эквивалентно следующему:

New-HgsTraceTarget -Local | Get-HgsTrace

Совет

Get-HgsTrace может принимать целевые объекты через конвейер или напрямую через -Target параметр. Нет никакой разницы между двумя операционными.

Удаленная диагностика с помощью целевых объектов трассировки

Удаленно диагностировать узел можно путем создания целевых объектов трассировки с данными удаленного подключения. Все, что необходимо, — это имя узла и набор учетных данных, способных подключаться с помощью удаленного взаимодействия Windows PowerShell.

$server = New-HgsTraceTarget -HostName "hgs-01.secure.contoso.com" -Role HostGuardianService -Credential (Enter-Credential)
Get-HgsTrace -RunDiagnostics -Target $server

В этом примере создается запрос на сбор учетных данных удаленного пользователя, а затем диагностика запускаться с помощью удаленного узла hgs-01.secure.contoso.com для завершения сбора трассировки. Полученные трассировки загружаются в localhost, а затем диагностируются. Результаты диагностики представлены так же, как при выполнении локальной диагностики. Аналогичным образом, нельзя указать роль, так как ее можно вывести на основе модулей Windows PowerShell, установленных в удаленной системе.

Удаленная диагностика использует удаленное взаимодействие Windows PowerShell для всех доступа к удаленному узлу. Поэтому необходимо, чтобы целевой объект трассировки включил удаленное взаимодействие Windows PowerShell (см. раздел "Включить PSRemoting") и что localhost правильно настроен для запуска подключений к целевому объекту.

Примечание.

В большинстве случаев требуется только то, что localhost является частью одного леса Active Directory и используется допустимое имя узла DNS. Если в вашей среде используется более сложная модель федерации или вы хотите использовать прямые IP-адреса для подключения, может потребоваться выполнить дополнительную настройку, например настройку доверенных узлов WinRM.

Вы можете убедиться, что целевой объект трассировки правильно создан и настроен для приема подключений с помощью командлета Test-HgsTraceTarget :

$server = New-HgsTraceTarget -HostName "hgs-01.secure.contoso.com" -Role HostGuardianService -Credential (Enter-Credential)
$server | Test-HgsTraceTarget

Этот командлет возвращается $True только в том случае, если Get-HgsTrace вы сможете установить удаленный диагностический сеанс с целевым объектом трассировки. После сбоя этот командлет возвращает соответствующие сведения о состоянии для дальнейшего устранения неполадок подключения удаленного взаимодействия Windows PowerShell.

Неявные учетные данные

При выполнении удаленной диагностики от пользователя с достаточными привилегиями для удаленного подключения к целевому объекту трассировки не требуется предоставлять учетные данные New-HgsTraceTarget. Командлет Get-HgsTrace автоматически будет повторно использовать учетные данные пользователя, вызвавающего командлет при открытии подключения.

Предупреждение

Некоторые ограничения применяются к повторному использовании учетных данных, особенно при выполнении того, что называется "вторым прыжком". Это происходит при попытке повторного использования учетных данных из удаленного сеанса на другой компьютер. Необходимо настроить CredSSP для поддержки этого сценария, но это выходит за рамки области управления защищенными структурами и устранения неполадок.

Использование Windows PowerShell Just Enough Administration (JEA) и диагностика

Удаленная диагностика поддерживает использование конечных точек Windows PowerShell с ограниченным доступом JEA. По умолчанию целевые объекты удаленной трассировки подключаются с помощью конечной точки по умолчанию microsoft.powershell . Если целевой объект трассировки имеет HostGuardianService роль, она также попытается использовать microsoft.windows.hgs конечную точку, которая настраивается при установке HGS.

Если вы хотите использовать пользовательскую конечную точку, необходимо указать имя конфигурации сеанса при создании целевого объекта трассировки с помощью -PSSessionConfigurationName параметра, например ниже:

New-HgsTraceTarget -HostName "hgs-01.secure.contoso.com" -Role HostGuardianService -Credential (Enter-Credential) -PSSessionConfigurationName "microsoft.windows.hgs"

Диагностика нескольких узлов

Вы можете одновременно передать несколько целевых объектов Get-HgsTrace трассировки. Это включает в себя сочетание локальных и удаленных целевых объектов. Каждый целевой объект в свою очередь трассируется, а затем трассировки из каждого целевого объекта будут диагностированы одновременно. Средство диагностики может использовать расширенные знания о развертывании для выявления сложных неправильно настроенных перекрестных узлов, которые в противном случае не будут обнаруживаемыми. Использование этой функции требует только трассировки из нескольких узлов одновременно (в случае ручной диагностики) или путем назначения нескольких узлов при вызове Get-HgsTrace (в случае удаленной диагностики).

Ниже приведен пример использования удаленной диагностики для обработки структуры, состоящей из двух узлов HGS и двух защищенных узлов, где один из защищенных узлов используется для запуска Get-HgsTrace.

$hgs01 = New-HgsTraceTarget -HostName "hgs-01.secure.contoso.com" -Credential (Enter-Credential)
$hgs02 = New-HgsTraceTarget -HostName "hgs-02.secure.contoso.com" -Credential (Enter-Credential)
$gh01 = New-HgsTraceTarget -Local
$gh02 = New-HgsTraceTarget -HostName "guardedhost-02.contoso.com"
Get-HgsTrace -Target $hgs01,$hgs02,$gh01,$gh02 -RunDiagnostics

Примечание.

Вам не нужно диагностировать всю защищенную структуру при диагностике нескольких узлов. Во многих случаях достаточно включить все узлы, которые могут быть вовлечены в заданное условие сбоя. Обычно это подмножество защищенных узлов и некоторое количество узлов из кластера HGS.

Диагностика вручную с помощью сохраненных трассировок

Иногда может потребоваться повторно запустить диагностика без повторного сбора трассировок или у вас могут не быть необходимых учетных данных для удаленной диагностики всех узлов в структуре одновременно. Ручная диагностика — это механизм, с помощью которого можно по-прежнему выполнять многофакционную структуру, но не используя Get-HgsTraceудаленную коллекцию трассировок.

Перед выполнением диагностики вручную необходимо убедиться, что администраторы каждого узла в структуре будут готовы и готовы выполнять команды от вашего имени. Выходные данные трассировки диагностики не предоставляют какие-либо сведения, которые обычно рассматриваются как конфиденциальные, однако пользователю необходимо определить, безопасно ли предоставлять эту информацию другим пользователям.

Примечание.

Трассировки не анонимизированы и отображают конфигурацию сети, параметры PKI и другую конфигурацию, которая иногда считается частной информацией. Таким образом, трассировки должны передаваться только доверенным сущностям в организации и никогда не публиковаться публично.

Ниже приведены шаги по выполнению диагностики вручную.

  1. Попросите каждого администратора Get-HgsTrace узла указать известный -Path и список диагностика, которые планируется запустить в результирующей трассировки. Например:

    Get-HgsTrace -Path C:\Traces -Diagnostic Networking,BestPractices
    
  2. Попросите каждого администратора узла упаковать полученную папку трассировки и отправить ее вам. Этот процесс можно управлять по электронной почте, с помощью общих папок или любого другого механизма на основе операционных политик и процедур, установленных вашей организацией.

  3. Объединяйте все полученные трассировки в одну папку без других содержимого или папок.

    Например, предположим, что у вас были отправляемые администраторами трассировки, собранные на четырех компьютерах с именем HGS-01, HGS-02, RR1N2608-12 и RR1N2608-13. Каждый администратор отправил бы вам папку по одному имени. Вы собираете структуру каталогов, которая отображается следующим образом:

    FabricTraces
    |- HGS-01
    |  |- TargetMetadata.xml
    |  |- Metadata.xml
    |  |- [any other trace files for this host]
    |- HGS-02
    |  |- [...]
    |- RR1N2608-12
    |  |- [...]
    |- RR1N2608-13
       |- [..]
    
  4. Выполните диагностика, предоставив -RunDiagnostics путь к собранной папке трассировки в -Path параметре и указав переключатель, а также те диагностика, для которых администраторы попросили администраторов собирать трассировки. Диагностика предполагает, что он не может получить доступ к узлам, найденным внутри пути, и поэтому попытается использовать только предварительно подготовленные трассировки. Если какие-либо трассировки отсутствуют или повреждены, диагностика завершится сбоем только затронутых тестов и работает нормально. Например:

    Get-HgsTrace -RunDiagnostics -Diagnostic Networking,BestPractices -Path ".\FabricTraces"
    

Сочетание сохраненных трассировок с дополнительными целевыми объектами

В некоторых случаях у вас может быть набор предварительно подготовленных трассировок, которые необходимо расширить с помощью дополнительных трассировок узла. Можно смешивать предварительно подготовленные трассировки с дополнительными целевыми объектами, которые будут трассироваться и диагностироваться в одном вызове диагностика.

Следуя инструкциям по сбору и сборке указанной выше папки трассировки, вызов Get-HgsTrace с дополнительными целевыми объектами трассировки не найден в предварительно выбранной папке трассировки:

$hgs03 = New-HgsTraceTarget -HostName "hgs-03.secure.contoso.com" -Credential (Enter-Credential)
Get-HgsTrace -RunDiagnostics -Target $hgs03 -Path .\FabricTraces

Командлет диагностики будет определять все предварительно подготовленные узлы, а также один дополнительный узел, который по-прежнему должен быть трассирован и будет выполнять необходимую трассировку. Затем будет диагностирована сумма всех предварительно собранных и недавно собранных трассировок. Результирующая папка трассировки будет содержать старые и новые трассировки.

Известные проблемы

Модуль защищенной структуры диагностика имеет известные ограничения при запуске в Windows Server 2019 или Windows 10 версии 1809 и более поздних версий ОС. Использование следующих функций может привести к ошибочным результатам:

  • Аттестация ключа узла
  • Конфигурация HGS только для аттестации (для сценариев Always Encrypted SQL Server)
  • Использование артефактов политики версии 1 на сервере HGS, где политика аттестации по умолчанию — версия 2

Сбой Get-HgsTrace при использовании этих функций не обязательно указывает, что сервер HGS или защищенный узел неправильно настроен. Используйте другие средства диагностики, например Get-HgsClientConfiguration на защищенном узле, чтобы проверить, прошел ли узел аттестацию.