일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- Data Engineering
- windows
- PYTHON
- ELK
- devtools
- filebeat
- Tutorial
- Crontab
- venv
- json
- framework
- ubuntu
- dense_vector
- node.js
- path.data
- query
- elasticsearch
- KoA
- typescript
- OPCUA
- airflow
- kibana
- 7.7.1
- DSL
- configure
- elastic
- logstash
- grok
- package.json
- CSV
- Today
- Total
Gibbs Kim's playground
[ElasticStack-10] Data Snapshot & Restore 본문
ELK 6.4.1 에서 ELK 7.6.2 로의 데이터 이동을 snapshot 기능을 활용하여 수행한 과정을 기록합니다.
기존에 데이터가 저장된 ELK 버전 정보
Elasticsearch 6.4.1 || Logstash 6.4.1 || Kibana 6.4.1
저장된 데이터 Sample (CSV file)
Kibana 6.4.1에 등록된 IndexPatterns : csv2el_seoulmetro
I. Snapshot
1) Kibana 6.4.1에서 Snapshot 수행을 위한 fs(file system) 경로(repository) 설정 (in DevTools)
POST /_snapshot/my_backup
{
"type": "fs",
"settings": {
"location": "path.repo",
"compress": true
}
}
2) elasticsearch.yml 마지막 줄에 경로 설정 (과정 1)의 location 항목을 지정해주는 과정)
# something exists above about elasticsearch.yml initial settings
## directory of path.repo is example
path.repo: ["elasticsearch/backup"]
경로를 설정한뒤에 elasticsearch를 재시작 해줘야하고, 지정한 디렉토리의 접근 권한도 확인하여야 한다. (Linux 계열이라면 해당 부분 확인 필수)
3) Snapshot 실행
# PUT /SNAPSHOT_CMD/SNAPSHOT_OBJ?SNAPSHOT_SEQ_COMPLETE_OR_WAIT_OPTION
PUT /_snapshot/my_backup/snapshot_1?wait_for_completion=true
{
"ignore_unavailable" : true,
"include_global_state" : true
}
## 모든 인덱스를 대상으로 snapshot 생성
## 만약, 특정인덱스(Ex: index_1)만 지정하고자 한다면 다음 옵션을 추가해준다.
## "indices": $(index_1)
해당 과정 실행 후 'path.repo' 아래에 Elasticsearch indices 생성
4) 생성된 Snapshot 확인
GET /_snapshot/backup/snapshot_1
II. Restore
과정 I. 에서 생성한 indices 폴더를 임의의 경로(path.repo)로 복사하여 진행하였음.
(Ex: ES_HOME/elasticsearch-7.6.2/backup)
1) Snapshot 경로(repository) 설정
POST /_snapshot/my_backup
{
"type": "fs",
"settings": {
"location": "path.repo",
"compress": true
}
}
path.repo는 ES_HOME/elasticsearch-7.6.2/backup와 동일
2) repository path 설정 (in elasticsearch.yml)
# basic options above about elasticsearch 7.6.2
path.repo: [ES_HOME/elasticsearch-7.6.2/backup"]
3) 데이터 resotre
POST /_snapshot/my_backup/snapshot_1/_restore
{
"indices": "index_1,index_2",
"ignore_unavailable": true,
"include_global_state": true,
"rename_pattern": "index_(.+)",
"rename_replacement": "restored_index_$1"
}
"indices" 옵션은 특정 인덱스를 복원할 때 사용
index_1 : snapshot을 수행한 쪽의 인덱스 명
index_2 : restore를 수행할 쪽의 인덱스 명
중복되는 index가 없다면 해당 옵션 무시해도 상관없음
4) 완료 후, Kibana에서 Index pattens를 생성한 후의 결과 예시 (in version 7.6.2)
'Tech 기록지 > Elastic Stack' 카테고리의 다른 글
[ElasticStack-12] jdk download with wget command on Linux (0) | 2020.06.05 |
---|---|
[ElasticStack-11] Elasticsearch 외부 접속 on (Windows & Linux) (0) | 2020.06.04 |
[ElasticStack-9] CSV file 한글 내용 logstash 업로드 (convert utf-8 encoding) (0) | 2020.06.03 |
[ElasticStack-8] Elasticsearch indexing json through Logstash (0) | 2020.05.29 |
[ElasticStack-7] Dense Vector in Elasticsearch (0) | 2020.04.29 |