如何基于logstash配置中的时间戳在elasticsearch中索引日志?

问题描述:

我有一个日志文件,并希望根据时间戳(例如gt> 24th oct)将日志索引到elasticsearch。我怎样才能为此配置logstash?由于ignore_older字段是用于多个文件,因此我无法使用它。如何基于logstash配置中的时间戳在elasticsearch中索引日志?

+0

你能解释为什么ignore_older不适合你吗?使用路径和排除选项,您可以选择正确的文件 – baudsp

+0

是的,但我只有一个文件,所以想要针对日志中的日期筛选特定文件上的日志。 –

有几种方法可以完成这样的事情。最简单的方法取决于你的日期如何表示。例如,如果你在文件中的日期是在YYYY-MM-DD格式,你可以做一个字符串比较是这样的:

if ([timestamp] < '2015-01-01') { 
      drop {} 
    } 

如果不是的话,最好的办法是增加一个新的领域与@timestamp作为一个字符串。请注意,它将在格林威治标准时间

mutate { 
      add_field => [ "mydate", "%{@timestamp}"] 
    } 
    if ([mydate] < '2015-01-01') { 
      drop {} 
    } 
    mutate { 
      remove_field => ["mydate"] 
    } 
+0

是的这适用于格式YYYY-MM-dd,但我的日期格式是[Tue Nov 8 11:47:28 2016],所以如何处理字符串格式的日期和过滤日志。 –

+0

使用日期过滤器解析日期,然后使用上面的@timestamp方法 – Alcanzar