티스토리 뷰
0. 나의 설정
- Elasticsearch 6.1.1 사용
- path : /data1/elasticsearch-6.1.1 : 이부분은 변경해서 설정하세요.
1. Elasticsearch 환결설정
- vim config/jvm.options
-Des.allow_insecure_settings=true #추가
- vim config/elasticsearch.yml
- network.host: ["나의IP", "localhost"]
2. S3 플러그인 설치
/data1/elasticsearch-6.1.1/bin/elasticsearch-plugin install repository-s3
3. S3 백업 폴더 지정하기
curl --user ID:PW --header "content-type: application/JSON" -XPUT 'localhost:9200/_snapshot/s3_snapshot?pretty' -d '{
"type": "s3",
"settings": {
"bucket": "elasticsearch6-backup",
"region": "ap-northeast-2",
"access_key": "XXXXXXXXXXXXXXXXXXX",
"secret_key": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"compress": true
}
}'
- localhost:9200/_snapshot/${name} : name은 스냅샵 이름 위 예제는 s3_snapshot로 사용
- bucket : S3 버킷이름
- region : 리전이름
- access_key : AWS 접속 가능한 키
- secret_key : AWS 접속 가능한 키
4. S3 백업하기
curl --user ID:PW --header "content-type: application/JSON" -XPUT 'localhost:9200/_snapshot/s3_snapshot/bizrpt_20180424?pretty=true&wait_for_completion=true' -d '{
"indices": "bizrpt_auth,bizrpt_category,bizrpt_market,bizrpt_report",
"ignore_unavailable": true,
"include_global_state": false
}'
- localhost:9200/_snapshot/${name}/${backup_key} : name은 스냅샷 이름, backup_key는 복구할때 키기반으로 복구.
- indices : 백업 index 지정
5. 백업 확인하기
# 백업 이름 리스트 확인
curl --user ID:PW -XGET 'http://localhost:9200/_snapshot?pretty'
# 백업 키 리스트 확인
curl --user ID:PW -XGET 'http://localhost:9200/_snapshot/s3_snapshot/_all?pretty'
6. 백업 삭제하기
#백업 이름 삭제
curl --user ID:PW -XDELETE 'http://localhost:9200/_snapshot/s3_snapshot'
#백업 이름에대한 키 삭제
curl --user ID:PW -XDELETE 'http://localhost:9200/_snapshot/s3_snapshot/bizrpt'
7. 복구하기
#전체 복구하기
curl --user ID:PW --header "content-type: application/JSON" -XPOST 'localhost:9200/_snapshot/s3_snapshot/bizrpt_20180424/_restore?wait_for_completion=true'
#인덱스 지정 복구하기
curl --user ID:PW --header "content-type: application/JSON" -XPOST 'localhost:9200/_snapshot/s3_snapshot/bizrpt_20180424/_restore?wait_for_completion=true' -d '{
"indices": "bizrpt_market,bizrpt_category,bizrpt_auth,bizrpt_report_v1",
"ignore_unavailable" : "true",
"include_global_state" : false,
"rename_pattern": "bizrpt_(.+)",
"rename_replacement": "restored_bizrpt_$1"
}'
- rename_pattern : 패턴을 지정하여
- rename_replacement : 이름을 바꿔서 복원할수 있다.
8. 참고사항
- 엘라스틱서치의 백업은 증분 백업. ( 직접 서버 구축하여 이용시 s3에 백업하자 )
9. 기타 추가자료
- 백업 shell 만들기 : 키는 겹치면 안됨으로 날짜+시간값을 얻어와서 키로 지정.
dd=`date '+%Y%m%d%H%M'`
str="curl --user ID:PW --header \"content-type: application/JSON\" -XPUT 'localhost:9200/_snapshot/s3_snapshot/bizrpt_${dd}?pretty=true&wait_for_completion=true' -d '{
\"indices\": \"bizrpt_auth,bizrpt_category,bizrpt_market,bizrpt_report\",
\"ignore_unavailable\": true,
\"include_global_state\": false
}'"
echo $str
echo $str | sh
- 오래된 백업 키들 제거 shell : 2 week ago 으로 지정
dbs=`curl --user ID:PW -XGET 'http://localhost:9200/_snapshot/s3_snapshot/_all?pretty' --stderr - |grep \"snapshot\" |sed -e 's/snapshot//g' | tr -d '", :'`
dd=`date '+%Y%m%d0000' -d '2 week ago'`
echo $dd
for db in $dbs; do
echo run ${db}
if [ $db \< $dd ]
then
str="curl --user ID:PW -XDELETE 'http://localhost:9200/_snapshot/s3_snapshot/${db}'"
echo $str
echo $str |sh
fi
done
10. 마치며..
- 저도 완벽히 알고한게 아니며 헤딩하면서 하고있습니다.
- 잘못된점이나 개선사항은 알려주시면 감사하겠습니다.
- Total
- Today
- Yesterday
- electron-updater
- 엘라스틱서치 복구
- Restore
- 엘라스틱서치 백업
- 팀룸
- activemq
- real
- 2factor
- 봇
- auto update
- AmazonMQ
- AWS
- puppeteer
- bitbucket
- MariaDB Galera
- 오픈API
- electron
- elasticsearch mapping
- 마리아
- ElasticSearch
- 자동업데이트
- elasticsearch mapping change
- backup
- 네이트온
- maria
- mqtt
- 2FA
- 브라우저 제어
- Redis
- 브라우저봇
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |