Задача собрать логи с windows server с помощью winlogbeat. Качаем актуальную версию winlogbeat https://artifacts.elastic.co/downloads/beats/winlogbeat/winlogbeat-7.9.1-windows-x86_64.zip
Распаковываем на сервер. переименовываем в winlogbeat. Копируем в C:\Program Files .
После этого запускаем установку
cd 'C:\Program Files\Winlogbeat' .\install-service-winlogbeat.ps1
Проверяем что служба установилась
После этого правим конфиг
У меня так
winlogbeat.event_logs: - name: Application ignore_older: 72h - name: System - name: Security processors: - script: lang: javascript id: security file: ${path.home}/module/security/config/winlogbeat-security.js - name: Microsoft-Windows-Sysmon/Operational processors: - script: lang: javascript id: sysmon file: ${path.home}/module/sysmon/config/winlogbeat-sysmon.js - name: Windows PowerShell event_id: 400, 403, 600, 800 processors: - script: lang: javascript id: powershell file: ${path.home}/module/powershell/config/winlogbeat-powershell.js - name: Microsoft-Windows-PowerShell/Operational event_id: 4103, 4104, 4105, 4106 processors: - script: lang: javascript id: powershell file: ${path.home}/module/powershell/config/winlogbeat-powershell.js - name: ForwardedEvents tags: [forwarded] processors: - script: when.equals.winlog.channel: Security lang: javascript id: security file: ${path.home}/module/security/config/winlogbeat-security.js - script: when.equals.winlog.channel: Microsoft-Windows-Sysmon/Operational lang: javascript id: sysmon file: ${path.home}/module/sysmon/config/winlogbeat-sysmon.js - script: when.equals.winlog.channel: Windows PowerShell lang: javascript id: powershell file: ${path.home}/module/powershell/config/winlogbeat-powershell.js - script: when.equals.winlog.channel: Microsoft-Windows-PowerShell/Operational lang: javascript id: powershell file: ${path.home}/module/powershell/config/winlogbeat-powershell.js # ====================== Elasticsearch template settings ======================= setup.template.settings: index.number_of_shards: 1 #index.codec: best_compression #_source.enabled: false # ================================== General =================================== logging.level: info logging.to_files: true logging.files: path: C:/Program Files/Winlogbeat/logs name: winlogbeat keepfiles: 7 setup.kibana: #output.elasticsearch: # Array of hosts to connect to. tags: ["winsrv"] #output.elasticsearch: output.logstash: # Array of hosts to connect to. hosts: ["elkls01:5044", "elk:5044"] loadbalance: true # ================================= Processors ================================= processors: - add_host_metadata: when.not.contains.tags: forwarded - add_cloud_metadata: ~
перезагружаем службу
настройка на самом сервере файл /etc/logstash/conf.d/logstash.conf
GNU nano 4.8 /etc/logstash/conf.d/logstash.conf # Sample Logstash configuration for creating a simple # Beats -> Logstash -> Elasticsearch pipeline. input { beats { port => 5044 } } filter { if "winsrv" in [tags] { elasticsearch { hosts => ["http://elkes01:9200", "http://msk-elkes02:9200", "http://elkes03:9200"] index => "winsrv-%{+YYYY.MM.dd}" } } else { elasticsearch { hosts => ["http://elkes01:9200", "http://msk-elkes02:9200", "http://elkes03:9200"] index => "unknown_messages" } } } output { elasticsearch { hosts => ["http://elkes01:9200", "http://elkes02:9200", "http://elkes03:9200"] index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}" #user => "elastic" #password => "changeme" } }
перезапуск
sudo service logstash restart
После этого идём на kibana и добавляем индекс.
Нажимаем Create index pattern
После этого водим winlog
нажимаем next
После этого жмём create index.
Идём в discovery и там новый индекс наш
В конфигурации я сделал tags что бы легче было фильтровать в kibana