본문 바로가기
DB/엘라스틱서치

es failover 테스트

by devljy 2024. 11. 1.

#0 현재 클러스터 노드 구성확인  ( * 표시가 있는 es-2 가 마스터 노드)

GET /_cat/nodes?v

 

 

#1 테스트 해볼 인덱스 생성

PUT test_failover
{
  "settings": {
    "number_of_shards": 3,
    "number_of_replicas": 1
  },
  "mappings": {
    "properties": {
      "user_id": { "type": "keyword" },
      "username": { "type": "keyword" },
      "title": { "type": "text" },
      "content": { "type": "text" },
      "category": { "type": "keyword" },
      "views": { "type": "integer" },
      "likes": { "type": "integer" },
      "created_at": { "type": "date" }
    }
  }
}

 

 

#2  벌크데이터 입력

// 2. 벌크 데이터 입력 (15개)
POST _bulk
{"index":{"_index":"test_failover"}}
{"user_id":"user1","username":"김철수","title":"첫번째 게시글","content":"안녕하세요 첫번째 테스트 게시글입니다.","category":"공지사항","views":150,"likes":25,"created_at":"2024-03-19"}
{"index":{"_index":"test_failover"}}
{"user_id":"user2","username":"이영희","title":"프로모션 안내","content":"봄맞이 프로모션을 시작합니다.","category":"이벤트","views":320,"likes":42,"created_at":"2024-03-19"}
{"index":{"_index":"test_failover"}}
{"user_id":"user3","username":"박지민","title":"시스템 점검 안내","content":"시스템 점검이 예정되어 있습니다.","category":"공지사항","views":980,"likes":15,"created_at":"2024-03-19"}
{"index":{"_index":"test_failover"}}
{"user_id":"user4","username":"최수진","title":"새로운 기능 업데이트","content":"새로운 기능이 추가되었습니다.","category":"업데이트","views":750,"likes":88,"created_at":"2024-03-19"}
{"index":{"_index":"test_failover"}}
{"user_id":"user5","username":"정민수","title":"자주 묻는 질문","content":"자주 묻는 질문들을 정리했습니다.","category":"FAQ","views":1200,"likes":156,"created_at":"2024-03-19"}
{"index":{"_index":"test_failover"}}
{"user_id":"user6","username":"강하늘","title":"사용자 가이드","content":"서비스 사용 방법을 안내합니다.","category":"가이드","views":890,"likes":94,"created_at":"2024-03-19"}
{"index":{"_index":"test_failover"}}
{"user_id":"user7","username":"송미란","title":"이벤트 당첨자 발표","content":"지난 이벤트 당첨자를 발표합니다.","category":"이벤트","views":1500,"likes":225,"created_at":"2024-03-19"}
{"index":{"_index":"test_failover"}}
{"user_id":"user8","username":"윤재호","title":"베타 테스트 모집","content":"새로운 기능 베타 테스터를 모집합니다.","category":"모집","views":670,"likes":45,"created_at":"2024-03-19"}
{"index":{"_index":"test_failover"}}
{"user_id":"user9","username":"임서연","title":"서비스 개선사항","content":"최근 개선된 사항들을 안내합니다.","category":"업데이트","views":430,"likes":67,"created_at":"2024-03-19"}
{"index":{"_index":"test_failover"}}
{"user_id":"user10","username":"한지훈","title":"긴급 공지사항","content":"긴급 점검이 있을 예정입니다.","category":"공지사항","views":2100,"likes":178,"created_at":"2024-03-19"}
{"index":{"_index":"test_failover"}}
{"user_id":"user11","username":"오민지","title":"신규 이벤트 안내","content":"새로운 이벤트를 시작합니다.","category":"이벤트","views":880,"likes":134,"created_at":"2024-03-19"}
{"index":{"_index":"test_failover"}}
{"user_id":"user12","username":"서동훈","title":"사용자 피드백","content":"사용자 의견을 반영한 개선사항입니다.","category":"피드백","views":560,"likes":92,"created_at":"2024-03-19"}
{"index":{"_index":"test_failover"}}
{"user_id":"user13","username":"황미영","title":"작업 완료 안내","content":"예정된 작업이 완료되었습니다.","category":"공지사항","views":340,"likes":28,"created_at":"2024-03-19"}
{"index":{"_index":"test_failover"}}
{"user_id":"user14","username":"백승호","title":"베스트 리뷰 모음","content":"이번 달 베스트 리뷰를 소개합니다.","category":"리뷰","views":1800,"likes":245,"created_at":"2024-03-19"}
{"index":{"_index":"test_failover"}}
{"user_id":"user15","username":"조은미","title":"휴무 안내","content":"추석 연휴 휴무 일정을 안내합니다.","category":"공지사항","views":920,"likes":76,"created_at":"2024-03-19"}

 

#3 데이터확인 ( 15 개 ) 

GET test_failover/_search
{
  "query": {
    "match_all": {}
  }
}

 

#4 샤드상태확인

GET _cat/shards/test_failover?v

 

#5 인덱스 설정 확인

GET test_failover/_settings

 

#6  : 마스터노드가아닌 일반 데이터노드 장애 테스트

systemctl stop elasticsearch

 

#7 : 데이터 노드수는 줄어들었으나

 , 인덱스 조회시 데이터 개수 일치 및 샤드 재배치 확인

GET /_cluster/health , 




장애가 일어난 es-3 클러스터를 제외하고 샤드 재배치가 이뤄진것 확인
** before : 



** after: 
 

 

 

#8 es-3 노드 정상화 후 모니터링

systemctl restart elasticsearch.service 
 , GET _cat/shards/test_failover?v
 , 

es-3 에서 엘라스틱 서비스 재시작


정상화 확인후 인덱스 샤드 재배치 확인




데이터 개수 일치 확인


클러스터 노드 정상화 확인


 

 

#9 마스터 노드 장애 발생 테스트

 

 



- es-2 번 노드 가 master 인것을 확인



- es-2 노드가 존재하는서버에서 엘라스틱서치 서비스 중지



- GET /_cat/nodes?v 로 노드 서비스 중지 확인 , 마스터 후보(es-1 , es-2 , es-3 ) 중 es-1 master 로 선정 



- 기존 인덱스 데이터 개수 조회 후 일치 확인



- test_failover 인덱스의 샤드 구조에서 기존 데이터노드인 es-2 는 UNASSINGED 상태로 변경



- test_failover 인덱스에서 종료된 es-2 노드를 제외하고 샤드 재배치 확인


-es-2 노드 엘라스틱서치 정상화


- 클러스터에 정상 합류 확인


- test_failover 인덱스 샤드 재배치 확인

 

'DB > 엘라스틱서치' 카테고리의 다른 글

엘라스틱 서치 노드 or 서버 점검시  (0) 2024.11.02
es 기본 설치 ( deb > ubuntu)  (0) 2024.11.01
기본 dsl  (0) 2024.10.31