Currently there are a lot of FIlebeat instances in our infrastructure.
All of them are sending tons of logs to a single Logstash endpoint.
Some logs are not in json and come as a text. For example, Postfix logs.
Each log line has a syslog timestamp, which is parsed by grok pattern
and gets converted to a timestamp field on Logstash side.
That timestamp field gets converted to @timestamp by Logstash.
Quite often when there is a heavy load, Logstash queue becomes huge.
A lot of events have syslog timestamp which happened few minutes ago.
We would like to have DateTime.now() in @timestamp field.
Something like - @timestamp is the date when document appeared in ElasticSearch.
Nov 1 04:09:02 my-hostname postfix/cleanup[13509]: 3yRj7y3g8wz36b0: info: header X-MyHeader: 1585
are processed by Logstash automatically without extra configuration.
I think that Logstash uses some default grok patterns like SYSLOGBASE2 to extract timestamp and replace @timestamp with extracted value. So, I don't have any custom date filters.
Yes, but what inputs do you use? I'm asking because the syslog input has grok and date filters built into it so if that's what you use you'll never get a chance to save the original @timestamp.
Apache, Apache Lucene, Apache Hadoop, Hadoop, HDFS and the yellow elephant
logo are trademarks of the
Apache Software Foundation
in the United States and/or other countries.