728x90
_cluster/health API를 이용하여 클러스터의 현재 상태를 실시간으로 확인할 수 있다. 클러스터의 현재 상태를 간단한 형태로 가공해서 제공하기 때문에 이를 이용해 클러스터 Health 체크를 할 수 있다.
클러스터 레벨의 Health Check
GET /_cluster/health
- 결과로 클러스터 레벨의 간단한 요약 정보를 제공하며, Health Check 시, 가장 많이 사용하는 방식이다.
- cluster_name
- 클러스터 이름을 표시한다.
- status
- 클러스터 상태를 표시한다.(Green, Yellow, Red)
- green: 클러스터 모든 샤드가 정상
- yellow: 프라이머리 샤드는 정상/ 리플리카 샤드가 비정상
- red: 일부 프라이머리 샤드가 비정상
- 클러스터 상태를 표시한다.(Green, Yellow, Red)
- time_out
- health 체크 API 호출 시 타임아웃이 발생
- number_of_nodes
- 물리적으로 존재하는 엘라스틱서치 노드의 갯수
- number_of_data_nodes
- 노드 중에서 데이터 노드의 개수를 의미
- active_primary_shards
- 현재 클러스터에서 동작하고 있는 프라이머리 샤드의 개수
- relocating_shards
- 복구를 위해 relocation 작업 중인 샤드의 개수(평시 0)
- initializing_shards
- 초기화를 진행 중인 샤드의 개수
- 인덱스를 만들 때 생성되는 샤드는 잠시 초기화 상태를 유지하는데 , 샤드가 오랜 시간 동안 초기화를 진행한다면 문제가 있는 것이다.
- unassigned_shards
- 할당되지 않은 샤드의 개수를 의미(평시 0)
보통 status 속성을 통해 확인하는 것이 가장 간단하면서 확실하며, 다른 지표는 보조 지표로 활용하는 것이 좋다.
인덱스 레벨의 Health Check
GET /_cluster/health?level=indices
- level 파라미터의 값으로 indices를 포함시키면 기존 결과에 인덱스 정보가 포함되어 제공된다.
- 모든 인덱스 정보가 포함되어 리턴되기 때문에 문제가 발생한 인덱스를 찾을 수 있다.
샤드 레벨의 Health Check
GET /_cluster/health?level=shards
- level 파라미터의 값으로 shards를 전달하면 인덱스 내부의 샤드 레벨까지 포함된 정보를 제공한다.
Health Check 활용하기
GET /_cluster/health/{인덱스명}
- Health 체크 API는 기본적으로 모든 인덱스를 대상으로 요약 정보를 제공한다.
- 특정 인덱스만 대상으로 조회하고 싶다면 인덱스를 PathVariable로 전달해 주면 된다.
- active_primary_shards와 active_shards을 속성은 인덱스로 조회 했을 때와 전체 조회 했을 때 다른데 이는 Health 체크 결과로 제공된 요약 정보가 인덱스에 존재하는 샤드만을 대상으로 생성되는 것이다.
- 이를 활용해 검색엔진을 멀티태넌시 구조로 구축 시 활용할 수 있다.
- level 기반으로든 shard 기반으로든 해당 인덱스만 조회할 수 있다.
728x90
'Elastic Search' 카테고리의 다른 글
| Ch11. 장애 방지를 위한 실시간 모니터링 - 클러스터에 대한 실시간 모니터링 (0) | 2025.10.15 |
|---|---|
| Ch11. 장애 방지를 위한 실시간 모니터링 - 물리적인 클러스터 상태 정보 조회 (0) | 2025.10.15 |
| Ch10. 대용량 처리를 위한 시스템 최적화 - 시스템 튜닝 포인트 (0) | 2025.10.10 |
| Ch10. 대용량 처리를 위한 시스템 최적화 - 분산환경에서의 메모리 스와핑 (0) | 2025.10.10 |
| Ch10. 대용량 처리를 위한 시스템 최적화 - 엘라스틱서치와 가상 메모리 (0) | 2025.10.10 |