LogStash:如何在保持相同时间格式的同时制作@timestamp字段的副本?

ale*_*ato 6 logstash

我想创建一个@timestamp字段的副本,使其使用相同的格式@timestamp.

我尝试过以下方法:

mutate
{
    add_field => ["read_time", "%{@timestamp}"]
}
Run Code Online (Sandbox Code Playgroud)

但同时,@timestamp格式为:2014-08-01T18:34:46.824Z,

read_time是这种格式2014-08-01 18:34:46.824 UTC

这是一个问题,因为Kibana不理解直方图的"UTC"格式.

有没有办法使用日期过滤器来做到这一点?

Ben*_*Lim 11

Kibana无法理解因为该read_time字段是字符串,而不是时间戳!您可以使用ruby过滤器来执行您需要的操作.只需将@timestamp复制到一个新字段read_time,字段时间是时间戳,而不是字符串.该add_field是添加一个新的领域与字符串类型!

这是我的配置:

input {
    stdin{}
}

filter {
    ruby {
            code => "event['read_time'] = event['@timestamp']"
    }
    mutate
    {
        add_field => ["read_time_string", "%{@timestamp}"]
    }
}

output {
    stdout {
        codec => "rubydebug"
    }
}
Run Code Online (Sandbox Code Playgroud)

你可以试试看输出,输出是:

{
   "message" => "3243242",
  "@version" => "1",
"@timestamp" => "2014-08-08T01:09:49.647Z",
      "host" => "BENLIM",
 "read_time" => "2014-08-08T01:09:49.647Z",
"read_time_string" => "2014-08-08 01:09:49 UTC"
}
Run Code Online (Sandbox Code Playgroud)

希望这可以帮到你.