백업이 말대꾸? (feat. ES)

GisangLee·3일 전
0

ELK

목록 보기
1/1
Elasticsearch 서버는 인덱스로 인해 서버 디스크 용량을 주기적으로 비워줘야한다.

???: 그거 ILM 설정하면 되는 거 아님?

세상은 그리 쉽지 않단다 아가야.

Elasticsearch 서버에서 오래된 인덱스를 백업하여 Cold Data로 활용하는 것이 목표.

  • Cold Data를 볼 수 있는 별도 ELK 서버를 구축
  • 해당 서버에 백업한 인덱스를 복원

그럼 레츠 기릿

1. 백업

1-1. /etc/elasticsearch/elasticsearch.yml 수정

path.repo: "<백업 경로>" 
를 입력한 후

sudo systemctl restart elasticsearch 진행

1-2. 백업용 스냅샷 레포지토리 생성 (Kibana DevTools)

PUT _snapshot/<스냅샷 레포지토리 이름>verify=false
{
  "type": "fs",
  "settings": {
    "location": "<백업 경로>"
  }
}

---------

// 예시 
PUT _snapshot/backup-test?verify=false
{
  "type": "fs",
  "settings": {
    "location": "/usr/share/elasticsearch/backup-test"
  }
}

1-3. 스냅샷 생성 (백업) (Kibana DevTools)

PUT _snapshot/<스냅샷 레포지토리 이름>/<스냅샷 이름>?wait_for_completion=true
{
  "ignore_unavailable": true,
  "indices": "<백업할 인덱스>",
  "include_global_state": false
}

------------------
// 예시
PUT _snapshot/backup-test/my-index-backupwait_for_completion=true
{
  "ignore_unavailable": true,
  "indices": "my-index",
  "include_global_state": false
}

// 다중 인덱스 백업
PUT _snapshot/backup-test/multi-index-backup?wait_for_completion=true
{
  "ignore_unavailable": true,
  "indices": "my-index, your-index, her-index",
  "include_global_state": false
}

1-4. 백업 상태 조회 (Kibana DevTools)

GET _snapshot/<스냅샷 레포지토리 이름>/<스냅샷 이름>

1-5. 스냅샷 폴더 압축

tar -czvf <압축파일명> -C <백업폴더 경로>

# 예시
tar -czvf /home/me/backup.tar.gz -C /usr/share/elasticsearch backup-test

1-6. 압축파일을 복원할 서버로 전송

scp backup.tar.gz <USER>@<복원용 ES서버 HOST>:<복원용 ES 서버 경로>

# 예시
scp backup.tar.gz me@10.0.0.0:/home/me

백업 쉽노


2. 복원

2-1. /etc/elasticsearch/elasticsearch.yml 수정

path.repo: "<백업 경로>"
를 입력한 후

sudo systemctl restart elasticsearch 진행

2-2. 압축 해제

tar xzvf backup.tar -C /usr/share/elasticsearch/

2-3. 스냅샷 레포지토리 생성 (Kibana DevTools)

PUT _snapshot/<스냅샷 레포지토리 이름>verify=false
{
  "type": "fs",
  "settings": {
    "location": "<백업 경로>"
  }
}

2-4. 복원 (Kibana DevTools)

POST _snapshot/<스냅샷 레포지토리 이름>/<백업 시 사용한 스냅샷 이름>/_restore
{
  "indices": "<백업 시 기재한 인덱스 명>",
  "ignore_unavailable": true,
  "include_global_state": false
}

2-5. 인덱스 복원 과정 확인 (Kibana DevTools)

GET _cat/recovery?v&active_only=true

2-6. 인덱스 생성 확인 (Kibana DevTools)

GET _cat/indices?v

2-7 클러스터에서 백업하고 단일 노드로 복원하는 경우에만 실행

# 단일노드이므로 복제본 할당 제거
PUT _all/_settings
{
  "index": {
    "number_of_replicas": 0
  }
}

주의 사항: 여러 스냅샷 압축파일을 개별 복원할 때는 한 번 복원할 때마다 elsaticsearch를 restart 해주어야한다.

복원 쉽노

profile
포폴 및 이력서 : https://gisanglee.github.io/web-porfolio/

0개의 댓글