Yes your correct, but my template should be writing the logs to a file. So I guess what I should have said is that omelasticsearch sends the logs to ES while rsyslog "writes" the logs to a file. Would that be the better terminology?
As far as a omfile module are you saying that... module(load="builtin:omfile" FileCreateMode="0644" DirCreateMode="0700" FileOwner="syslog" ZipLevel="2") *.* action(type="omfile" File="/var/log/remote/%HOSTNAME%/%$YEAR%/%$MONTH%-%$DAY%.log") Would be better than doing... $template RemoteHost,"/var/log/remote/%HOSTNAME%/%$YEAR%/%$MONTH%-%$DAY%.log" *.* ?RemoteHost Does that also recreate the file each day? Meaning....Day1 logs are written and compressed. Then day2 new file is created and compressed and so on... -----Original Message----- From: [email protected] [mailto:[email protected]] On Behalf Of David Lang Sent: Thursday, May 08, 2014 2:46 PM To: rsyslog-users Subject: Re: [rsyslog] Rsyslog w/ logstash-elasticsearch-kibana server On Thu, 8 May 2014, Josh Bitto wrote: > I wanted to thank everyone that gave their input into this question. It > helped out tremendously. > > So I'm still in the test phase of creating a central log server, but I think > I've landed what my final setup is going to be. I'm going give a rundown of > what that is and ask to see if I might have potential problems. > > Rsyslog->Elasticsearch->Kibana > > The rsyslog.conf is pretty much the default file that comes with CentOS > repository with the exception of adding the following: > > ################################### > > template(name="logstash-index" > type="list") { > constant(value="logstash-") > property(name="timereported" dateFormat="rfc3339" position.from="1" > position.to="4") > constant(value=".") > property(name="timereported" dateFormat="rfc3339" position.from="6" > position.to="7") > constant(value=".") > property(name="timereported" dateFormat="rfc3339" position.from="9" > position.to="10") } > > # this is for formatting our syslog in JSON with @timestamp > template(name="plain-syslog" > type="list") { > constant(value="{") > constant(value="\"@timestamp\":\"") property(name="timereported" > dateFormat="rfc3339") > constant(value="\",\"host\":\"") property(name="hostname") > constant(value="\",\"severity\":\"") > property(name="syslogseverity-text") > constant(value="\",\"facility\":\"") > property(name="syslogfacility-text") > constant(value="\",\"tag\":\"") property(name="syslogtag" > format="json") > constant(value="\",\"message\":\"") property(name="msg" format="json") > constant(value="\"}") > } > > # this is where we actually send the logs to Elasticsearch > (localhost:9200 by default) action(type="omelasticsearch" > template="plain-syslog" > searchIndex="logstash-index" > dynSearchIndex="on") > > $ModLoad imfile # Load the imfile input module > > # Watch /var/log/httpd/access_log > $InputFileName /var/log/httpd/access_log $InputFileTag apache-access: > $InputFileStateFile state-apache-access $InputRunFileMonitor > > # Watch /var/log/httpd/error_log > $InputFileName /var/log/httpd/error_log $InputFileTag apache-error: > $InputFileStateFile state-apache-error $InputRunFileMonitor > > # Watch /var/ossec/logs/alerts/alerts.log $InputFileName > /var/ossec/logs/alerts/alerts.log $InputFileTag ossec-alert: > $InputFileStateFile state-ossec-alert > $InputRunFileMonitor > > > $template RemoteHost,"/var/log/remote/%HOSTNAME%/%$YEAR%/%$MONTH%-%$DAY%.log" > > *.* ?RemoteHost > > > if $programname == 'snmpd' and ( $msg contains 'Connection from UDP' > or $msg contains 'Received SNMP packet(s) from UDP' ) then ~ > > ############################################################# > > So basically I have rsyslog writing incoming logs to a file and then they are > being sent for ES and kibana. Eventually I will have a logrotation done so > that they can be rotated and compressed to save space. > > Thanks guys! a couple nits omelasticsearch isn't writing them to a file (your description of write them to a file then send them is misleading) take a look at the options for omfile that can compress the output in place. It means that the logs are buffered a little bit more, and things can get a bit interesting if rsyslog crashes in the middle of a write, but it avoids the need to play the rotation game. David Lang _______________________________________________ rsyslog mailing list http://lists.adiscon.net/mailman/listinfo/rsyslog http://www.rsyslog.com/professional-services/ What's up with rsyslog? Follow https://twitter.com/rgerhards NOTE WELL: This is a PUBLIC mailing list, posts are ARCHIVED by a myriad of sites beyond our control. PLEASE UNSUBSCRIBE and DO NOT POST if you DON'T LIKE THAT. _______________________________________________ rsyslog mailing list http://lists.adiscon.net/mailman/listinfo/rsyslog http://www.rsyslog.com/professional-services/ What's up with rsyslog? Follow https://twitter.com/rgerhards NOTE WELL: This is a PUBLIC mailing list, posts are ARCHIVED by a myriad of sites beyond our control. PLEASE UNSUBSCRIBE and DO NOT POST if you DON'T LIKE THAT.

