2015-11-03 81 views

回答

0

可以使用Ruby插件做轉換。下面是示例配置

input { 
     stdin { 
     } 
} 

filter { 
     ruby { 
       code => " 
         # yyyy-MM-dd HH:mm:ss 
         event['parseTime'] = Time.parse(event['message']).to_i 

       " 
     } 
} 
output { 
    stdout{codec => "rubydebug"} 
} 

樣品輸入:

2015-11-03 15:00:11 

樣本輸出:

{ 
     "message" => "2015-11-03 15:00:11", 
     "@version" => "1", 
    "@timestamp" => "2015-11-03T08:31:27.419Z", 
      "host" => "BEN_LIM", 
    "parseTime" => 1446534011 
} 

parseTime字段是時間戳格式。

+1

最後,如果你的時間需要精確微秒,在紅寶石插件,你應該使用(Time.parse(事件[ '消息'])。to_f).floor,感謝@Ben林anwser, –

1

日期{}濾波器使用兩個參數:包含日期字符串字段,另一個指定格式字符串。默認輸出是覆蓋@timestamp字段,這是elasticsearch(和kibana)使用的默認文檔日期。

通過將其轉換爲日期,你做的所有魔法elasticsearch日期型的東西與它(就像它比較「現在」,等等)。