更改logstash 1.4.1中的时间戳

时间:2014-05-30 15:07:57

标签: timestamp logstash

我正在使用带有以下配置的logstash 1.4.1:

input {
    stdin {    
    }
}    
output {
    stdout {}
}

当我启动代理然后键入" hello"在控制台中,我明白了:

2014-05-30T15:02:24.301 +0000 HOSTNAME hello

我想在时间戳上添加2个小时(我是法国用户),所以得到这个:

2014-05-30T17:02:24.301 +0000 HOSTNAME hello

在旧版本中,我将此过滤器添加到我的配置中:

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

并且一切运行良好,但我认为自从更新到1.4.1后,过滤器没有任何影响。

是否有人遇到同样的问题或找到解决方案?

2 个答案:

答案 0 :(得分:1)

我在版本1.4.1中对此过滤器没有任何问题 这是我的配置:

input {
    stdin {}
}

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

output {
    stdout {
         codec => rubydebug
    }
}

更改时间戳:

"@timestamp" => "2014-06-04T02:23:58.719Z"

对此:

"@timestamp" => "2014-06-04T04:24:29.718+02:00"

<强>更新

您必须在输出中添加codec => rubydebug。如果它不添加codec => rubydebug

,可能是logstash输出错误

答案 1 :(得分:0)

在1.5.0版中,我们可以使用event.timestamp更改时间戳。这是我的配置:

    ruby {
        code => "event['@timestamp'] = event.timestamp.time.localtime.strftime('%Y.%m.%d')"
    }