ElasticSearchは、マニュアル(英語)がしっかりしてるので、そっちを参考にしてください。
マニュアル(本家):https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html
環境
- CentOS 7.1
- ElasticSearch 5.6.2
※ElasticSearch 6.xでは、curlに「 -H 'Content-Type: application/json'」を付ける必要があります。
目次
スナップショット
snapshotを使う前に、事前準備を行ってください。
また、backupしたsnapshot自体をリストアするときも同様な手順が必要です。
■ 事前準備
1)snapshot用のディレクトリを作成
所有者と所有グループはelasticsearchユーザ、elasticsearchグループを指定する。
コマンド
sudo -s mkdir /var/www/backup/elasticsearch
sudo -s chown -R elasticsearch:elasticsearch /var/www/backup/elasticsearch
2)elasticsearch.ymlにpath.repoを登録する
コマンド
sudo -s vi /etc/elasticsearch/elasticsearch.yml
path.repo: ["/var/www/backup/elasticsearch"]
3)elasticsearch再起動
※環境は、CentOS7。
コマンド
sudo -s systemctl restart elasticsearch
4)Elasticsearchにリポジトリを登録
今回はサブディレクトリとしてsnapshot1を指定している。
elasticsearch
curl -XPUT 'http://localhost:9200/_snapshot/snapshot1' -d '{
"type": "fs",
"settings": {
"location": "/var/www/backup/elasticsearch/snapshot1",
"compress": true
}
}'
■ snapshot作成
elasticsearch
curl -XPUT 'http://localhost:9200/_snapshot/snapshot1/snapshot-2017.10.27?wait_for_completion=true' -d '{
"indices": "hoge_index",
"ignore_unavailable": true,
"include_global_state": false
}'
■ snapshotのリストア
elasticsearch
curl -XPOST 'http://localhost:9200/_snapshot/snapshot1/snapshot-2017.10.27/_restore?wait_for_completion=true' -d '{
"indices": "hoge_index"
}'
■ snapshotリポジトリのリストを表示
elasticsearch
curl -XGET 'http://localhost:9200/_snapshot/'
■ snapshot1に登録されているsnapshotのリストを表示する
elasticsearch
curl -XGET 'http://localhost:9200/_snapshot/snapshot1/*'
■ snapshotの削除
elasticsearch
curl -XDELETE 'http://localhost:9200/_snapshot/snapshot1/snapshot-2017.10.27'
■ snapshotリポジトリの削除
snapshotリポジトリを削除する前に、snapshotを削除してからリポジトリを削除してください。
elasticsearch
curl -XDELETE 'http://localhost:9200/_snapshot/snapshot1'
参考
- https://qiita.com/datake914/items/2313894c684a7cba992c (snapshotについて)