2016-09-27 32 views
0

我解析了一個以前在我的本地主機中加載的日誌,我想將每一行中的事件日期字段作爲時間戳,但kibana只能將它作爲一個字符串獲取。如何在logstash上添加新的時間戳字段?

實施例: 我有這樣的事件

2016/09/27 13:33:49.701 GMT(09/27 15:33:49 +0200) INFO  BILLINGGW ConvergysDelegate.getCustomer(): Calling getCustomerFromCache: 0001:606523 

它被裝載在2016年9月27日,16:04:53.222,但LOGDATE字段(事件日期)是:2016/09/27 13:33:49.701

在logstash過濾我定義:

(?<logdate>%{NUMBER:year}/%{NUMBER:month}/%{NUMBER:day} %{HOUR:hday}:%{MINUTE:min}:%{SECOND:sec}) %{GREEDYDATA:result} 

我也被證明有:

(?<logdate>%{YEAR:year}/%{MONTHNUM:month}/%{MONTHDAY:day} %{HOUR:hday}:%{MINUTE:min}:%{SECOND:sec}) %{GREEDYDATA:result} 

而且kibana像串讀LOGDATE。我怎麼能得到這個kibana可以讀它作爲時間戳?

我只能用日期證明:

(?<logdate>%{NUMBER:year}/%{NUMBER:month}/%{NUMBER:day}) 

和Kibana解釋得當像時間戳,但問題是如何正確的小時,​​分​​鍾和秒添加到LOGDATE領域。

任何人都可以幫助我嗎?

此致敬禮。

回答

0

您必須使用date filter從字符串轉換爲時間戳。

date { 
    match => [ "logdate", "yyyy/MM/dd HH:mm:ss"] 
} 

這將嘗試與此日期模式yyyy/MM/dd HH:mm:ss解析logdate領域,如果成功,將結果替換@timestamp領域。您可以使用target選項爲解析日期指定另一個字段。

+0

Thanks @baudsp!這是我解決方案的一部分。我需要爲數據過濾器添加更多行:** locale =>「ISO8601」**和** target =>「mytimestamp」**。 – ELosada

相關問題