Winlogbeat not outputting to Logstash


I've read several posts here regarding getting Winlogbeat to send logs to an ELK server. However, these haven't helped me get it working. As I usually do, I probably am missing something simple.

I already have Filebeat, Topbeat, and Packetbeat working, so I'm fairly certain that my ELK configs are correct; I can post these if it would help with a solution. My winlogbeat.yml file looks like this:

  registry_file: C:/ProgramData/winlogbeat/.winlogbeat.yml
    - name: Application
    - name: Security
    - name: System
    hosts: [""]
      # Template name. By default the template name is winlogbeat.
      #name: "winlogbeat"
      # Path to template file
      #path: "winlogbeat.template.json"
      # Overwrite existing template
      #overwrite: false
      certificate_authorities: ["C:/Program Files/Winlogbeat/logstash-forwarder.crt"]
  to_files: true
    path: C:/ProgramData/winlogbeat/Logs
  level: info

I read in googled post that someone had copied winlogbeat.template.json to the ELK server, and initialized it with "curl -XPOST '' -d @/home/me/winlogbeat.template.json", and that that made his setup work. I tried that, but no joy.

Help would be appreciated.

What version of Winlogbeat are you using?

Have you following the Getting Started guide for that version? 1.2 Getting Started or [5.0 Getting Started] ( depending on version.

It looks like you are using Logstash and those template options you set under the logstash output and not supported. Those are for the elasticsearch output only. You must manually install the index template to your Elasticsearch server (instructions are included in the Getting Started guide).


I'm using Winlogbeat-1.2.3.

I did follow the directions in the Getting Started Guide, with the exception of loading the template (I think). Forgive me, but I'm not seeing how to manually install the index template to my Elasticsearch server in the Guide.


Well, I guess I've done something partly right, as I'm now receiving logs. However, the information is rather worthless, as follows:

"_index": "logstash-2016.08.08",
"_type": "eventlog",
"_id": "AVZrOnCmusKqwnAhAmft",
"score": null,
"source": {
"message": "ڟ.f\xCDU\x88ë\u0019\vF@\xAE\xC7M\xEB
"tags": [
"@version": "1",
"@timestamp": "2016-08-08T17:36:46.788Z",
"host": "",
"port": 55281,
"type": "eventlog"
"fields": {
"@timestamp": [
"sort": [

I note the "_jsonparsefailure" tag in the output. Is that due to not installing the index template?

No problem, here's the location. Step 4: Loading the Index Template in Elasticsearch | Winlogbeat Reference [1.2] | Elastic

No, that sounds more like a Logstash configuration issue. What's your Logstash config look like? Here's our recommended minimal configuration for use with Beats. Installing Logstash (Optional) | Beats Platform Reference [1.2] | Elastic


I did the manual install of the index. On the sending side, of course.

Here's the relevant part of my configs:

input {
  beats {
    port => 5044
    type => "log"
    tags => ['log']
    ssl => true
    ssl_certificate => "/etc/pki/tls/certs/logstash-forwarder.crt"
    ssl_key => "/etc/pki/tls/private/logstash-forwarder.key"

output {
  if [@metadata][beat] {
    elasticsearch {
      hosts => [""]
      manage_template => false
      index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}"
      document_type => "%{[@metadata][type]}"
  } else {
    elasticsearch { hosts => [""] }
    stdout { codec => rubydebug }


How about the parts of the config that are not relevant? I suspect there might be some invalid conditionals in your filters. The type => "log" does nothing in this context because type is already set by Winlogbeat. The type on those events will be either eventlogging or wineventlog depending on the Windows operating system.

Not sure where I might need to make the change. I've posted my configs here: If it's not too big a pita for you to take a look, that would be greatly appreciated. I'm sure your eyes will roll when you see them :slight_smile: .

Based on the tags in the event and the configuration you posted to pastebin, I'd say you are sending the Winlogbeat data to the Logstash tcp input and not the beats input. Please double check that the port number you are using in your Winlogbeat config is the port number assigned to the Logstash beats input.

Yes, you're right, a mis-config. I have specified port 5044 in winlogbeat.yml, which is the beats port specified in the Logstash beats input. Now, I'm not receiving any logs again. Huh?

This morning, I installed Topbeat on a Win2k8 server, with the same results - I get no output in ELK (using the Logstash output). As the Windows platform makes up 40% of our infrastructure, I'd really like to get this working, so your help would be greatly appreciated.

Well, solved, sort of (at least where Topbeat is concerned). On my Linux servers, I have TLS turned on in Topbeat.yml, as follows:

   certificate_authorities: ["/etc/pki/tls/certs/logstash-forwarder.crt"]

If I set up something similar in Windows, as in:

  certificate_authorities: ["C:\Program Files\Topbeat\logstash-forwarder.crt"]

the Topbeat service errors, and won't start. However, if I comment out "certificate_authorities", and instead set "insecure: true", then the service starts, and I get output in ELK. Does TLS have to be set up differently to work with Windows, or is it not supported?

Try using single quotes around your Windows paths. Otherwise you would need to escape the \ characters to be correct.

Another option for Windows is to just use forward slashes in your paths. They are automatically converted to backslashes.

Thanks, Andrew. Single quotes did the trick.

This topic was automatically closed 21 days after the last reply. New replies are no longer allowed.