본 포스팅은 2023년 04월 30일을 기준으로 작성되었습니다.
Kibana와 Elasticsearch는 타임존(Timezone) 기준이 다릅니다.
Kibana(Data view)의 경우, 기본적으로 브라우저 설정을 따라 가고, Elasticsearch(Index)는 UTC+0을 기준으로 합니다.
그래서 Kibana에서 Data view로 검색한 결과와 Elasticsearch에서 Index에 쿼리를 요청하여 얻은 결과값이 다름을 보실 수 있습니다.
*Kibana내에서도 간혹 UTC+0으로 작동하는 기능들이 있습니다. (예, Snapshot and Restore)
< Kibana > : Data view
날짜 범위: 2022-10-12 00:00:00 ~ 2022-10-13 00:00:00
집계(필터): status_code: 200
결과값: Kibana(Data view) - 703,297
< Elasticsearch > : Index
날짜 범위: 2022-10-12 00:00:00 ~ 2022-10-13 00:00:00
집계(필터): status_code: 200
결과값: Elasticsearch(Index) - 666,186
정확하게 표현하면 Kibana (Data view)에서 조회한 값은:
날짜 범위: 2022-10-12T00:00:00+09:00 ~ 2022-10-13T00:00:00+09:00
집계(필터): status_code: 200
Elasticsearch (Index)에서 조회한 값은:
날짜 범위: 2022-10-12T00:00:00+00:00 ~ 2022-10-13T00:00:00+00:00
집계(필터): status_code: 200
다른 범위를 조회 했으니 결과값이 다를 수 밖에 없었습니다.
같은 값이 나오게 하기 위해서는 Dev tool(Elasticsearch Index를)에서 조회할 때 날짜에 +09:00을 붙여주셔야 합니다.
< Elasticsearch > : Index
날짜 범위: 2022-10-12 00:00:00+09:00 ~ 2022-10-13 00:00:00+09:00
집계(필터): status_code: 200
결과값: Elasticsearch(Index) - 703,297
✔ 알쓸엘TIP!
가장 간단한 방법은 Kibana Discover에서 조회한 후, 상단에 Inspect > Request 에서 쿼리를 직접 비교해보시면 됩니다.
< Kibana:Snapshot and Restore > : policy 화면
< Kibana:Snapshot and Restore > : policy 생성 완료된 화면
위에 두 이미지를 보면, 분명 Kibana 설정에서는 매일 00시 00분에 스냅샷을 찍도록 설정했지만, 다음 스냅샷 일정은 09시 00분에 찍히도록 되어 있습니다. Reqeust 쿼리를 보시면 아래와 같습니다.
PUT _slm/policy/test-snapshot
{
"name": "test",
"schedule": "0 0 0 * * ?",
"repository": "found-snapshots",
"config": {
"include_global_state": true,
"feature_states": []
}
}
작은 에러? 버그?라고 볼 수 있지만, 결국 위와 같은 형식으로 쿼리를 요청하기 때문에 elasticsearch가 기본적으로 사용하는 UTC+0을 기준으로 시간을 조정해 주어야 합니다.
< Kibana:Snapshot and Restore > : policy 화면
< Kibana:Snapshot and Restore > : policy 생성 완료된 화면
✔ 시간대의 표기법
시간대를 표기할 때에는 Z또는 +/- 기호를 사용합니다.
UTC 시간대에서는 시각 뒤에 Z를 붙입니다.
예) 2022-10-13T09:00Z 또는 20221013T0900Z : UTC 시간대에서의 2022년 10월 13일 오전 9시
UTC 외의 시간대에서는 시각 뒤에 +- hh:mm, +- hhmm, +- hh 를 덧붙여 사용합니다.
예) 2022-10-13T09:00:00+09:00 : UTC+9 시간대에서의 2022년 10월 13일 오전 9시
+가 붙으면, UTC의 시각보다 더 "빠르다"다는 의미다. 반대로 -는 느리다는 것을 의미합니다.
예를 들어, 2022-10-13T09:00+09:00 는 2022-10-13T00:00Z 와 동일합니다.
즉, UTC+9 시간대에서는 오전 9시이지만, UTC 시간대에서는 오전 0시입니다.