본문 바로가기
공부

Elasticsearch 활용) 인덱스 샤드 모니터링

by son_i 2023. 12. 7.
728x90

출처 : https://12bme.tistory.com/171

https://esbook.kimjmin.net/03-cluster/3.2-index-and-shards

 

3.2 인덱스와 샤드 - Index & Shards - Elastic 가이드북

인덱스를 생성할 때 별도의 설정을 하지 않으면 7.0 버전부터는 디폴트로 1개의 샤드로 인덱스가 구성되며 6.x 이하 버전에서는 5개로 구성됩니다. 클러스터에 노드를 추가하게 되면 샤드들이 각

esbook.kimjmin.net

document : Elasticsearch에 있는 낱개 데이터

index : document의 논리적인 집합

인덱스는 샤드라는 개념으로 분리되어 여러 개의 노드에 흩어져서 저장.

 

처음 생성된 샤드를 프라이머리 샤드(Primary Shard), 복제본은 리플리카(Replica)

같은 샤드와 복제본은 동일한 데이터를 담고 있으며 반드시 서로 다른 노드에 저장이 된다.

 

샤드는 디폴트로 1개의 복제본(Replica)를 같이 만듦. Primary Shard와 그에 대한 Replica는 각기 다른 노드에 저장.

노드가 1개만 있을 경우 프라이머리 샤드만 존재하고 복제본은 생성되지 않음.
Elasticsearch는 아무리 작은 클러스터여도 데이터 가용성과 무결성을 위해 최소 3개의 노드로 구성할 것을 권장.

 

프라이머리 샤드와 리플리카를 통해 ES는 운영 중 노드가 유실되어도 데이터를 잃지 않고 가용성과 무결성을 보장함.

 

프라이머리 샤드가 유실된 경우 새로운 프라이머리 샤드가 생성되는 것이 아님.

남아있던 복제본이 먼저 프라이머리 샤드로 승격되고 다른 노드에 새로 복제본을 생성.

 

 

인덱스 추가

books라는 인덱스를 만들고  shards 5개, replica는 1개.

index한 번 만들면 똑같은 인덱스 또 만들 수 없음.

PUT /books
{
  "settings": {
    "number_of_shards": 5,
    "number_of_replicas": 1
  }
}

 

인덱스 삭제

DELTE [인덱스명]

 

내용을 가져올 때

GET [인덱스명]

mapping 정보와 setting 정보가 나옴.

 

Setting변경

PUT [인덱스명]/바꿀설정

Replica 갯수는 중간에 바꿀 수 있지만 Primary Shard 갯수는 못 바꿈.

PUT books/_settings
{
  "number_of_replicas": 0
}

 

인덱스들에 대한 정보 확인

GET _cat/indices

_cat api는 응답이 list형태라 보기 편함.

 

특정 인덱스의 샤드를 보고 싶을 때 (샤드? : 인덱스 조각)

GET _cat/shards/books

Primary shards를 5개 만들었는데 각 샤드가 어느 노드에 있는지 알 수 있음.

p 는 Primary shards, r는 Replica


메뉴에 stack monitoring를 사용하면 한눈에 볼 수 있음.

-> 다만 용량이 크니 안 쓸땐 꺼놓자.

 

이렇게 노드에 들어가면 샤드를 볼 수 있음.  

 

인덱스별 노드 상황도 볼 수 있음.

 

따로 끄는 버튼은 없지만

GET _cluster/settings

persistent : 클러스터 재시작해도 그대로 있음

  현재 true로 되어있는 설정은 es노드들이 모니터링 데이터를 스스로 계속 수집하라는 의미.

 -> false로 바꿔주면 됨.

transient  : 클러스터 재시작하면 사라짐.

 

false로 바꾸면 더이상 모니터링 데이터를 수집하지 않음.

모니터링 키고싶으면 true로 바꾸면 됨.

 

결론
ES 모든 세팅, API 같은 건 REST 명령어를 사용하면 이용가능함.
키바나가 엘라스틱 서치로 REST api 명령을 날려서 실행되는 원리.

'공부' 카테고리의 다른 글

Elasticsearch) Query DSL  (1) 2023.12.08
Elasticsearch) CRUD  (1) 2023.12.08
Kibana  (2) 2023.12.07
Elastic Search 설치 및 환경설정  (1) 2023.12.07
JPA 영속성 컨텍스트  (0) 2023.11.30