[Logstash] Logstash 일자 Rolling

double-oh·2021년 8월 8일
0
  • logstash에서 index를 생성할때 날짜처리는 일반적으로 다음과 같습니다.
output {
  elasticsearch {
    hosts => ["xxx.xxx.xxx.xxx"]
    index => "indexName.%{+YYMMDD}"
  }
}
  • 이렇게 처리된 날짜는 모두 UTC 날짜가 생성됩니다.
  • 모든 날짜 처리를 UTC로 한다면 문제 없겠지만(구글링 결과 대부분 UTC로 처리하고 사용하는 곳에서 timezone 처리를 하는것을 추천) 다른 로직에서 timezone을 적용하여 처리하는 부분이 있다면 이슈가 발생할 수 있습니다.
  • 이 경우, 다음과 같은 filter를 사용하여 처리하면 시스템에 설정된 timezone을 따라 날짜를 설정할 수 있습니다.
filter {
  ruby {
        init => "require 'time'"
        code => "event.set('indexDate', Time.now.utc.getlocal.strftime('%Y%m%d'))"
    }
}

output {
  elasticsearch {
    hosts => ["xxx.xxx.xxx.xxx"]
    index => "indexName.%{indexDate}"
  }
}

참고자료

profile
Yes, Code Wins Arguments!!

0개의 댓글