2016-12-06 97 views
0

我有兩個來自不同源的日誌,我通過logstash將其拖入elasticsearch中,然後使用kibana進行可視化。我的問題是,每個日誌的開始時間應該是相同的,但是其中一個日誌會在30分鐘前錯誤地記錄條目。如何在logstash或kibana中同步日誌時間

如何糾正這個時間問題,有沒有可以從時間減去30分鐘的logstash過濾器,或者我可以在Kibana中添加一些高級查詢?

我更喜歡更新logstash中的日誌條目。

+1

哪裏日期從何而來?從文件解析或僅由logstash添加的@timestamp。你使用一個或兩個logstash?如果兩個,他們在同一臺機器上? – baudsp

+0

@baudsp日期來自日誌文件本身。我只是像批處理作業一樣在每個日誌文件上運行一個logstash,所以我沒有連續運行logstash。 – binarylegit

+0

我試圖找到一種方法來更改值@timestamp字段與紅寶石過濾器,但沒有成功,所以我試圖看看問題是否來自您的設置。 – baudsp

回答

1

理想情況下,您可能需要修復日誌,以便在文件中列出正確的時間。如果您的問題存在於數據中,那麼修復它就比較容易,而不是在下游使用額外規則進行摔跤。

但是,如果需要,您可以操縱Logstash時間戳。

每個事件的@timestamp字段與Ruby的Time類有很多相同之處。特別是,它實現了相同的+-運營商允許您添加或減去一定的秒數:

filter { 
    ruby { 
     code => " 
       event['@timestamp'] = LogStash::Timestamp.new(event['@timestamp'] + (30 * 60)) 
     " 
    } 
} 
+0

不適用於Logstash 2.2:發生Ruby異常:'@timestamp'字段必須是(LogStash :: Timestamp,不是時間' – baudsp

+0

哎呦。我不喜歡'ruby'過濾器的一點是它們是在Logstash版本之間往往會變得脆弱我已經編輯了代碼片段以便它能在2.2 – rutter

+0

中工作我們不知道在這個問題中使用了哪個版本,所以你以前的答案也可以適用。無論如何,你的答案是比我的更好,所以我會刪除它,並且我學到了一些東西,謝謝。 – baudsp

相關問題