본문 바로가기
Skills/Elasticsearch

Elasticsearch health yellow 문제 분석

by Hoseok 2023. 6. 29.
728x90
반응형

health yellow 문제

 

elasticsearch health가 yellow로 나온다.

 

current.health="YELLOW" message="Cluster health status changed from [RED] to [YELLOW] (reason: [shards started [[.apm-source-map][0]]])." previous.health="RED" reason="shards started [[.apm-source-map][0]]"

 

문제를 정확히 알기 위해 아래로 들어가보자.

 

https://localhost:9200/_cluster/health?pretty

 

그럼 아래처럼 뜨는데,

 

할당되지 않은 샤드가 2개로 나온다.

 

정확하게 알기 위해,  아래를 주소에 입력하면,

 

https://localhost:9200/_cluster/health/?level=shards

 

내가 만들어놓았던 boards와 products 인덱스가 상태가 "yellow"였다.

 

"yellow" 상태는 일부 혹은 모든 인덱스의 복제 샤드가 정상적으로 작동하지 않는 상태를 말한다.

 

즉, boards와 products 인덱스가 리플리카(복제 샤드)가 없어서 데이터 유실이 발생할 수 있는 상태이다.

(프라이머리 샤드만 존재하는 상태)

 

다만, 읽기와 쓰기에는 문제가 없다.

 

원인

 

노드가 1개만 있는 경우 프라이머리 샤드만 존재하고 복제본은 생성되지 않는다고 한다.

 

그래서 Elasticsearch는 아무리 작은 클러스터라도, 최소 3개의 노드로 구성 할 것을 권장하고 있다.

 

번외(index 삭제)

 

health를 green으로 만드려고 하다가 알게 된, index 삭제 방법이다.

 

curl -k DELETE https://localhost:9200/인덱스명?pretty -u elastic

 

username과 password를 입력해주자.

 

 

true가 나오면 성공

 

yellow상태인 샤드가 없으므로, health가 green으로 나오긴 하지만

 

 

근본적인 문제 해결이 아니다.

 

최소 3개 이상의 노드로 구성해야 리플리카가 생성된다는 것을 기억하자.

 

728x90
반응형