时区偏移与logstash / redis / ES

时间:2014-05-21 13:59:47

标签: redis elasticsearch logstash

我尝试使用redis和elasticsearch配置logstash。

我的@timestamp字段有问题。

@timestamp的值始终是实际事件时间戳-2小时。

我有一个像这样配置的托运人:

 input{ file {...}}


 filter{

    if [type]=="apachelogs"{

    grok{
            match => [ "message", "%{COMBINEDAPACHELOG}"]
    }
      date {
            locale => "en"
            timezone => "Europe/Brussels"
            match => [ "timestamp", "dd/MMM/yyyy:HH:mm:ss Z" ]
      }
    }

}

output{ redis{...}}

和像这样的logstash-indexer:

   input{ redis {...}}

   output { elasticsearch {...}}

ES中的事件结果如下所示:

 "@timestamp": "2014-05-21T13:29:53.000Z"
 ...
 "timestamp": "21/May/2014:15:29:53 +0200"

因为你可以看到@timestamp总是有2小时的偏移,我无法弄清楚原因。 我尝试过不同的事情,比如改变时区等没有成功。

关于这个的任何想法?

谢谢

2 个答案:

答案 0 :(得分:2)

您可以使用此过滤器更改时区。 改变

  

" @ timestamp":" 2014-04-23T13:40:29.000Z"

  

" @ timestamp":" 2014-04-23T15:40:29.000 + 0200"

尝试使用此过滤器

filter {
    ruby {
        code => "
                event['@timestamp'] = event['@timestamp'].localtime('+02:00')
        "
    }
}

希望这可以帮到你。

答案 1 :(得分:0)

timezone应该有效。 你的结果出了什么问题?以下两个字段中的值表示相同的时间点。

 "@timestamp": "2014-05-21T13:29:53.000Z"
 "timestamp": "21/May/2014:15:29:53 +0200"

其中Z代表+0000。