背景:
logstash版本:2.4.9
由於logstash在獲取時區的時候,默認獲取的是UTC默認時間,同時elasticsearch在創建索引的時候,統一使用UTC時間,因此實際上在創建索引的時候,會將今天實際時間的前8個小時的日志文件輸出至昨天的索引中,因為中國使用的為東8時區,源數據和實際創建的索引數據會相差8個小時。
對於頁面查看,ELK的解決方案是在kibana上,讀取瀏覽器的當前時區,然后在頁面上進行轉換,顯示時間內容。
1、修改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())
2、修改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