728x90
Cat API와 Rest API 차이
_cluster API로 클러스터를 관리하기 위한 대부분의 기능을 제공하지만, 결과를 JSON 형태로 제공하기 때문에 프로그램 환경에서 파싱 해서 사용하기 편리하다. 리눅스 쉘 환경에서는 콘솔 형태로 사용하는데, 이는 JSON 포맷과 친화적이지 못하다.
엘라스틱서치는 콘솔 사용자를 위해 _cat API를 제공하며, 콘솔과 친화적인 응답을 출력할 수 있다.
curl http://localhost:9200/_cat/master?v

- 콘솔 친화적인 응답값을 받을 수 있다.
Cat API 공통 파라미터
1) v 파라미터
curl http://localhost:9200/_cat/master?v
- _cat API는 기본적으로 반환되는 결과에는 헤더 라인이 빠져있다.
- v 파라미터를 추가하면, 헤더라인을 포함해서 결과를 반환해준다.
2) help 파라미터
curl http://localhost:9200/_cat/master?help
- 헤더 라인에 제공되는 명칭을 자세하게 설명해준다.
3) h 파라미터
curl http://localhost:9200/_cat/master?v&h=host, node
- 콘솔에서는 횡으로 많은 정보를 노출하기 힘들기 때문에 h 파라미터로 출력할 항목을 선택할 수 있다.
4) format 파라미터
curl http://localhost:9200/_cat/master?format=json
콘솔에서 호출하는 Cat API
1) _cat/allocation API
curl http://localhost:9200/_cat/allocation?v
- 각 데이터 노드에 할당된 샤드의 수와 사용 중인 디스크 공간의 정보를 출력한다.
- 가장 기본적인 클러스터의 리소스 정보를 확인할 수 있다.
2) _cat/shards API
curl http://localhost:9200/_cat/shards?v
- 샤드의 상태 정보를 확인할 수 있다.
- 샤드의 종류, 가지고 있는 문서 수, 사용중인 디스크 공간에 대한 정보를 제공한다.
3) _cat/master API
curl http://localhost:9200/_cat/master?v
- 마스터 노드의 정보를 확인할 수 있다.
4) _cat/nodes API
curl http://localhost:9200/_cat/nodes?v
- 노드에서 사용중인 fielddata 메모리 정보를 조회할 수 있다.
5) _cat/tasks API
curl http://localhost:9200/_cat/tasks?v
- 클러스터에서 현재 동작 중인 Task를 확인할 수 있다.
6) _cat/indices API
curl http://localhost:9200/_cat/indices?v
- 클러스터에 존재하는 인덱스의 정보를 확인할 수 있다.(루씬이 제공하는 정보다)
- 엘라스틱서치 기준으로 정확한 문서 수를 세기 위해서는 _cat/count API를 조회해야 한다
- 루씬 기준 count는 가상 문서가 포함되기 때문이다.
7) _cat/segments API
curl http://localhost:9200/_cat/segments?v
- 샤드 내부에 존재하는 세그먼트의 정보를 확인할 수 있다.
8) _cat/count API
curl http://localhost:9200/_cat/count?v
- 색인된 문서 수를 조회할 수 있다.
- epoch 항목은 유닉스 시간을 의미한다.
9) _cat/recovery API
curl http://localhost:9200/_cat/recovery?v
- 현재 진행 중이거나, 완료된 샤드의 복구 정보를 확인할 수 있다.
- 복구 이벤트는 특정 노드에 존재하는 샤드가 다른 노드로 이동할 때마다 발생한다.
- Snaptshot Recovery, Replication Level 변경, 노드 장애 복구, 노드 시작 시 초기화등 작업 시 발생
- 특정 이벤트만 필터링해서 볼 수도 있다(다양한 항목 조합)
10) _cat/health API
curl http://localhost:9200/_cat/health?v
- 클러스터 health 체크 결과를 확인할 수 있다.
11) _cat/pending_tasks API
curl http://localhost:9200/_cat/pending_tasks?v
- 큐에 대기 중인 Task 정보를 확인할 수 있다.
12) _cat/aliases API
curl http://localhost:9200/_cat/aliases?v
- 인덱스에 설정된 별칭(alias) 정보를 확인할 수 있다.
13) _cat/thread_pool API
curl http://localhost:9200/_cat/thread_pool?v
- 클러스터에 존재하는 스레드 풀의 통계 정보를 확인할 수 있다.
- 스레드풀 상태는 active, queue, rejected로 분류된다.
- 원하는 항목만 선택적으로 기입하면 해당 항목만 볼 수 있다.
14) _cat/plugins API
curl http://localhost:9200/_cat/plugins?v
- 노드에 설치된 플러그인 정보를 확인할 수 있다.
15) _cat/fielddata API
curl http://localhost:9200/_cat/fielddata?v
- 클러스터에서 사용 중인 fielddata 캐시의 메모리 정보를 확인할 수 있다.
- 클러스터 운영 중에는 OOM이 발생하지 않도록 노드 별 fielddata를 항상 모니터링해야 한다.
16) _cat/nodeattrs API
curl http://localhost:9200/_cat/nodeattrs?v
- 노드에 설정된 Attribute 설정 정보를 조회할 수 있다.
- 최신 노드는 실행 시 attribute 속성 설정이 가능하다.
17) _cat/repositories API
curl http://localhost:9200/_cat/repositories?v
- 스냅숏이 저장된 저장소 정보를 확인할 수 있다.
18) _cat/snapshots API
curl http://localhost:9200/_cat/snapshots/repo1?v&s=id
- 스냅숏 정보를 확인할 수 있다.
- 저장소 id를 알아야 호출할 수 있기 때문에 _cat/repositories API를 호출해 id를 알아야 한다.
- 예시는 id가 "repo1"이다.
19) _cat/templates API
curl http://localhost:9200/_cat/templates?v
- 클러스터에 존재하는 템플릿 정보를 확인할 수 있다.
728x90
'Elastic Search' 카테고리의 다른 글
| Ch12. 안정적인 클러스터 운영 노하우 - 마스터 노드와 데이터 노드 분리 (0) | 2025.10.21 |
|---|---|
| Ch12. 안정적인 클러스터 운영 노하우 - 노드 부트스트랩 과정의 이해 (0) | 2025.10.21 |
| Ch11. 장애 방지를 위한 실시간 모니터링 - 클러스터에 대한 실시간 모니터링 (0) | 2025.10.15 |
| Ch11. 장애 방지를 위한 실시간 모니터링 - 물리적인 클러스터 상태 정보 조회 (0) | 2025.10.15 |
| Ch11. 장애 방지를 위한 실시간 모니터링 - 클러스터 Health 체크 (0) | 2025.10.15 |