===== 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}}