每年翻转的logstash时间戳

我们使用logstash从我们的邮件服务器存储/search日志。 今天我注意到,今年(2015年)我们没有任何指数。 快速调查显示,当前的日志被存储为2014.01.05(即同一天,但去年),这些指数被寻找旧指数的cron作业删除。

重新启动logstash固定的东西,所以我假设logstash基于它开始的时间填入年份信息。

我们使用Elasticsearch 1.2.4运行Logstash 1.4.1。 所以不是Elasticsearch的最新版本,但是在1.4.2的更改日志中我没有看到任何相关内容。

日志条目将使用syslog-config以及input行和parsing输出的示例发送到logstash。

有没有更好的解决办法,而不是记得在元旦重新启动Logstash?


input行的例子

Jan 5 15:03:35 cheviot22 exim[15034]: 1Y89Bv-0003uU-DD <= [email protected] H=adudeviis.ncl.ac.uk (campus) [10.8.232.56] P=esmtp S=2548 [email protected] { "_index": "logstash-2014.01.05", "_type": "mails", "_id": "HO0TQs66SA-1QkQBYd9Jag", "_score": null, "_source": { "@version": "1", "@timestamp": "2014-01-05T15:03:35.000Z", "type": "mails", "priority": 22, "timestamp": "Jan 5 15:03:35", "logsource": "cheviot22", "program": "exim", "pid": "15034", "severity": 6, "facility": 2, "facility_label": "mail", "severity_label": "Informational", "msg": "1Y89Bv-0003uU-DD <= [email protected] H=adudeviis.ncl.ac.uk (campus) [10.8.232.56] P=esmtp S=2548 [email protected]", "tags": [ "grokked", "exim_grokked", "dated" ], "xid": "1Y89Bv-0003uU", "exim_rcpt_kv": "[email protected] H=adudeviis.ncl.ac.uk (campus) [10.8.232.56] P=esmtp S=2548 [email protected]", "H": "adudeviis.ncl.ac.uk", "P": "esmtp", "S": "2548", "id": "[email protected]" }, "sort": [ 1388934215000, 1388934215000 ] } 

Logstashconfiguration(无关的位被删除)…

 input { syslog { codec => "plain" debug => false port => 514 type => "mails" } } filter { mutate { remove_field => [ "path", "host" ] } if [type] == "mails" { grok { patterns_dir => [ "/etc/logstash/patterns" ] match => [ "message", "(?<msg>.*)" ] add_tag => [ "grokked" ] break_on_match => true remove_field => [ "message" ] } } date { match => [ "timestamp", "ISO8601", "MMM dd HH:mm:ss", "MMM d HH:mm:ss"] add_tag => [ "dated" ] } } output { elasticsearch { cluster => "logstash" host => "iss-logstash01" flush_size => 1000 index => "logstash-%{+YYYY.MM.dd}" } } 

find了一个指向logstash用户的Google小组(这已经下滑了)。 最近的讨论指向https://logstash.jira.com/browse/LOGSTASH-1744其中(a)证实其他人看起来和我一样,(b)提供了一些可能的解决scheme&#x3002;

选项1是Elasticsearch的补丁(不是标准发行版本),它更新了Logstash当年的想法。

选项2不是从syslog行parsing时间戳,而是依赖于消息到达Logstash的时间。 对于我们来说,这可能是一个可以接受的解决scheme,因为sorting比确切的时间更重要(只要closures)。