Elastic Search バックアップとリストア
バージョン NG 774 から、Pandora FMS は ログ 監視用に OpenSearch を組み込んでいます。このトピックはバージョン 773 およびそれ以前のバージョンにのみ有効です。
スナップショットを使用した Elasticsearch サーバからのデータ移行は比較的迅速です。まず、サーバのデータがバックアップし、後で復元できるようにリポジトリに保存します。
バックアップコピーの作成
バックアップが行われるマシンは “ソースマシン” と呼ばれ、復元が行われるマシンは “ターゲットマシン” と呼ばれます。
- ソースマシンにて
設定ファイル “elasticsearch.yml” を編集します。
vi /etc/elasticsearch/elasticsearch.yml
次の行を追加します。
path.repo: /usr/local/var/backups/
設定ファイルに追記したディレクトリを作成します。
mkdir -p /usr/local/var/backups/
ディレクトリのパーミッションとユーザを設定します。
chmod 700 /usr/local/var/backups chown elasticsearch:elasticsearch /usr/local/var/backups
サービスを再起動します。
/etc/init.d/elasticsearch restart
バックアップを作成します。
curl -XPUT http://localhost:9200/_snapshot/my_backup -d '{"type": "fs", "settings": {"compress": "true", "location": "/usr/local/var/backups/"}}}'
バックアップを圧縮します。
cd /usr/local/var/ tar -zcvf elastic_backup.tar.gz backups/
リストアを行うターゲットマシンへ、ソースマシンのバックアップファイルをコピーします。
scp -P 41122 root@<dir_ip_origin>:/root/elastic_backup.tar.gz /home/user/backup
- scp コマンドを利用するには、ソースマシンに ssh サーバがインストールされ、ターゲットマシンに ssh クライアントがインストールされている必要があります。
- インポートするマシンの ElasticSearch のバージョンがデータのエクスポートをサポートしていることが重要です。上記の例では、ターゲットマシンの ElasticSearch はソースマシンと同じもしくはそれ以上のバージョンである必要があります。そうでなければ、最初に ElasticSearch をアップデートする必要があります。
バックアップのリストア
- ターゲットマシンにて
ソースマシンでバックアップを作成するときに行ったのと同じように、設定ファイルの “elasticsearch.yml” を編集します。
vi /etc/elasticsearch/elasticsearch.yml
次の行を追加します。
path.repo: /usr/local/var/backups/
設定ファイルに追記したディレクトリを作成します。
mkdir -p /usr/local/var/backups/
ディレクトリのパーミッションとユーザを設定します。
chmod 700 /usr/local/var/backups chown elasticsearch:elasticsearch /usr/local/var/backups
サービスを再起動します。
/etc/init.d/elasticsearch restart
ソースマシンからコピーしたバックアップを展開します。
tar -xzvf /home/user/backup/elastic_backup.tar.gz -C /usr/local/var/backups
スナップショットがある場所でリポジトリを作成します。
curl -X PUT "localhost:9200/_snapshot/my_backup" -H 'Content-Type: application/json' -d' { "type": "fs", "settings": { "location": "/usr/local/var/backups" } } '
インデックスを閉じます。
curl -XPOST http://localhost:9200/< indexes_names >-*/_close
アスタリスクは、その名前 < indexes_names >
で始まるすべてのインデックスを示します。
バックアップをリポジトリにインポートします。
cp <name_snapshot.dat> my_backup_location/
ファイル名を大文字なしに変更します。
mv my_backup_location/<name_snapshot.dat> my_backup_location/snap1
インポートされます。
curl -X POST "localhost:9200/_snapshot/my_backup/snap1/_restore?wait_for_completion=true"
最後に、インデックスを再度開きます。
curl -XPOST http://localhost:9200/< indexes_names >-*/_open