Централизация Windows Event Log: настройка WEF и Winlogbeat

Разбор логов Windows вручную отнимает время и замедляет реакцию на инциденты. Мы настраиваем централизованный сбор событий с помощью WEF и Winlogbeat, реализуя проект под ключ — от аудита до внедрения и последующей поддержки. Наша команда обеспечивает надёжное решение, которое масштабируется вместе с вашей инфраструктурой.
Часто задаваемые вопросы

В инфраструктуре с 50+ Windows-серверами разбор логов вручную — потеря времени. Без централизации среднее время обнаружения инцидента (MTTD) на Windows-хостах в 2–3 раза выше, чем на Linux. Настроив WEF для 200+ серверов в домене, мы снизили MTTD с 48 часов до 15 минут — в 8 раз. Это позволило сократить время реакции на инциденты и повысить эффективность аудита Windows Server. Event Log Forwarding (WEF) — встроенный в Windows механизм на базе Microsoft documentation on WinRM, позволяющий собирать события без стороннего агента.

Windows Event Forwarding (WEF): нативный подход

WEF — механизм на основе WinRM. Архитектура: Windows Event Collector (WEC) — сервер-агрегатор, который подписывается на источники (Collector Initiated) или ждёт push от источников (Source Initiated). Для доменной среды Source Initiated через GPO — предпочтительный вариант: не требует прав на каждый источник отдельно, масштабируется до тысяч узлов. Типичный коллектор может обрабатывать до 5000 событий в секунду.

Параметр Source Initiated Collector Initiated
Развёртывание Через GPO (массово) На каждом сервере вручную
Требуемые права Только на коллектор На каждый источник
Масштабирование Лёгкое, до 1000+ узлов Сложное, до 100 узлов
Шифрование HTTPS (зависит от WinRM) HTTPS

Типичная ошибка — забывают настроить HTTPS для WinRM, трафик остаётся незашифрованным. Или не фильтруют EventID, забивая канал миллионами ненужных событий.

Как настроить WEF через GPO?

Настройка включает три шага:

  1. Настройка WinRM на коллекторе и источниках через GPO.
  2. Создание подписки на коллекторе с указанием целевых EventID.
  3. Назначение разрешений и проверка связи.

Настройка WinRM на коллекторе и источниках

# На коллекторе
winrm quickconfig -q
wecutil qc -q

# На каждом источнике (через GPO или локально)
winrm quickconfig -q
Set-Item WSMan:\localhost\Client\TrustedHosts -Value "collector.domain.com"

Создание подписки на коллекторе

XML-шаблон подписки для сбора событий безопасности, системы и приложений:

<Subscription xmlns="http://schemas.microsoft.com/2006/03/windows/events/subscription">
  <SubscriptionId>SecurityEvents</SubscriptionId>
  <SubscriptionType>SourceInitiated</SubscriptionType>
  <Description>Security events from all domain servers</Description>
  <Enabled>true</Enabled>
  <Uri>http://schemas.microsoft.com/wbem/wsman/1/windows/EventLog</Uri>
  <ConfigurationMode>MinLatency</ConfigurationMode>
  <Delivery Mode="Push">
    <Batching>
      <MaxItems>100</MaxItems>
      <MaxLatencyTime>1000</MaxLatencyTime>
    </Batching>
    <PushSettings>
      <Heartbeat Interval="900000"/>
    </PushSettings>
  </Delivery>
  <Query>
    <![CDATA[
      <QueryList>
        <Query Id="0">
          <Select Path="Security"> *[System[(EventID=4624 or EventID=4625 or EventID=4634 or EventID=4648 or EventID=4720 or EventID=4722 or EventID=4724 or EventID=4728 or EventID=4732 or EventID=4756 or EventID=4767 or EventID=4771 or EventID=4776)]] </Select>
          <Select Path="System"> *[System[Level<=3]] </Select>
          <Select Path="Application"> *[System[Level=1 or Level=2]] </Select>
        </Query>
      </QueryList>
    ]]>
  </Query>
  <ReadExistingEvents>false</ReadExistingEvents>
  <TransportName>HTTP</TransportName>
  <ContentFormat>RenderedText</ContentFormat>
  <Locale Language="en-US"/>
  <LogFile>ForwardedEvents</LogFile>
  <AllowedSourceDomainComputers>O:NSG:NSD:(A;;GA;;;DC)(A;;GA;;;NS)</AllowedSourceDomainComputers>
</Subscription>

Сохраните файл как security-events.xml и выполните на коллекторе: wecutil cs security-events.xml. Ключевые EventID: 4624 (успешный вход), 4625 (неудачный вход), 4720 (создание пользователя), 4724 (сброс пароля), 4728/4732/4756 (добавление в привилегированные группы).

Winlogbeat: отправка в Elasticsearch

Winlogbeat — Filebeat-аналог для Windows Event Log, часть Elastic Stack. Преимущество — встроенная поддержка фильтрации и трансформации, минус — зависимость от Elasticsearch.

Почему стоит комбинировать WEF и Winlogbeat?

WEF агрегирует логи на коллектор, а Winlogbeat отправляет их в Elasticsearch. Такой подход в 2 раза снижает нагрузку на каждый источник по сравнению с установкой Winlogbeat на каждом сервере. Кроме того, фильтрация на коллекторе сокращает объём передаваемых данных на 60–80%. Ниже конфигурация Winlogbeat для ForwardedEvents:

# winlogbeat.yml
winlogbeat.event_logs:
  - name: Application
    ignore_older: 72h
    level: critical, error, warning
  - name: System
    ignore_older: 72h
    level: critical, error, warning
  - name: Security
    ignore_older: 72h
    event_id: 4624, 4625, 4634, 4648, 4720, 4722, 4724, 4728, 4732, 4756, 4767, 4771, 4776, 7045
  - name: ForwardedEvents
    ignore_older: 72h
  - name: Microsoft-Windows-PowerShell/Operational
    ignore_older: 72h
processors:
  - add_host_metadata:
      when.not.contains.tags: forwarded
output.elasticsearch:
  hosts: ["elasticsearch.monitoring.svc:9200"]
  index: "winlogbeat-%{[agent.version]}-%{+yyyy.MM.dd}"
  ssl.certificate_authorities: ["C:/certs/ca.crt"]
  ssl.certificate: "C:/certs/winlogbeat.crt"
  ssl.key: "C:/certs/winlogbeat.key"
setup.template.settings:
  index.number_of_shards: 1
  index.number_of_replicas: 0

Установка через PowerShell:

$url = "https://artifacts.elastic.co/downloads/beats/winlogbeat/winlogbeat-latest-windows-x86_64.zip"
Invoke-WebRequest -Uri $url -OutFile "winlogbeat.zip"
Expand-Archive -Path "winlogbeat.zip" -DestinationPath "C:\Program Files\winlogbeat"
cd "C:\Program Files\winlogbeat\winlogbeat-latest-windows-x86_64"
.\install-service-winlogbeat.ps1
Start-Service winlogbeat

NXLog: универсальный агент

NXLog Community Edition работает как с WEF, так и с отправкой в Syslog, Loki или любой другой endpoint. Полезен, когда Elasticsearch не в стеке.

Параметр Winlogbeat NXLog
Интеграция с Elastic Нативная Через плагины
Возможность вывода в Loki Требуется плагин Встроенная (om_http)
Ресурсы ~50 МБ RAM ~20 МБ RAM
Гибкость фильтрации X-Path Регулярные выражения

Пример конфигурации NXLog для отправки в Loki:

<Input eventlog>
  Module im_msvistalog
  Query <QueryList><Query Id="0"><Select Path="Security">*[System[(Level<=3) or (EventID=4624 or EventID=4625)]]</Select></Query></QueryList>
  SavePos TRUE
  ReadFromLast TRUE
</Input>
<Output loki>
  Module om_http
  URL http://loki.monitoring:3100/loki/api/v1/push
  ContentType application/json
  <Exec>
    $Message = to_json();
  </Exec>
</Output>
<Route r1>
  Path eventlog => loki
</Route>
Типичные ошибки при настройке WEF
  • Не настроен HTTPS для WinRM — трафик идёт в открытом виде.
  • Слишком широкая подписка — захватываются все события, перегрузка сети и коллектора.
  • Забыли настроить TrustedHosts на источниках — соединение отклоняется.
  • Не настроено время жизни подписки — подписка может зависнуть.

Что входит в работу — deliverables

  • Разработка архитектуры сбора (выбор подхода, настройка WinRM и GPO)
  • Создание подписок WEF под ваши EventID (безопасность, приложения, система)
  • Установка и настройка Winlogbeat/NXLog на коллектор
  • Интеграция с SIEM (Elastic, Loki, Splunk) — настройка индексов и алертинга
  • Документация: схема потоков, runbook для расширения, список фильтруемых событий
  • Обучение команды (2 часа воркшопа)
  • Гарантия на конфигурацию — 30 дней бесплатной поддержки

Настройка Event Log Forwarding занимает 1–3 дня в зависимости от размера домена и требований к фильтрации. Свяжитесь с нами — оценим вашу инфраструктуру за 1 день. Наши инженеры имеют сертификаты Microsoft и 5+ лет опыта в построении систем мониторинга для Windows-сред. Закажите настройку — получите консультацию.

Наши компетенции:

Последние работы

  • Разработка сайта компании B2B ADVANCE
    Разработка сайта компании B2B ADVANCE
    1542
  • Разработка веб-приложения для компании FEEDME
    Разработка веб-приложения для компании FEEDME
    1393
  • Разработка веб-сайта для компании БЕЛФИНГРУПП
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    1081
  • Разработка интернет магазина для компании FURNORO
    Разработка интернет магазина для компании FURNORO
    1368
  • Разработка логотипа компании B2B Advance
    Разработка логотипа компании B2B Advance
    815
  • Разработка веб-приложения для компании Enviok
    Разработка веб-приложения для компании Enviok
    1139