User Tools

Site Tools


windows_event_log_в_graylog

Windows Event Log в Graylog

Общая последовательность действий настройки Graylog для мониторинга событий Windows следующая.

1. На сервере Graylog конфигурируем Input, чтобы сервер мог принимать подключения по TCP на нужном нам порту.

2. В разделе System/Sidecars создаем новый Log Collector. Коллектор логов будет содержать шаблон для наших конфигураций. В плане структуры конфигурации можно ориентироваться на стандартный шаблон для Windows с именем winlogbeat, содержащий по умолчанию полезную директиву, предотвращающую обработку логов старше 96 часов: ignore_older: 96h.

Если нам требуется мониторить какие-либо расширенные или просто более конкретные разделы логов - необходимо получить их имена. Имена для всех логов конкретной ОС Windows легко можно получить с помощью PS-команды:

 Get-WinEvent -ListLog * | Format-List -Property LogName

Если нам необходимо нечто более специфическое, можно воспользоваться средтвами фильтрации PowerShell. Получим, к примеру, все логи, содержащие “Exchange” в своем названии:

Get-WinEvent -ListLog * | Where-Object logname -like "*exchang*" | format-list -Property logname 

Пример конфига коллектора для сбора стандартных логов application, security, system + всех разделов логов Microsoft Exchange:

# Needed for Graylog
fields_under_root: true
fields.collector_node_id: ${sidecar.nodeName}
fields.gl2_source_collector: ${sidecar.nodeId}


output.logstash:
   hosts: ["${user.graylog_host}:5044"]
path:
  data: ${sidecar.spoolDir!"C:\\Program Files\\Graylog\\sidecar\\cache\\winlogbeat"}\data
  logs: ${sidecar.spoolDir!"C:\\Program Files\\Graylog\\sidecar"}\logs
tags:
 - windows
winlogbeat:
  event_logs:
   - name: Application
     level: critical, error
     ignore_older: 96h
   - name: System
     level: critical, error
     ignore_older: 96h
   - name: Security
     level: critical, error
     ignore_older: 96h
   - name: MSExchange Management
     level: critical, error
     ignore_older: 96h
   - name: Microsoft-Exchange-ActiveMonitoring/MaintenanceDefinition
     level: critical, error
     ignore_older: 96h
   - name: Microsoft-Exchange-ActiveMonitoring/MaintenanceResult
     level: critical, error
     ignore_older: 96h
   - name: Microsoft-Exchange-ActiveMonitoring/MonitorDefinition
     level: critical, error
     ignore_older: 96h
   - name: Microsoft-Exchange-ActiveMonitoring/MonitorResult
     level: critical, error
     ignore_older: 96h
   - name: Microsoft-Exchange-ActiveMonitoring/ProbeDefinition
     level: critical, error
     ignore_older: 96h
   - name: Microsoft-Exchange-ActiveMonitoring/ProbeResult
     level: critical, error
     ignore_older: 96h
   - name: Microsoft-Exchange-ActiveMonitoring/ResponderDefinition
     level: critical, error
     ignore_older: 96h
   - name: Microsoft-Exchange-ActiveMonitoring/ResponderResult
     level: critical, error
     ignore_older: 96h
   - name: Microsoft-Exchange-DxStoreHA/Execution
     level: critical, error
     ignore_older: 96h
   - name: Microsoft-Exchange-DxStoreHA/General
     level: critical, error
     ignore_older: 96h
   - name: Microsoft-Exchange-DxStoreHA/Performance
     level: critical, error
     ignore_older: 96h
   - name: Microsoft-Exchange-DxStoreHA/Server
     level: critical, error
     ignore_older: 96h
   - name: Microsoft-Exchange-DxStoreHA/Validation
     level: critical, error
     ignore_older: 96h
   - name: Microsoft-Exchange-ESE/Operational
     level: critical, error
     ignore_older: 96h
   - name: Microsoft-Exchange-HighAvailability/AppLogMirror
     level: critical, error
     ignore_older: 96h
   - name: Microsoft-Exchange-HighAvailability/BlockReplication
     level: critical, error
     ignore_older: 96h
   - name: Microsoft-Exchange-HighAvailability/Debug
     level: critical, error
     ignore_older: 96h
   - name: Microsoft-Exchange-HighAvailability/Monitoring
     level: critical, error
     ignore_older: 96h
   - name: Microsoft-Exchange-HighAvailability/Network
     level: critical, error
     ignore_older: 96h
   - name: Microsoft-Exchange-HighAvailability/Operational
     level: critical, error
     ignore_older: 96h
   - name: Microsoft-Exchange-HighAvailability/Seeding
     level: critical, error
     ignore_older: 96h
   - name: Microsoft-Exchange-HighAvailability/TruncationDebug
     level: critical, error
     ignore_older: 96h
   - name: Microsoft-Exchange-MailboxAssistants/Debug
     level: critical, error
     ignore_older: 96h
   - name: Microsoft-Exchange-MailboxAssistants/Exception
     level: critical, error
     ignore_older: 96h
   - name: Microsoft-Exchange-MailboxAssistants/Operational
     level: critical, error
     ignore_older: 96h
   - name: Microsoft-Exchange-MailboxDatabaseFailureItems/Debug
     level: critical, error
     ignore_older: 96h
   - name: Microsoft-Exchange-MailboxDatabaseFailureItems/Operational
     level: critical, error
     ignore_older: 96h
   - name: Microsoft-Exchange-ManagedAvailability/InvokeNowRequest
     level: critical, error
     ignore_older: 96h
   - name: Microsoft-Exchange-ManagedAvailability/InvokeNowResult
     level: critical, error
     ignore_older: 96h
   - name: Microsoft-Exchange-ManagedAvailability/Monitoring
     level: critical, error
     ignore_older: 96h
   - name: Microsoft-Exchange-ManagedAvailability/RecoveryActionLogs
     level: critical, error
     ignore_older: 96h
   - name: Microsoft-Exchange-ManagedAvailability/RecoveryActionResults
     level: critical, error
     ignore_older: 96h
   - name: Microsoft-Exchange-ManagedAvailability/RemoteActionLogs
     level: critical, error
     ignore_older: 96h
   - name: Microsoft-Exchange-ManagedAvailability/StartupNotification
     level: critical, error
     ignore_older: 96h
   - name: Microsoft-Exchange-ManagedAvailability/ThrottlingConfig
     level: critical, error
     ignore_older: 96h
   - name: Microsoft-Exchange-PushNotifications/Analytics
     level: critical, error
     ignore_older: 96h
   - name: Microsoft-Exchange-PushNotifications/Client
     level: critical, error
     ignore_older: 96h
   - name: Microsoft-Exchange-PushNotifications/Debug
     level: critical, error
     ignore_older: 96h	 
   - name: Microsoft-Exchange-PushNotifications/Operational
     level: critical, error
     ignore_older: 96h
   - name: Microsoft-Exchange-Troubleshooters/Operational
     level: critical, error
     ignore_older: 96h
   - name: Microsoft-Windows-Security-ExchangeActiveSyncProvisioning/Operational
     level: critical, error
     ignore_older: 96h

Ознакомиться подробнее с принципами конфигурирования winlogbeat можно по следующей ссылке:

https://www.elastic.co/guide/en/beats/winlogbeat/current/configuration-winlogbeat-options.html

3. После создания коллектора логов, содержащего шаблон, можно создать конфигурацию из данного коллектора. Именно конкретная конфигурация присваивается определенному клиенту (sidecar).

Общая схема настроек на скриншоте.

4. Теперь нам необходимо завести клиента (и его токен), который будет заниматься сбором логов как показано ниже.

В token name пропишем имя нашего клиента и далее нажмём create token. Запишем сгенерированный токен - он потребуется нам во время установки sidecar на клиентской системе.

5. Теперь мы можем устанавливать клиента. Качаем клиента отсюда: https://github.com/Graylog2/collector-sidecar/releases

При установке нам необходимо указать URL API Graylog, его имя (как в token name), а также, собственно, сам токен. Пример:

6. Устанавливаем связь между созданной нами конфигурации и заведенным клиентом через раздел Administration в System/Sidecars, подтверждая назначение конфигурации.

7. Перейдя в раздел overview - можем убедиться в статусе нашего клиента.

8. Если на наших созданных клиентах много релевантных логов и с передачей всё хорошо - скорее всего увидим изменения в счётчике логов в правой верхней области Graylog.

9. Чтобы искать какие-либо события - воспользуемся поиском в разделе Search, установив какой-нибудь временной интервал, или написав запрос. К примеру:

 source:server_name

windows_event_log_в_graylog.txt · Last modified: 2024/12/20 13:19 by jp