- [Elasticsearch] 백업 설정하기2025년 02월 18일
- 31514
- 작성자
- 2025.02.18.:42
최근에 개인적으로 진행하고 있는 팀 프로젝트에서 사용하는 Elasticsearch의 모든 인덱스가 알 수 없는 이유로 모두 삭제되었다.
다행히 복구할 수 있는 방법을 찾게 되었지만, snapshot을 활용하여 복구할 수 없어서 불편한 경험을 했다.
이번 기회에 데이터 스토리지 복구에 대한 중요성을 몸소 깨닫고, elasticsearch의 스냅샷 설정에 대해 적어두려고 한다.
단, 내가 사용하고 있는 elasticsearch 서버는 도커로 운영되지 않음을 밝힌다.
snapshot 파일 저장 경로 설정
파일 저장 경로 생성
`sudo mkdir -p /mnt/elasticsearch-backup`
권한 할당
`sudo chown -R elasticsearch:elasticsearch /mnt/elasticsearch-backup`
elasticsearch.yml 파일 수정
코드 추가
`path.repo: ["/mnt/elasticsearch-backup"]`
Elasticsearch 재시작
`sudo systemctl restart elasticsearch`
스냅샷 저장소 등록
curl -X PUT "http://<es 주소>/_snapshot/my_backup" -H "Content-Type: application/json" -d ' { "type": "fs", "settings": { "location": "/mnt/elasticsearch-backup", "compress": true } }'
등록 확인
`curl -X GET "http://116.37.91.221:9200/_snapshot/my_backup?pretty"`
스냅샷 생성
전체 인덱스에 대한 스냅샷 생성
curl -X PUT "http://<ES 주소>/_snapshot/my_backup/snapshot_20250212?wait_for_completion=true" -H "Content-Type: application/json" -d ' { "indices": "*", "ignore_unavailable": true, "include_global_state": false }'
생성 확인
`curl -X GET "http://116.37.91.221:9200/_snapshot/my_backup/snapshot_20250212?pretty"`
SLM(Snapshot Lifecycle Management) 설정
curl -X PUT "http://<ES 주소>/_slm/policy/nightly-snapshots" -H "Content-Type: application/json" -d ' { "schedule": "0 0 2 * * ?", "name": "snapshot", "repository": "my_backup", "config": { "indices": "*", "ignore_unavailable": true, "include_global_state": false } }'
설정 확인
`curl -X GET "http://116.37.91.221:9200/_slm/policy/nightly-snapshots?pretty"`
'ELK' 카테고리의 다른 글
새로운 로그를 위해 Filebeat 도입하기 (0) 2024.12.20 Elasticsearch에 저장된 데이터 확인하기 (1) 2024.12.19 샘플 로그 파일 업로드하기 (0) 2024.12.19 Elastic Stack 실행하고 확인하기 (0) 2024.12.19 Elastic 공식 문서로 살펴보는 docker-compose 파일 (0) 2024.12.18 다음글이전글이전 글이 없습니다.댓글