- 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}"
}
}
참고자료