엘라스틱 서치 운영
2023.09.07 - [Engineering WIKI/Book] - 기초부터 다지는 엘라스틱서치 운영 (1 ~ 2장) / 훑어보기 및 기본동작
2023.09.29 - [Engineering WIKI/Book] - 기초부터 다지는 엘라스틱서치 운영 (3 ~ 4장) / 모니터링 및 기본개념
2024.03.28 - [Engineering WIKI/Book] - 기초부터 다지는 엘라스틱서치 운영 (5장) / ElasticSearch 클러스터 구축
핵심 개념
Full Cluster Restart
모든 노드를 동시에 재시작하는 방식이며, 다운 타임이 발생하지만 빠르게 버전을 업그레이드 할 수 있다.
Rolling Restart
노드를 순차적으로 한 대씩 재시작하는 방식이며, 다운 타임은 없지만 노드 개수에 따라서 업그레이드에 소요되는 시간이 길어질 수 있다.
샤드 배치 방식 변경
ElasticSearch는 대부분 자동으로 샤드를 배치하지만 경우에 따라서 샤드 배치 방식을 변경해야 할 때가 있다.
reroute : 샤드 하나하나를 특정 노드에 배치할 때 사용
allocation : 클러스터 전체에 해당하는 샤드 배치 방식을 변경할때 사용
rebalance : 클러스터 전체에 해당하는 샤드 재분배 방식을 변경할 때 사용
filtering : 특정 조건에 해당하는 샤드들을 특정 노드에 배치할 때 사용
클러스터 설정 확인 방법
curl -X GET "localhost:9200/_cluster/settings?pretty"
{
"persistent" : {},
"transient" : {},
}
persistent : 영구히 적용되는 설정 (클러스터를 재시작해도 유지)
transient : 클러스터가 운영 중인 동작에만 적용되는 설정 (클러스터를 재시작하면 초기화 됨)
기본적인 설정값은 elasticsearch.yml을 통해서 설정할 수 있다.
1순위 : transient
2순위 : persistent
3순위 : elasticsearch.yml
인덱스 API
open/close : 인덱스를 open/close 하는 API
aliases : 인덱스에 별칭을 부여하는 API
rollover : 인덱스를 새로운 인덱스로 분기시키는 API
refresh : 문서를 세그먼트로 내리는 주기를 설정하는 API
forcemerge : 샤드 내의 세그먼트를 병합시키는 API
reindex : 인덱스를 복제하는 API
rollover API
인덱스에 특정 조건을 설정하여 해당 조건을 만족하면 인덱스를 새로 만들고, 새롭게 생성된 인덱스로 요청을 받는 API
rollover API는 aliases API를 통한 별칭 설정이 반드시 필요한 API. 롤오버(rollover)하기 전에는 logstash-today(별칭)라는 인덱스 이름으로 색인과 검색 요청을 한다. logstash-today는 사실 aliases API를 통해서 logstash-001이라는 인덱스에 별칭으로 설정한 인덱스 이름이지만 사용자는 이에 대해 인지하지 못한 상태로 사용할 수 있다. 그 후 logstash-001 인덱스에 너무 많은 문서가 색인되거나 용량이 커져서 인덱스를 하나 더 생성해야 한다면 rollover API를 이용해서 logstash-002라는 인덱스를 생성하고 logstash-today라는 별칭을 logstahs-002로 변경한다. 사용자 입장에서는 아무런 작업을 하지 않아도 logstash-today라는 인덱스 이름을 유지한 채 계속해서 색인하고 검색할 수 있다.
rollover API의 dry_run 모드 설정 방법
dry_run모드는 실제 변경이 적용되지는 않고 변경이 적용되면 어떻게 되는지를 보여주기 때문에 실제 롤오버하기 전에 어떻게 변경되는지 확인해 볼수 있다.
curl -XPOST "localhost:9200/logs_write/_rollover/new_index?dry_run&prety" -H 'Content-Type: application/json' -d'
{
"conditions": {
"max_age": "7d",
"max_docs" : 2,
"max_size": "5gb"
}
}
'
{
"acknowledged" : false,
"shars_acknowledged" : false,
"old_index" : "logs-00001",
"new_index" : "new_index",
"rolled_over" : false,
"dry_run" : true,
}
reindex API
인덱스를 복제하는 기능이며, 클러스터를 운영하다 보면 인덱스를 마이그레이션해야 하는 경우 사용함
템플릿 활용하기
인덱스가 생성될 때마다 인덱스 API를 통해서 동적으로 설정을 변경해야 한다면 굉장히 번거로움
ElasticSearch 템플릿 API를 통해서 특정 패턴의 이름을 가진 인덱스에 설정이 자동 반영되도록 하는 인터페이스 제공
Reference URL
'Engineering WIKI > Book' 카테고리의 다른 글
기초부터 다지는 엘라스틱서치 운영 (10장) / 색인 성능 최적화 (64) | 2024.04.17 |
---|---|
기초부터 다지는 엘라스틱서치 운영 (9장) / 검색 엔진으로 활용하기 (67) | 2024.04.16 |
기초부터 다지는 엘라스틱서치 운영 (8장) / 분석 엔진으로 활용하기 (70) | 2024.04.15 |
기초부터 다지는 엘라스틱서치 운영 (7장) / 클러스터 성능 모니터링과 최적화 (54) | 2024.04.14 |
기초부터 다지는 엘라스틱서치 운영 (5장) / ElasticSearch 클러스터 구축 (36) | 2024.03.28 |
기초부터 다지는 엘라스틱서치 운영 (3 ~ 4장) / 모니터링 및 기본개념 (112) | 2023.09.29 |
[일래스틱 스택 6 입문] 3장. 유사도 검색 (84) | 2023.09.17 |
기초부터 다지는 엘라스틱서치 운영 (1 ~ 2장) / 훑어보기 및 기본동작 (58) | 2023.09.07 |