Сбор данных о загрузочных событиях Windows Server 2016

в 9:00, , рубрики: logs, powershell, windows, Блог компании Сервер Молл, диагностика сервера, Серверная оптимизация, системное администрирование

Сбор данных о загрузочных событиях Windows Server 2016 - 1

В Windows Server 2016 есть не особенно известная функция «Сбор данных о настройках и загрузочных событиях». Она позволяет удаленно собирать информацию о событиях, произошедших в процессе загрузки системы. Такая возможность особенно полезна при поиске «плавающих» проблем во время загрузки ОС.

В статье я расскажу, как можно удобно собирать эти недостающие сведения.

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

  1. Загрузка модулей ядра и драйверов.
  2. Перечисление устройств и инициализация их драйверов.
  3. Верификация и установка файловых систем.
  4. Запуск исполняемых файлов.
  5. Запуск и завершение обновлений системы.

После сбора всех необходимых данных о событиях на сервере-сборщике для их анализа можно использовать хорошо знакомые инструменты – Event Viewer, Wevutil или PowerShell.

Далее мы рассмотрим, как настроить сервер и удаленные узлы для сбора данных.

Поддерживаемые ОС

Роль сборщика может выполнять исключительно Windows Server 2016 – это может быть либо сервер с возможностями рабочего стола, либо Server Core.

Ниже приведена таблица с интернет-ресурса TechNet, в которой показаны поддерживаемые виртуализованные типы ОС для сборщиков и целевых компьютеров:

Узел виртуализации Виртуальная машина-сборщик Целевая виртуальная машина
Windows 8.1 да да
Windows 10 да да
Windows Server 2016 да да
Windows Server 2012 R2 да нет

На серверы, с которых вы хотите собирать данные, должна быть установлена или Windows Server 2016, или Windows 10. Кроме того, в качестве целевого узла может выступать компьютер с Nano Server. Также можно собирать данные из окон системы Windows Server 2016, даже если они работают как виртуальная машина на компьютерах с Windows Server 2012 R2.

Конфигурация узла сборщика

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

При помощи DISM:

dism /online /enable-feature /featurename:SetupAndBootEventCollection

Командой PowerShell:

Get-WindowFeature -Name *boot*
Install-Windows -Name Setup-and-Boot-Event-Collection

Также можно установить этот компонент с помощью Server Manager GUI:

Сбор данных о загрузочных событиях Windows Server 2016 - 2
Установка службы с помощью диспетчера сервера.

После установки службы сбора событий вы получите доступ к новой службе – Boot Event Collector, запущенной под учетной записью Network Service.

Сбор данных о загрузочных событиях Windows Server 2016 - 3
Свойства Boot Event Collector.

Существует также инструмент командной строки bevtcol.exe, который можно запустить с некоторыми полезными параметрами. Он поможет протестировать ваши настройки перед установкой полного сервиса.

Сбор данных о загрузочных событиях Windows Server 2016 - 4
Параметры bevtcol.exe.

Например, можно запустить bevtcol.exe – config NewConfig.xml – checkOnly только для проверки правильности файла конфигурации. И потом выйти без запуска самого процесса.

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

В папке C:ProgramDataMicrosoftBootEventCollectorConfig, вы увидите три XML файла конфигурации, созданные сразу после установки сервиса.

Сбор данных о загрузочных событиях Windows Server 2016 - 5
Файлы конфигурации XML.

Active.xm содержит аналогичную Empty.xml конфигурацию. Каждая новая конфигурация должна быть сохранена в этом файле:

  • Empty.xml – содержит минимально необходимые элементы конфигурации, с установленными по умолчанию значениями;
  • Example.xml – содержит полезные примеры конфигураций.

Сбор данных о загрузочных событиях Windows Server 2016 - 6
*XML-файл с пример*ом конфигурации.

Если взглянуть на структуру папки С:ProgramDataMicrosoftBootEventCollector, можно увидеть, что разные папки созданы для разных целей:

  • ETL – это каталог для хранения собранных ETL-файлов;
  • Logs, как следует из названия, хранят log-файлы для службы сбора.

Сбор данных о загрузочных событиях Windows Server 2016 - 7
ETL and log file folders.

Теперь мы можем создать наш первый файл конфигурации. Создайте новый XML-файл в каталоге %SystemDrive%ProgramDataMicrosoftBootEventCollectorConfig и скопируйте содержимое конфигурации, указанной ниже, в .xml-файл.

Пример конфигурации.

<collector configVersionMajor="1" statuslog="c:ProgramDataMicrosoftBootEventCollectorLogsstatuslog.xml"> 

<common> 
<collectorport value="50000"/> 

<forwarder type="etl"> 
<set name="file" value="c:ProgramDataMicrosoftBootEventCollectorEtl{computer}{computer}_{#3}.etl"/> 
<set name="size" value="10mb"/> 
<set name="nfiles" value="10"/> 
<set name="toxml" value="none"/> 
</forwarder> 

<target> 
<ipv4 value="192.168.1.171"/> 
<key value="6.7.8.9"/> 
<computer value="Server01"/> 
</target> <target> 
<mac value="00:15:5D:60:3D:04"/> 
<key value="1.2.3.4"/> 
<computer value="Server02"/> 
</target> 
</common> 
</collector>

В файле конфигурации есть несколько важных моментов.

Во-первых, Collector – в этом узле мы указали версию файла конфигурации и имя log-файла.

Во-вторых, collectorport – указывает номер порта для сбора входящих событий. Нам также необходимо настроить один и тот же номер порта на целевых компьютерах.

В третьих, forwarder – здесь мы указываем характеристики ETL-файлов. Эти характеристики могут быть следующими:

1. File определяет шаблон имени файла. {# 3} – это трехзначный индекс файла при обращении, такой как 001, 002 и т.д. {Computer} используется для обозначения имени компьютера. Таким образом, в нашем примере файлы будут собраны в папке EtlCOMPUTERNAME с именем COMPUTERNAME_00x.

2. Size определяет максимальный размер ETL-файла.

3. Nfiles определяет количество созданных ETL-файлов в обращении. Каждый новый файл создается, как только размер предыдущего достигает ограничения, определенного параметром Size.

4. ToXML — опциональный параметр, определяющий полезную нагрузку, с которой ETW-события во время пересылки преобразуются в XML. None — это значение, установленное по умолчанию. Оно всегда пересылает события в двоичном формате по мере их получения. Если вы установите значение «ALL», полезная нагрузка будет постоянно преобразовываться в XML.

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

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

В четвертых, target – здесь можно указать настройки целевого узла. Например, IP-адрес, MAC-адрес или GUID, чтобы настроить компьютеры для приема подключений. Также можно указать anyAllowed, чтобы принимать все подключения.

Вы можете указать несколько целевых компьютеров, добавив дополнительные target-узлы:

  • в описанном выше случае, указаны два целевых компьютера: один с IP-адресом и один с MAC-адресом;
  • Key – это ключи шифрования, которые мы собираемся получить позже, при настройке целевых компьютеров;
  • Computer value – это имя целевого компьютера, который должен быть занесен в ETW-записи, когда они преобразуются в XML.

После того, как вы закончите с файлом конфигурации, сохраните его и настройте целевой узел.

Настройка целевого компьютера

Чтобы настроить целевые компьютеры для отправки ETW-событий, необходимо активировать передачу событий. Вы можете активировать ее локально с помощью команды bcdedit или удаленно с помощью команды PowerShell Remote и Enable-SbecBcd.

В моей лаборатории у меня есть доступ к моим целевым компьютерам, поэтому я буду использовать bcdedit:

bcdedit /event yes
bcdedit /eventsettings net hostip:192.168.1.172 port:50000 key:6.7.8.9

Где:

  • HostIP – это имя компьютера-коллектора, которое мы конфигурировали ранее;
  • Port – это номер порта, который мы указали в файле конфигурации;
  • Key – это ключ шифрования, который нам нужно указать в файле конфигурации.

Сбор данных о загрузочных событиях Windows Server 2016 - 8
Активация передачи событий через команду bcdedit.

Я настроил ключи шифрования. Вы можете проверить конфигурацию с помощью следующей команды bcdedit:

Сбор данных о загрузочных событиях Windows Server 2016 - 9
Проверка конфигурации события BCD.

Теперь я могу вернуться к моему серверу и применить новый файл конфигурации, который я создал ранее, с указанными ключами. Set-SbecActiveConfig cmdlet нам в этом поможет:

$result = (Get-Content .myconfig.xml | Set-SbecActiveConfig); $result

Сбор данных о загрузочных событиях Windows Server 2016 - 10
Применение файла конфигурации на компьютере-сборщике.

(Get-SbecActiveConfig).content

Сбор данных о загрузочных событиях Windows Server 2016 - 11
Получение принятой конфигурации.

И наконец последний шаг – настройка целевых компьютеров для отправки ETW-событий.

На сервере выполните следующую команду:

Enable-SbecAutoLogger -ComputerName <targetcomputer> -Credential (Get-Credential)

Сбор данных о загрузочных событиях Windows Server 2016 - 12
Настройка целевого компьютера для отправки ETW-событий.

На сервере файл конфигурации active.xml обновился с моими настройками.

Сбор данных о загрузочных событиях Windows Server 2016 - 13
Обновленный файл active.xml.

Также был создан новый log-статус:

Сбор данных о загрузочных событиях Windows Server 2016 - 14
Обновленный log-файл.

Кроме того, создается новый ETL-файл, который уже может собирать информацию о настройках и загрузочных событиях с целевого компьютера (Server01). После перезапуска одного из ваших серверов, в нем появится информация:

Сбор данных о загрузочных событиях Windows Server 2016 - 15
Собранные ETL-файлы.

Теперь можно открыть собранные ETL-файлы в инструменте просмотра событий Windows:

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

Не забудьте перезагрузить целевой сервер для применения настроек и получения первого набора событий.

Автор: Tri-Edge

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js