انتقال داده ها
اگر می خواهید داده های Elasticsearch موجود خود را به زیرساخت جدید خود منتقل کنید، گزینه های مهاجرت را بررسی کنید. دستورالعمل هایی برای راهنمایی شما در این زمینه پیدا خواهید کرد:
انتقال داده ها از منبع اصلی
Reindexing داده ها از یک cluster Elasticsearch راه دور
بازیابی اطلاعات از یک snapshot
مهاجرت شاخص های داخلی Elasticsearch
مهاجرت از طریق فهرست مجدد از راه دور
داده های Elasticsearch خود را انتقال دهید
ممکن است به دلایلی به سرویس Elasticsearch تغییر داده باشید و احتمالاً از خود میپرسید که چگونه دادههای Elasticsearch موجود خود را به زیرساخت جدید خود وارد کنید. در کنار ایجاد آسان تعداد زیادی استقرار جدید با cluster های Elasticsearch که نیاز دارید، چندین گزینه برای انتقال داده های خود دارید. بهترین گزینه برای خود را انتخاب کنید:
داده های خود را از منبع اصلی فهرست کنید، که ساده ترین روش است و بیشترین انعطاف را برای نسخه Elasticsearch و روش مصرف فراهم می کند.
index مجدد از یک cluster راه دور، که index را از ابتدا بازسازی می کند.
بازیابی از یک snapshot، که شاخص های موجود را کپی می کند.
یکی از مزایای بسیاری از سرویس Elasticsearch این است که می توانید یک استقرار را به سرعت چرخش کنید، چیزی را امتحان کنید و سپس اگر دوست ندارید آن را حذف کنید. این انعطافپذیری آزادی آزمایش را در زمانی که cluster تولید موجود شما به کار خود ادامه میدهد، فراهم میکند.
قبل از اینکه شروع کنی
بسته به اینکه کدام گزینه را انتخاب میکنید، ممکن است محدودیتهایی داشته باشید یا نیاز به انجام مقدماتی از قبل داشته باشید.
Indexing from the source
cluster جدید باید به اندازه cluster قبلی شما یا بزرگتر باشد تا داده ها را در خود جای دهد.
Reindex from a remote cluster
cluster جدید باید به اندازه cluster قبلی شما یا بزرگتر باشد تا داده ها را در خود جای دهد. بسته به تنظیمات امنیتی خود برای
خوشه جدید باید به اندازه خوشه قبلی شما یا بزرگتر باشد تا داده ها را در خود جای دهد. بسته به تنظیمات امنیتی خود برای خوشه قدیمی، ممکن است لازم باشد به طور موقت به ترافیک TCP در پورت 9243 برای این روش اجازه دهید.
اگر cluster شما با گواهینامه خودامضا مدیریت می شود، می توانید این راهنمای مهاجرت گام به گام را دنبال کنید.
بازیابی از یک snapshot
cluster جدید باید به اندازه cluster قبلی شما یا بزرگتر باشد تا داده ها را در خود جای دهد. cluster جدید همچنین باید یک نسخه Elasticsearch باشد که با cluster قدیمی سازگار باشد (برای جزئیات، سازگاری نسخه فوری Elasticsearch را بررسی کنید). اگر قبلاً این کار را انجام نداده اید، باید با استفاده از یک مخزن که از cluster جدید قابل دسترسی است، عکس های فوری برای cluster قدیمی خود تنظیم کنید.
مهاجرت شاخص های داخلی Elasticsearch
اگر شاخصهای داخلی Elasticsearch را از یک cluster دیگر، بهویژه از فهرست kibana. یا شاخص .security مهاجرت میکنید، دو گزینه وجود دارد:
از مراحل این صفحه برای فهرست مجدد شاخص های داخلی از یک cluster راه دور استفاده کنید. مراحل نمایه سازی مجدد شاخص های داخلی و شاخص های داده ای معمولی یکسان است.
برای بازیابی شاخصهای داخلی Elasticsearch از یک snapshot، مهاجرت شاخصهای داخلی را علامت بزنید.
قبل از اینکه داده های Elasticsearch خود را انتقال دهید، نگاشت فهرست خود را در cluster جدید تعریف کنید. نگاشتهای فهرست نمی توانند در طول عملیات فهرست مجدد منتقل شوند.
نمایه از منبع
اگر هنوز به منبع داده اصلی دسترسی دارید، خارج از cluster قدیمی Elasticsearch، می توانید داده ها را از آنجا بارگیری کنید. این ممکن است سادهترین گزینه باشد که به شما امکان میدهد نسخه Elasticsearch را انتخاب کنید و از آخرین ویژگیها بهره ببرید. شما می توانید از هر روشی که می خواهید استفاده کنید - Logstash، Beats، کلاینت های Elasticsearch یا هر چیزی که برای شما بهتر است.
اگر منبع اصلی در دسترس نیست یا مشکلات دیگری دارد که آن را غیرقابل اجرا میکند، هنوز دو گزینه انتقال دیگر وجود دارد، دریافت دادهها از یک cluster راه دور یا بازیابی از یک snapshot.
فهرست مجدد از یک cluster راه دور
از طریق Elasticsearch reindex API، موجود در نسخه 5.x و جدیدتر، می توانید استقرار سرویس Elasticsearch جدید خود را از راه دور به cluster Elasticsearch قدیمی خود متصل کنید. این داده ها را از cluster قدیمی شما می کشد و آن را در cluster جدید شما فهرست می کند. ایندکس مجدد اساساً ایندکس را از ابتدا بازسازی می کند و اجرای آن می تواند منابع بیشتری داشته باشد.
به کنسول سرویس Elasticsearch وارد شوید.
یک استقرار را انتخاب کنید یا ایجاد کنید.
اگر cluster قدیمی Elasticsearch روی یک میزبان راه دور (هر نوع میزبانی قابل دسترسی از طریق اینترنت) است، یک تنظیم کاربر Elasticsearch reindex.remote.whitelist اضافه کنید:
از منوی استقرار خود، به صفحه ویرایش بروید.
در قسمت Elasticsearch گزینه Manage user settings and extensions را انتخاب کنید. برای استقرار با تنظیمات کاربر موجود، ممکن است مجبور شوید به جای آن، Edit elasticsearch.yml caret را برای هر نوع گره گسترش دهید.
تنظیمات کاربری زیر را اضافه کنید:
```r
reindex.remote.whitelist: [REMOTE_HOST:PORT]
```
جایی که REMOTE_HOST و PORT نقطه پایانی cluster Elasticsearch هستند که شما از آن دوباره فهرست میکنید، بدون پیشوند https://. این تنظیم دامنه های ["\*.io:*"، "\*.com:*"] را به طور پیش فرض می پذیرد. مثلا:
```r
reindex.remote.whitelist: [81693ca13302469c8cbca193625c941c.us-east-1.aws.found.io:9243]
```
اگر نقطه پایان راه دور شما توسط تنظیمات فهرست مجاز پیشفرض پوشش داده نمیشود، تنظیمات لیست مجاز را تنظیم کنید سپس نقطه پایان راه دور را به لیست سفید اضافه کنید.
Save changes را انتخاب کنید.
از API Console یا در برنامه کنسول Kibana، فهرست مقصد را در سرویس Elasticsearch ایجاد کنید.
فهرست را از remote cluster کپی کنید:
```r
POST _reindex
{
"source": {
"remote": {
"host": "https://REMOTE_ELASTICSEARCH_ENDPOINT:PORT",
"username": "USER",
"password": "PASSWORD"
},
"index": "INDEX_NAME",
"query": {
"match_all": {}
}
},
"dest": {
"index": "INDEX_NAME"
}
}
```
6-بررسی کنید که index جدید وجود دارد:
```r
GET INDEX-NAME/_search?pretty
```
میتوانید تنظیمات کاربر reindex.remote.whitelist را که قبلاً اضافه کردهاید حذف کنید.
# بازیابی از یک snapshot
اگر به هر دلیلی نمیتوانید به فهرست راه دور متصل شوید، مثلاً اگر در حالت غیرفعال است، میتوانید بازیابی را از آخرین snapshot کاری امتحان کنید.
## 1.در کلاستر Elasticsearch قدیمی خود، گزینه ای را برای دریافت نام سطل مخزن snapshot خود انتخاب کنید:
```r
GET /_snapshot
GET /_snapshot/_all
```
## 2. دریافت نام snapshot:
```r
GET /_snapshot/NEW-REPOSITORY-NAME/_all
```
خروجی برای هر ورودی یک "snapshot" را ارائه می دهد: مقداری که نام snapshot است.
{
"snapshots": [
{
"snapshot": "scheduled-1527616008-instance-0000000004",
...
},
...
]
}
## 3. از کنسول سرویس Elasticsearch cluster جدید Elasticsearch، مخزن snapshot را اضافه کنید. برای جزئیات، دستورالعملهای ما را برای ذخیرهسازی خدمات وب آمازون (AWS)، فضای ذخیرهسازی ابری Google (GCS)، یا ذخیرهسازی حباب Azure بررسی کنید.
اگر در حال انتقال عکس های فوری قابل جستجو هستید، نام مخزن باید در cluster های مبدا و مقصد یکسان باشد.
4.فرآیند Restore:
برای استقرار با Elastic Stack نسخه 7.2 و بالاتر:
a:Open Kibana and go to Management > Snapshot and Restore.
b:Under the Snapshots tab, you can find the available snapshots from your newly added snapshot repository. Select any snapshot to view its details, and from there you can choose to restore it.
c:Select Restore.
d:Select the indices you wish to restore.
e:Configure any additional index settings.
f:Select Restore snapshot to begin the process.
برای استقرار با Elastic Stack نسخه 7.1 و پایین تر:
```r
POST /_snapshot/REPOSITORY_NAME/SNAPSHOT_NAME/_restore?pretty
{
"indices": "*",
"ignore_unavailable": true,
"include_global_state": true
}
```
## 5.بررسی کنید که index جدید در استقرار سرویس Elasticsearch شما با این عبارت بازیابی شده است:
```r
GET INDEX_NAME/_search?pretty
```
[منبع](https://www.elastic.co/guide/en/cloud/current/ec-migrating-data.html)