반응형
운영 중인 ElasticSearch에 노드를 제거하는 작업이 있어 해당 내용 정리해보려고 합니다.
노드를 제거하는 작업은 종종 있습니다.
1. docker 재시작이 필요한 경우
2. ElasticSearch가 설치된 서버에 이상이 있는 경우
3. scale up을 하기 위해 추가했던 노드가 큰 효과가 없어서 다시 제거하는 경우
노드가 제거되면 ElasticSearch 자체에서 shard initializing을 시작하고 가지고 있던 replica를 primary 샤드로 자기 복제 등을 해서 안정적으로 자동 처리해주는 걸로 알고 있습니다. 이 과정 중에서 CPU Usage, Load Average 값이 치솟고 ElasticSearch 조회 서비스에서 지연이 발생하거나 색인 시에도 오류가 발생하거나 예기치 않는 오류가 발생할 수 있습니다. 그래서 노드를 제거하기 전에 지연과 오류를 최대한 막기 위해 샤드를 옮기고 제거하거나 샤드 이동이 필요 없는 경우에는 불필요한 샤드 이동을 막거나 하는 선 작업이 필요합니다.
테스트
2022.07.12 - [docker] - Docker + Elasticsearch, Kibana 구성 (cluster)
샤드 이동 후 노드 제거
모든 샤드 상태 확인
- es1, es2 노드 다 같이 존재
http://localhost:9200/_cat/shards
.monitoring-es-7-2022.11.11 0 r STARTED 3234 2.4mb 172.19.0.2 es2
.monitoring-es-7-2022.11.11 0 p STARTED 3234 2.7mb 172.19.0.3 es1
.monitoring-kibana-7-2022.11.08 0 p STARTED 5407 1.1mb 172.19.0.2 es2
.monitoring-kibana-7-2022.11.08 0 r STARTED 5407 1.1mb 172.19.0.3 es1
.monitoring-kibana-7-2022.11.11 0 p STARTED 145 172.3kb 172.19.0.2 es2
...
es2 노드 제거하기
- _name : 노드 이름
- _ip : 노드 IP
- _host : 노드 호스트명
명령어 실행
PUT _cluster/settings
{
"transient": {
"cluster": {
"routing": {
"allocation.exclude": {
"_name": "es2"
}
}
}
}
}
키바나 스택 모니터링
- 샤드 이동
모든 샤드 상태 확인
- es1 노드에만 존재
http://localhost:9200/_cat/shards
ilm-history-2-000001 0 p STARTED 172.19.0.3 es1
.monitoring-es-7-2022.11.11 0 p STARTED 3234 2.7mb 172.19.0.3 es1
.monitoring-kibana-7-2022.11.08 0 p STARTED 5407 1.1mb 172.19.0.3 es1
.apm-custom-link 0 p STARTED 0 208b 172.19.0.3 es1
.monitoring-es-7-2022.11.21 0 p STARTED 2495 2.6mb 172.19.0.3 es1
...
es2 노드 Shards Count 0
클러스터 내 샤드 할당 기능 비활성화
명령어 실행
#샤드 움직이지 않게
PUT _cluster/settings
{
"persistent": {
"cluster.routing.allocation.enable": "none"
}
}
{
"acknowledged" : true,
"persistent" : {
"cluster" : {
"routing" : {
"allocation" : {
"enable" : "none"
}
}
}
},
"transient" : { }
}
노드 제거 후 키바나 스택 모니터링
- 샤드 이동 없음.
클러스터 내 샤드 할당 기능 활성화
명령어 실행
#샤드 움직일 수 있게
PUT _cluster/settings
{
"persistent": {
"cluster.routing.allocation.enable": null
}
}
{
"acknowledged" : true,
"persistent" : { },
"transient" : { }
}
노드 재시작 후 키바나 스택 모니터링
- 샤드 이동.
샤드 재배치 완료
- status 상태 green
반응형
'ELK' 카테고리의 다른 글
Elasticsearch copy_to 활용 (0) | 2023.05.26 |
---|---|
Elasticsearch Scroll API, Search After 성능 비교 (0) | 2023.05.08 |
Elasticsearch Translog 란? (0) | 2022.10.19 |
Elasticsearch Reindex를 사용해 신규 index 생성 (0) | 2022.10.14 |
Elasticsearch enabled index 옵션 차이 (0) | 2022.09.14 |