클러스터 상태 API
클러스터 상태 API (Cluster State API)
클러스터가 지금 어떤 상태인지 스냅샷처럼 확인하고 싶으시죠? /_cluster/state API가 메타데이터, 라우팅 테이블, 노드 등 클러스터의 현재 상태를 검색해요. 주로 모니터링, 디버깅, 내부 용도로 사용돼요. cluster manager 노드가 유지하는 클러스터 상태의 다양한 부분을 스냅샷으로 제공해요.
출처: 문서
본문
1.0에서 도입
/_cluster/state API는 메타데이터, 라우팅 테이블, 노드 등 클러스터의 현재 상태를 검색해요. 이 API는 주로 모니터링, 디버깅, 내부 용도로 사용돼요. cluster manager 노드가 유지하는 클러스터 상태의 다양한 부분을 스냅샷으로 제공해요.
엔드포인트
GET /_cluster/state
GET /_cluster/state/{metric}
GET /_cluster/state/{metric}/{target}
경로 파라미터
다음 표는 사용 가능한 경로 파라미터예요. 모든 경로 파라미터는 선택적이에요.
| Parameter | Data type | Description |
|---|---|---|
| metric | String or List | 응답에 포함할 메트릭의 쉼표로 구분된 목록이에요. 사용 가능한 옵션 목록은 Metric options를 참고하세요. 기본값은 _all이에요. |
| target | String or List | 응답의 범위를 제한하는 데 사용하는 인덱스 이름, 데이터 스트림, 인덱스 alias의 쉼표로 구분된 목록이에요. |
메트릭 옵션 (Metric options)
metric 경로 파라미터로 API가 반환하는 정보를 제한할 수 있어요. 다음 옵션을 사용할 수 있어요.
_all(기본값): 모든 메트릭을 반환해요.blocks: 인덱스 수준 및 전역 블록에 대한 정보를 포함해요.metadata: 설정, 인덱스 매핑, 템플릿을 포함한 클러스터 메타데이터를 반환해요.nodes: 클러스터의 노드에 대한 정보를 반환해요.routing_table: 모든 샤드의 라우팅 정보를 제공해요.cluster_manager_node: 현재 elected cluster manager 노드의 ID를 표시해요.version: 현재 클러스터 상태 버전을 표시해요.
쿼리 파라미터
다음 표는 사용 가능한 쿼리 파라미터예요. 모든 쿼리 파라미터는 선택적이에요.
| Parameter | Data type | Description |
|---|---|---|
| local | Boolean | true면 클러스터 manager 노드 대신 로컬 노드에서 상태를 검색해요. 기본값은 false예요. |
| cluster_manager_timeout | Time | cluster manager 노드에 연결하는 타임아웃 기간이에요. 기본값은 30s예요. |
| flat_settings | Boolean | true면 설정을 평평한 형식으로 반환해요. 기본값은 false예요. |
| wait_for_metadata_version | Integer | 응답하기 전에 메타데이터 버전이 이 값 이상이 될 때까지 대기해요. |
| wait_for_timeout | Time | wait_for_metadata_version을 사용할 때 얼마나 오래 기다릴지 지정해요. 기본값은 30s예요. |
| ignore_unavailable | Boolean | 없거나 닫힌 인덱스를 무시할지 여부예요. 기본값은 false예요. |
| expand_wildcards | String | 와일드카드 표현식이 매칭할 수 있는 인덱스 유형을 지정해요. 쉼표로 구분된 값을 지원해요. 유효한 값은 다음과 같아요. - all: 숨겨진 인덱스를 포함해 모든 인덱스를 매칭해요. - closed: 닫힌, 숨겨지지 않은 인덱스를 매칭해요. - hidden: 숨겨진 인덱스를 매칭해요. open, closed 또는 둘 다와 결합해야 해요. - none: 와일드카드 표현식이 허용되지 않아요. - open: 열린, 숨겨지지 않은 인덱스를 매칭해요. 기본값은 open이에요. |
| allow_no_indices | Boolean | 와일드카드 표현식이나 인덱스 alias가 어떤 인덱스로도 해석되지 않을 때 실패할지 여부예요. 기본값은 true예요. |
예시 요청
전체 클러스터 상태를 검색해요.
GET /_cluster/state
특정 인덱스에 대한 메타데이터와 라우팅 테이블을 검색해요.
GET /_cluster/state/metadata,routing_table/my-index
현재 elected cluster manager 노드만 검색해요.
GET /_cluster/state/cluster_manager_node
응답 필드
다음 표는 모든 응답 필드를 나열해요.
| Field | Data type | Description |
|---|---|---|
| cluster_name | String | 클러스터의 이름이에요. |
| cluster_uuid | String | 클러스터의 고유 식별자예요. |
| version | Integer | 클러스터 상태의 현재 버전이에요. |
| state_uuid | String | 이 상태 버전의 고유 식별자예요. |
| master_node | String | cluster_manager_node와 마찬가지로 하위 호환성을 위해 유지돼요. |
| cluster_manager_node | String | elected cluster manager 노드의 노드 ID예요. |
| blocks | Object | 인덱스 수준 블록 설정이에요. |
| metadata | Object | 인덱스 매핑, 설정, alias예요. |
| nodes | Object | 클러스터의 모든 노드 세부 정보예요. |
| routing_table | Object | 인덱스별 샤드-노드 할당이에요. |
| routing_nodes | Object | 각 노드에 할당된 샤드 목록이에요. |
| indices | Object | 인덱스별 상태 메타데이터예요. |
보안
Security 플러그인을 사용한다면 적절한 권한이 있는지 확인해야 해요: cluster:monitor/state.
더 알아보기 (Learn more)
- 메트릭과 대상 조합으로 응답 범위를 좁혀 클러스터의 특정 부분만 확인할 수 있어요.
- 클러스터 상태에 대한 더 상세한 통계는 Cluster Stats API에서 다뤄요.