<div dir="ltr"><div class="gmail_extra">Hi All, </div><div class="gmail_extra"><br></div><div class="gmail_extra">Just wanted to report my progress on this subject, and say thanks for your input.   </div><div class="gmail_extra"><br></div><div class="gmail_extra"> I'm pretty happy with this setup so far I'll try to keep it short but wanted to share. </div><div class="gmail_extra"><br></div><div class="gmail_extra"><b>tl;dnr</b></div><div class="gmail_extra">HOWTO send Windows log data through syslog-ng and get it perfectly parsed in splunk and elasticsearch. </div><div class="gmail_extra"><br></div><div class="gmail_extra"><b><u>Purpose</u></b>:  </div><div class="gmail_extra">Funnel Windows events from enterprise or dmz zones through an remote aggregation relay into syslog-ng, allowing syslog-ng to replicate and broker log data based on business needs. </div><div class="gmail_extra"><br></div><div class="gmail_extra"><u><b>Components</b></u>: </div><div class="gmail_extra"><b>Beats</b>- Winlogbeat is one of the beats agents by Elastic.co (Elasticsearch) that run on windows hosts to offload events to Logstash in this case.</div><div class="gmail_extra"><b>Logstash</b>: Like beats it is able to take plugin based input and convert it to a plugin based output. I use it like a syslog relay but for compressed json streams.</div><div class="gmail_extra"><b>syslog-ng:</b> Primary data aggregation and rule based distribution to SPLUNK,ES and Archive file.   </div><div class="gmail_extra"><br></div><div class="gmail_extra">Beats support plugin based outputs, the primary two are es and logstash. This solution uses a logstash instance running on the same VM as my rsyslog relay. The output from winlogbeat, running on all windows servers, is a compressed json data stream to its designated logstash relay IP:PORT.  </div><div class="gmail_extra"><br></div><div class="gmail_extra">This looks like this </div><div class="gmail_extra">winlogbeat</div><div class="gmail_extra">winlogbeat</div><div class="gmail_extra">winlogbeat ---> TCP:5044 --> Logstash --> TCP:9150 -->  syslog-ng   <br></div><div class="gmail_extra">winlogbeat</div><div class="gmail_extra">winlogbeat </div><div class="gmail_extra"><br></div><div class="gmail_extra"><div class="gmail_extra">Systems local to the syslog-ng server also go through a logstash hop. </div><div class="gmail_extra">Logstash ads a single aggregator tag to each json message and can also take rule based actions like VictorOps, or massage data inline. </div><div class="gmail_extra"><br></div><div class="gmail_extra"><div class="gmail_extra">syslog-ng then directs a copy of the json stream to a splunk forwarder, archive file, elasticsearch and any other output supported by Balabit. <br></div><div class="gmail_extra"><br></div><div class="gmail_extra"><b>Advantage</b>: I can write rules to tier my data to best of class or lower cost data analytic solutions or even new ones with a syslog-ng.  </div><div class="gmail_extra"><b><br></b></div><div class="gmail_extra"><b>sylog-ng.conf </b></div><div class="gmail_extra"><div># This listens for data from logstash output. </div></div><div>source s_BEATS          {network(port(9150) log-msg-size(65536) flags(no-parse));}; </div><div><br></div><div># Define the output to splunkforwarder.  </div><div>destination d_splunk_BEAT  {network("splunkforwarderhost" </div><div><div>        template("$(format-json --scope nv-pairs -p @timestamp=${ISODATE} -x MESSAGE)\n") port(5140));}; </div></div><div><br></div><div># Send a copy to SPLUNK or filter f_splunk_beat </div><div>log { source(s_BEATS);  parser {json-parser();};  destination(d_splunk_BEAT); };<br></div><div><br></div><div><br></div></div><div class="gmail_extra"><b>logstash beats-pipeline.conf output to syslog-ng</b> </div><div class="gmail_extra"><div class="gmail_extra">output {</div><div class="gmail_extra">  tcp {</div><div class="gmail_extra">    host => "syslog-ng host"</div><div class="gmail_extra">    port => "9150"</div><div class="gmail_extra">    mode => "client"</div><div class="gmail_extra">    codec => "json_lines"</div><div class="gmail_extra">  }</div><div class="gmail_extra">}<br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div></div></div><div class="gmail_extra"> </div></div>