logstash 8시간 시간대 문제

1599 단어
유인: 주요 원인은logstash 밑바닥에서 추출한timestamp가 직접 획득한 서버의 시스템 시간(대부분의 경우 GMT 시간이나 UTC 시간으로 직접 획득)이기 때문이다. 그러면 동팔구에 있는 우리에게 이 시간이 8시간 동안 줄어드는 문제 해결 방법이 나타날 수 있다. 첫째, 서버의 시스템 시간대를 직접 수정하는 것이다. 그러나 이런 방법은 때때로 반드시 작용하지 않는다.서버 자체가 CST 시간대를 사용할 수 있기 때문에 이 logstash는 GMT 시간이나 UTC 시간에서 얻을 수 있습니다. 본인이 직접 측정한 결과 Linux 환경이 비교적 유효합니다. 2. logstash 설정에 추가합니다.
filter {
        ruby {# 'timestamp'[ ], logstash 8 , 
                code => "event.set('timestamp', event.get('@timestamp').time.localtime + 8*3600)"
        }
        ruby {# @timestamp
                code => "event.set('@timestamp',event.get('timestamp'))"
        }
        mutate {# 
                remove_field => ["timestamp"]
        }
 
    }

이 방식은 윈도우에 키바나를 맞추는 데 문제가 있을 수 있습니다. 왜냐하면 윈도우 자체에서 당신의 시간은 UTC+8을 사용하기 때문입니다. 그러나logstash는 이것을 사용하면 UTC 시간을 @timestamp의 시간으로 사용하지만, 당신의 키바나가 윈도우에 있는 기본 설정은 브라우저[즉utc+8]를 사용하기 때문에 키바나 위에 있는table의 @timestamp 필드가 당신의 logstash보다 당신의 _를 쓰게 됩니다.소스의 @timestamp 필드가 8시간 이상 남았습니다. 이것은 키바나의 기본 시간대만 수정하면 됩니다.이 문제는 Linux 환경에서 존재하지 않는 세 가지입니다. 로그스타쉬 원본 설정을 직접 수정합니다. 이 방법은 이전 버전에서만 사용했습니다.
 (1.5 ):
WithZone (org. Joda. Time. DateTimeZone: : UTC)
 :
WithZone (org. Joda. Time. DateTimeZone.getDefault ())

1.5 ( , ):
 :/vendor/bundle/jruby/1.9/gems/logstash-core-(version)-java/lib/logstash/event.rb
/logstash/vendor/bundle/jruby/1.9/gems/logstash-core-2.1.0-java/lib/logstash/timestamp.rb
57 
UTC = org.joda.time.DateTimeZone.forID(“UTC”)
 :
UTC = org.joda.time.DateTimeZone.getDefault(:)

좋은 웹페이지 즐겨찾기