背景:
logstash版本:2.4.9
因爲logstash在獲取時區的時候,默認獲取的是UTC默認時間,同時elasticsearch在建立索引的時候,統一使用UTC時間,所以實際上在建立索引的時候,會將今天實際時間的前8個小時的日誌文件輸出至昨天的索引中,由於中國使用的爲東8時區,源數據和實際建立的索引數據會相差8個小時。
對於頁面查看,ELK的解決方案是在kibana上,讀取瀏覽器的當前時區,而後在頁面上進行轉換,顯示時間內容。
一、修改string_interpolation.rb文件
vim /data/logstash/vendor/bundle/jruby/1.9/gems/logstash-core-event-2.4.1-java/lib/logstash/string_interpolation.rb 將.withZone(org.joda.time.DateTimeZone::UTC)修改成.withZone(org.joda.time.DateTimeZone.getDefault())
二、修改timestamp的配置文件
vim /data/logstash/vendor/bundle/jruby/1.9/gems/logstash-core-event-2.4.1-java/lib/logstash/timestamp.rb 將@time = time.utc修改成@time = time