This guide walks you through setting up Winlogbeat on a Windows 10 VM to collect Windows Event Logs and send them to your Logstash + Elasticsearch setup.
✅ Tested with Winlogbeat 9.0.0 and ELK Stack 8.17.4
Before configuring Winlogbeat, create a dedicated Windows 10 virtual machine using VirtualBox, VMware, or any hypervisor.
🔹 Minimum requirements:
.zip
version of Winlogbeat.winlogbeat-9.0.0-windows-x86_64.zip
) to:C:\Users\<YourName>\Desktop\winlogbeat-9.0.0-windows-x86_64
winlogbeat.yml
Edit the file winlogbeat.yml
:
output.logstash:
hosts: ["192.168.1.10:5044"]
📌 Replace
192.168.1.10
with the IP address of your Ubuntu/Logstash VM.
# output.elasticsearch:
# hosts: ["localhost:9200"]
Open PowerShell and navigate to the extracted folder:
.\winlogbeat.exe test output
✅ Output should show:
connection... OK
talk to server... OK
⚠️ Warning about TLS can be ignored for non-secure lab setups.
Run Winlogbeat in real-time to confirm event log transmission:
.\winlogbeat.exe -e
📤 Logs will begin to flow to Logstash if everything is working.
logstash.conf
on ELK ServerEnsure your Logstash config can accept Winlogbeat logs.
input {
beats {
port => 5044
}
}
filter {
if "winlogbeat" in [agent][name] {
mutate {
add_field => { "source_type" => "windows_event_log" }
}
}
}
output {
if "winlogbeat" in [agent][name] {
elasticsearch {
hosts => ["https://localhost:9200"]
user => "elastic"
password => "your_password"
ssl_enabled => true
ssl_verification_mode => "full"
ssl_certificate_authorities => ["/path/to/http_ca.crt"]
index => "winlogbeat-events"
}
stdout { codec => rubydebug }
}
}
🔁 Restart Logstash to apply changes.
Pattern: winlogbeat-events
All referenced images should be stored in:
/images/05-integrate-winlogbeat