时区偏移与logstash / redis / ES

我正在尝试使用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小时的偏移,我无法弄清楚原因.
我尝试了不同的事情,比如改变时区等没有成功.

对这一个有什么看法吗?

谢谢

最佳答案 您可以使用此过滤器更改时区.

更改

“@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')
        "
    }
}

希望这可以帮到你.

点赞