Bagaimana cara memindahkan data Elasticsearch dari satu server ke server lainnya?
Saya memiliki server A yang menjalankan Elasticsearch 1.1.1 pada satu node lokal dengan beberapa indeks. Saya ingin menyalin data itu ke server B yang menjalankan Elasticsearch 1.3.4
Prosedur sejauh ini
- Matikan ES di kedua server dan
- scp semua data ke dir data yang benar di server baru. (data tampaknya terletak di / var / lib / elasticsearch / di kotak debian saya)
- ubah izin dan kepemilikan ke elasticsearch: elasticsearch
- mulai server ES baru
Ketika saya melihat cluster dengan plugin kepala ES, tidak ada indeks yang muncul.
Sepertinya datanya tidak dimuat. Apakah saya melewatkan sesuatu?
elasticsearch
Jabb
sumber
sumber
Jawaban:
Jawaban yang dipilih membuatnya terdengar sedikit lebih kompleks daripada yang sebenarnya, berikut ini yang Anda butuhkan (instal npm terlebih dahulu di sistem Anda).
Anda dapat melewati perintah elasticdump pertama untuk salinan berikutnya jika pemetaan tetap konstan.
Saya baru saja melakukan migrasi dari AWS ke Qbox.io dengan yang di atas tanpa masalah.
Rincian lebih lanjut di:
https://www.npmjs.com/package/elasticdump
Halaman bantuan (per Feb 2016) disertakan untuk kelengkapan:
sumber
Gunakan ElasticDump
1) yum install epel-release
2) yum instal nodejs
3) yum install npm
4) npm instal elasticdump
5) cd node_modules / elasticdump / bin
6)
sumber
Anda dapat menggunakan fitur snapshot / restore yang tersedia di Elasticsearch untuk ini. Setelah Anda menyiapkan penyimpanan snapshot berbasis Filesystem, Anda dapat memindahkannya di antara cluster dan memulihkan di cluster yang berbeda
sumber
Saya mencoba ubuntu untuk memindahkan data dari ELK 2.4.3 ke ELK 5.1.1
Berikut langkah-langkahnya
di direktori home, goto
jalankan perintahnya
Jika Anda membutuhkan http auth dasar, Anda dapat menggunakannya seperti ini:
Salin indeks dari produksi:
sumber
sudo apt-get install -y software-properties-common
sebelum add-apt-repositoryAda juga
_reindex
opsiDari dokumentasi:
POST _reindex { "source": { "remote": { "host": "https://REMOTE_ELASTICSEARCH_ENDPOINT:PORT", "username": "USER", "password": "PASSWORD" }, "index": "INDEX_NAME", "query": { "match_all": {} } }, "dest": { "index": "INDEX_NAME" } }
sumber
Jika Anda dapat menambahkan server kedua ke cluster, Anda dapat melakukan ini:
Ini hanya akan berfungsi jika jumlah pengganti sama dengan jumlah node.
sumber
Jika ada yang mengalami masalah yang sama, saat mencoba membuang dari elasticsearch <2.0 ke> 2.0, Anda perlu melakukan:
sumber
Saya selalu berhasil dengan hanya menyalin direktori / folder indeks ke server baru dan memulai ulang. Anda akan menemukan id indeks dengan melakukan
GET /_cat/indices
dan folder yang cocok dengan id inidata\nodes\0\indices
(biasanya di dalam folder elasticsearch Anda kecuali Anda memindahkannya).sumber
Kita dapat menggunakan
elasticdump
ataumultielasticdump
mengambil backup dan mengembalikannya, Kita dapat memindahkan data dari satu server / cluster ke server / cluster lain.Temukan jawaban rinci yang telah saya berikan di sini .
sumber
Jika Anda hanya perlu mentransfer data dari satu server elasticsearch ke server lain, Anda juga dapat menggunakan elasticsearch-document-transfer .
Langkah:
$ npm install elasticsearch-document-transfer.
config.js
config.js
options.js
$ node index.js
sumber
Anda dapat mengambil snapshot dari status lengkap cluster Anda (termasuk semua indeks data) dan memulihkannya (menggunakan API pemulihan) di cluster atau server baru.
sumber
Jika Anda tidak ingin menggunakan elasticdump seperti alat konsol. Anda dapat menggunakan skrip node.js berikutnya
sumber