본문 바로가기

Bigdata/logstash

[logstash] timestamp timezone 변경

logstash에서 @timestamp의 디폴트 타임존은 UTC 0시이다.

Elasticsearch에 넣고 Kibana를 이용해서 분석을 한다면 타임존을 변경해서 분석이 가능하지만

kafka 혹시 다른곳으로 데이터를 출력할 경우 원하는 시간대로 타임존을 변경해야만 하는 경우가 있다.

기본적으로 logstash에서는 timestamp의 타임존을 변경할 수 없다.

하지만 아래와 같이 ruby 플러그인을 이용하면 타임존을 변경한 날짜를 변수에 저장할 수 있다.

아래는 로컬타임(한국시간)으로 타임존을 변경하고 index_day라는 변수에 할당하고 있다.

filter {
    ruby {
        code => "event.set('index_day', event.timestamp.time.localtime.strftime('%Y-%m-%d'))"
    }
}