Логи Windows на ELK

Это, конечно, не сложно. Может и не стоило бы об этом писать, но я больше хотел обратить внимание на развертывание системы посредством MS System Center. Будем использовать последнюю версию Winlogbeat. Сейчас последняя версия — 5.1.1. Качаем отсюда https://www.elastic.co/downloads/beats/winlogbeat два варианта: 32-х и 64-x разрядные. На System Center делаем шару winlogbeat для everyone и внутри неё два фолдера x32\winlogbbeat и x64\winlogbeat. Помещаем в эти фолдеры файлы из соответствующих скачанных архивов. Все не нужны. Нужны только: winlogbeat.exe, install-service-winlogbeat.ps1, uninstall-service-winlogbeat.ps1. На наш сервер, где у нас logstash надо записать шаблон индексов для Elasticsearch. У меня Elasticsearch 2.4. Я беру из скачанного архива шаблон winlogbeat.template-es2x.json и кладу его в /etc/logstash на своем сервере.

Теперь надо написать файл конфигурации для logstash на обработку входного потока. Я написал вот такой 03-winlogbeat.conf

input {
  beats {
    port => 5044
    ssl => true
    ssl_certificate => "/etc/logstash/logstash-forwarder.crt"
    ssl_key => "/etc/logstash/logstash-forwarder.key"
    tags => ["winlogbeat"]
  }
}

filter {
    if "winlogbeat" in [tags] {
#        if [event_id] == 5447 {drop{}} # Так можно убрать мусорные события по ID
        if [event_data][LogonType] {
            ruby { 
                code => "dict = {'0'=>'Системный', '1'=>'Неизвестный', '2'=>'Интерактивный', '3'=>'Сетевой', '4'=>'Пакетный', '5'=>'Как Сервис', '6'=>'Прокси', '7'=>'Снятие блокировки (локально)', '8'=>'Сетевой (открытый текст)', '9'=>'Новая учетная запись', '10'=>'Интерактивный (удаленно)', '11'=>'Интерактивный (из кэша)', '12'=>'Интерактивный (удаленно, из кэша)', '13'=>'Снятие блокировки (из кэша)'}; key = event['event_data']['LogonType']; event['event_data']['LogonType'] = dict[key];"
            }        
        }
        if [beat][hostname] {
            ruby {code => "event['beat']['hostname'] = event['beat']['hostname'].downcase;"}
        }

    }
}

output {
    if "winlogbeat" in [tags] {
        elasticsearch {
             hosts => ["127.0.0.1:9200"]
             index => "winlogbeat-%{+YYYY.MM.dd}"
             document_type => "winlogbeat"
             template => "/etc/logstash/winlogbeat.template-es2x.json"
             template_name => "winlogbeat"
             template_overwrite => true
        }

    }
}

Обращаю внимание на самоподписанный ssl сертификат сервера logstash. Если вы не хотите шифровать трафик, уберите все строки с ssl. Иначе добавьте файл с сертификатом (logstash-forwarder.crt) в каталоги, созданные в шаре на System Center (в оба). Как понятно, файл с секретным ключом там не нужен.
Из приведенного текста видно, что в данном случае Elasticsearch и Logstash находятся на одном сервере. Если у вас иначе, поправьте секцию output.

Теперь надо сделать файл конфигурации winlogbeat.yml. Вот такой:

winlogbeat.event_logs:
  - name: Application
    ignore_older: 72h
  - name: Security
  - name: System


output.logstash:
  # The Logstash hosts
  hosts: ["192.168.1.1:5044"]

  # Optional SSL. By default is off.
  # List of root certificates for HTTPS server verifications
  ssl.certificate_authorities: ["C:\\Program Files\\winlogbeat\\logstash-forwarder.crt"]

Обратите внимание на путь к ssl сертификату. Да, он должен быть такой. Именно туда мы будем копировать содержимое созданных на System Center каталогов. Если вы не будете пользовать ssl закомментируйте эту строку. И конечно не забудьте поменять ip адрес хоста на реальный.

Созданный файл кладем в оба наших фолдера на System Center.

Теперь делаем скрипты для установки и удаления сервиса, вот такие:
install.bat

@echo off
mkdir "C:\Program Files\winlogbeat"
copy *.* "C:\Program Files\winlogbeat" /Y
cd "C:\Program Files\winlogbeat"
PowerShell.exe Set-ExecutionPolicy Unrestricted -Force
PowerShell.exe Unblock-File -Path 'C:\Program Files\winlogbeat\install-service-winlogbeat.ps1'
PowerShell.exe .\install-service-winlogbeat.ps1
PowerShell.exe Set-ExecutionPolicy Restricted -Force
net start winlogbeat

uninstall.bat

@echo off
cd "C:\Program Files\winlogbeat"
PowerShell.exe Set-ExecutionPolicy Unrestricted -Force
PowerShell.exe Unblock-File -Path 'C:\Program Files\winlogbeat\uninstall-service-winlogbeat.ps1'
PowerShell.exe .\uninstall-service-winlogbeat.ps1
PowerShell.exe Set-ExecutionPolicy Restricted -Force
del "C:\Program Files\winlogbeat\winlogbeat.exe"
del "C:\Program Files\winlogbeat\winlogbeat.yml"

Эти файлы тоже нужно поместить в наши каталоги на System Center.
Теперь в каждом каталоге в шаре на System Center у вас должны лежать файлы:

winlogbeat.exe
install-service-winlogbeat.ps1
uninstall-service-winlogbeat.ps1
logstash-forwarder.crt
install.bat
uninstall.bat
winlogbeat.yml

Вот и вся подготовка.
Теперь делаем в консоли System Center два Application winlobeat-x32 и winlogbeat-x64. Источники контента из соответствующих каталогов в нашей шаре, тип установки script, программа установки install.bat, программа удаления uninstall.bat, критерий необходимости установки — наличие файла winlogbeat.yml в каталоге %ProgramFiles%\winlogbeat.
Теперь делаем деплой соответствующих аппликух в коллекции с 64-х и 32-х разрядными windows. И да, тип установки, конечно required и всячески hidden. И не забудьте, когда будете задавать Deployment type, выбрать опцию Download content from distribution point and run locally на странице описания параметров контента.
Ну и маленький кусочек скриншота кибаны, всё не покажу, секрет :).
kibana-01
Кстати, видно что с разных языковых версий события приходят на разных языках. С одной стороны, это не удобно, а с другой стороны, это «чистый» лог.

Реклама

Логи Windows на ELK: Один комментарий

  1. Уведомление: ELK Отслеживание процессов Windows во всей сети | ESGUARDIAN

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход /  Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход /  Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход /  Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход /  Изменить )

Connecting to %s