본문 바로가기
Elasticsearch

ES의 status

by suychoi 2022. 2. 25.

Status

ES(ElasticSearch) 에서 status는 현재 클러스터의 상태를 표시합니다. 

 

아래의 명령어로 확인할 수 있습니다. 

[suychoi@localhost ~]$ curl -XGET localhost:9200/_cluster/health?pretty=true

🆘curl: (35) SSL received a record that exceeded the maximum permissible length.

이런 오류가 발생한다면, https:// 를 지우고 실행하면 됩니다. 

 

현재 cluster 의 status 는 green 입니다. 

 


Status 종류

   
green 모든 샤드가 정상적으로 동작하고 있는 상태로
전체 인덱스에 read/write 가 정상임
yellow 일부 혹은 모든 인덱스의 replica 샤드가 정상적이지 않은 상태, 모든 인덱스에 read/write 가 정상적으로 동작하지만

일부 인덱스의 경우 replica 가 없어서 primary 샤드에 문제가 생기면 유실이 발생할 가능성이 있음을 의미
red 일부 혹은 모든 인덱스의 primary와 replica 샤드가 정상적이지 않은 상태, 
일부 혹은 모든 인덱스에 read/write가 정상적으로 안되며, 데이터의 유실이 발생할 가능성이 있다. 

Status 해석

green 과 yellow 는 read/write에는 이상이 없는 상태지만, 성능에는 영향이 있을 수 있다. 

replica shard 가 없어서 검색이 느려질 수 있다. (있으면 검색이 빨라짐!) 

하지만 red 의 경우 cluster에 장애가 발생했다고 볼 수 있다. 

 

 


RED Status 가 미치는 영향

1. 장애 현황 파악

  • 1)영향을 받는 인덱스를 파악한다
  • cat API 중에서 indices API를 활용한다. 
curl -s http://localhost:9200/_cat/indices?v

출처 : https://brunch.co.kr/@alden/43

클러스터의 상태가 red 라고 해서 모든 인덱스의 상태가 red가 되는건 아니다. 

위 경우  test_2 인덱스는 yellow 이고 test 인덱스는 red 이다. 

 

  1. 영향받는 shard를 확인한다.
curl -s http://localhost:9200/_cat/shards/test?v

출처 : https://brunch.co.kr/@alden/43

위 경우  test 인덱스의 샤드들 중에서 1번과 3번 샤드들이 UNASSIGNED 상태이다. 

이 두개의 primary shard가 노드에 배치가 안되서 클러스터의 상태가 red가 된 것이다. 

 

 


참고

링크1

'Elasticsearch' 카테고리의 다른 글

ES의 기본 API (CRUD)  (0) 2022.03.01