===== 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). Общая схема настроек на скриншоте. ;#; {{:wiki:graylog_config_sidecars.jpg?|}} ;#; 4. Теперь нам необходимо завести клиента (и его токен), который будет заниматься сбором логов как показано ниже. ;#; {{::graylog_add_sidecar_token.jpg|}} ;#; В //token name// пропишем имя нашего клиента и далее нажмём //create token//. Запишем сгенерированный токен - он потребуется нам во время установки sidecar на клиентской системе. 5. Теперь мы можем устанавливать клиента. Качаем клиента отсюда: https://github.com/Graylog2/collector-sidecar/releases При установке нам необходимо указать URL API Graylog, его имя (как в //token name//), а также, собственно, сам токен. Пример: ;#; {{:wiki:sidecar_settings.jpg?600|}} ;#; 6. Устанавливаем связь между созданной нами конфигурации и заведенным клиентом через раздел //Administration// в //System/Sidecars//, подтверждая назначение конфигурации. ;#; {{:wiki:graylog_sidecar_assign_conf.jpg|}} ;#; 7. Перейдя в раздел //overview// - можем убедиться в статусе нашего клиента. 8. Если на наших созданных клиентах много релевантных логов и с передачей всё хорошо - скорее всего увидим изменения в счётчике логов в правой верхней области Graylog. ;#; {{:wiki:graylog_counter_logs.jpg?600|}} ;#; 9. Чтобы искать какие-либо события - воспользуемся поиском в разделе //Search//, установив какой-нибудь временной интервал, или написав запрос. К примеру: source:server_name ;#; {{:wiki:graylog_search_example.jpg|}} ;#; {{tag>Graylog Exchange Microsoft Windows PowerShell}}