클러스터 상태 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에서 다뤄요.