این مقاله کامل نیست!!!
Snapshot in ElasticSearch
?
در واقع Snapshot در الاستیک سرچ به معنای بکاپ گرفتن از Cluster در حال اجرا می باشد که می توان از کل کلاستر یا یک Index خاص بکاپ گرفت و Snapshot می تواند به شکل لوکال یا File System یا به شکل Remote ذخیره شود.
?
عملکرد امنیتی در کیبانا
زمانی که شما برای اولین بار کیبانا را راه اندازی می کنید، هیچ گونه عملکرد امنیتی در آن وجود ندارد. برای اینکه سطوح امنیتی را در آن فعال کنید، اقداماتی که باید انجام بدهید رو برایتان شرح می دهیم:
اولین اقدام این است که در فایل elasticsearch.yml دستور زیر را قرار دهید).این دستورات را در تمام الاستیک سرچ قرار می دهید)
Ø xpack.security.enabled: true
?
بعد از این کار الاستیک سرچ و کیبانا را مجدد راه اندازی (restart) می کنید که تنظیمات اعمال شود. حالا پسورد تنظیمات الاستیک سرچ (فایلelasticsearch-7.14.1 پوشه bin فایل elasticsearch-setup-passwords ( را به صورت دستی اجرا می کنیم تا نام کاربری و پسوردهای مربوط به ادمین را خودمان قرار بدهیم.
Ø ./elasticsearch-setup-passwords auto
بعد از اینکه نام کاربری و پسوردها رو مشخص کردیم در کیبانا در پوشه configفایل kibana.yml دو مورد رو تغییر می دهیم
Ø Elasticsearch.username: “elastic”
Ø Elasticsearch.password: “123456”
?
زمانی که اجرا می کنیم در این مرحله از ما نام کاربری و پسورد برای superuser میخواد که اطلاعات مربوطه را قرار می دهیم. از این به بعد هر زمان که وارد الاستیک سرچ ها شویم نیاز به نام کاربری و پسورد داریم.
?
چگونه snapshot ایجاد کنیم
این راهنما به شما کمک می کند که چگونه از یک کلاستر در حال اجرا بکاپ بگیرید. بعداً می توانید یک بکاپ را برای بازیابی یا انتقال داده های آن بازیابی کنید. در این راهنما، یاد خواهید گرفت که چگونه:
ü ایجاد و نگهداری بکاپ با مدیریت چرخه عمر snapshot (SLM) به صورت خودکار
ü به صورت دستی یک بکاپ بگیرید
ü نظارت بر پیشرفت یک بکاپ
ü حذف یا لغو یک بکاپ
ü از فایل های پیکربندی کلاستر پشتیبان تهیه کنید
این راهنما همچنین نکاتی را برای ایجاد بکاپ حالت کلاستر اختصاصی و گرفتن بکاپ در بازه های زمانی مختلف ارائه می دهد.
نکته مهم: پیش نیازها برای استفاده از ویژگی Kibana Snapshot and Restore، باید مجوزهای زیر را داشته باشید(که بخش عملکرد امنیتی در کیبانا به شما توضیح داده شد):
امتیازات Cluster: monitor، manager_slm، cluster:admin/snapshot، و cluster:admin/repository امتیاز Index همه در نمایه مانیتور
:(بکاپ گیری و بازگردانی) Snapshot and restore
یک نسخه پشتیبان از یک کلاستر الاستیک سرچ اجرا می شود. می توانیم از بکاپ گیری برای موارد زیر استفاده کنیم:
ü به طورمنظم بکاپ گیری از کلاستر نسخه پشتیبان تهیه کنیم، بدون اینکه زمان خرابی نداشته باشد.
ü بازگردانی اطلاعات بعد از حذف شدن یا مشکل سخت افزاری داشتن
ü انتقال داده بین کلاسترها
ü کاهش هزینه ذخیره سازی با استفاده از بکاپ گیری فایل جستجو درسطح داده سرد و منجمد
الاستیک سرچ ذخیره بکاپ گیری را در یک مکان ذخیره سازی خارج از کلاستر به نام مخزن(منابع) بکاپ گیری ذخیره می کند. قبل از اینکه بخواهیم عمل بکاپ گیری یا بازگردانی را انجام دهیم، باید یک مخزن بکاپ گیری درکلاستر ثبت کنیم. الاستیک سرچ از چندین نوع مخزن با ذخیره سازی ابری پشتیبانی می کند، که شامل:
ü AWS S3
ü Google Cloud Storage (GCS)
ü Microsoft Azure
بعد از ثبت یک مخزن بکاپ گیری، می توانیم از مدیریت چرخه حیات بکاپ گیری (SLM) برای گرفتن و مدیریت خودکار بکاپ گیری استفاده کنیم. سپس می توانیم یک بکاپ گیری را برای بازیابی یا انتقال داده های آن بازیابی کنیم.
کلیت کار بدین صورت است که ابتدا باید Repository تعیین و سپس عمل Snapshot انجام شود. که این عمل بکاپ گیری می تواند دوره ای باشد.
Snapshot on File System
یکی از روش های بکاپ گیری این است که ابتدا از محتوای Cluster بکاپ گرفته شود و سپس روی سرور دیگر کپی شود و در آخر عمل Restore انجام شود. در واقع ابتدا باید یک Repository تعیین و سپس می توان چندین Snapshot را داخل آن نگه داشت یا هرحالتی که مدنظر باشد.
خب در ابتدا برای ذخیره سازی فایلهای بکاپ، باید مراحل زیر انجام شود:
· ابتدا با دستور زیر فولدر را ایجاد و بعد به آن Permissions داده شود.
Ø Mkdir backup در مسیر /home/admin/elasticsearch-7.14.1/backup
Ø chmod a+w /home/admin/elasticsearch-7.14.1/backup
?
· حال فایل elasticsearch.yml رو با دستور sudo nano /etc/elasticsearch/elasticsearch.yml باز کرده و مسیر تعیین شده را در آن قرار داده شود:
?
· ( در قسمت various آخرین سطر قرار می دهیم.)
Ø path.repo: "/home/admin/elasticsearch-7.14.1/backup’’
?
· در آخر سرویس Elasticsearch باید Restart شود.
Ø sudo service elasticsearch restart
?
?
1- ایجاد یک Repository:
خب ابتدا باید Repository ایجاد کنیم که مطابق کد زیر است:
Ø curl -XPUT "http://localhost:9200/_snapshot/backups" -H 'Content-Type: application/json' -d'{ "type": "fs","settings": {"location":"/home/admin/elasticsearch-7.14.1/backup/backups"}}'
نام Repositoryمطابق کد بالا backups نام گذاری شده است. typeرا fs می گذاریم که به معنی File Systemهست و منظور از location مسیر ذخیره فایل بکاپ هست که قبلا در فایل elasticsearch.yml تنظیم شده بود.
همچنین می توان بررسی کرد که Repositoryایجاد شده است یا نه:
Ø curl -XGET http://localhost:9200/_snapshot/backups?pretty
2- ذخیره کردن Snapshpot:
حال می توان عمل بکاپ یا snapshot را آغاز کرد:
Ø curl -XPUT "http://localhost:9200/_snapshot/backups/snapshot-1?wait_for_completion=true" -H 'Content-Type:application/json' -d'{"indices": "book_v1,book_v2", "include_global_state": false}'
مطابق مثال بالا یک snapshot به نام snapshot_1 در backups ذخیره خواهد شد. مقدار indices شامل نام یک یا چند index موجود در Cluster را بازگو می کند.
3- Restoring:
و در آخر برای Restore کردن کافیست کد زیر اجرا شود:
Ø curl -XPOST "http://localhost:9200/_snapshot/backups/snapshot-1/_restore"
Snapshot contents (محتویات بکاپ گیری):
به طور پیش فرض، یک بکاپ گیری از یک کلاسترشامل حالت های مختلف، تمام جریان های اطلاعات معمولی و همه شاخص های معمولی است. حالت کلاستر شامل:
ü تنظیمات کلاستر پایدار
ü قالب های شاخص
ü الگوهای شاخص قدیمی
ü خطوط تولید
ü سیاست ILM
بکاپ گیری بعد از نسخه 7.12.0
همچنین می توانیم فقط از جریان های داده یا شاخص های خاص در کلاستر بکاپ گیری بگیرید. یک بکاپ گیری که شامل یک جریان داده یا فهرست به طور خودکار شامل نام مستعار آن است. زمانی یک بکاپ گیری را بازیابی می کنید، می توانیم انتخاب کنیم که ایا این نام های مستعار بازیابی شوند یا نه.
بکاپ گیری حاوی یا پشتیبان گیری نمی شوند:
ü تنظیمات کلاستر گذرا
ü مخازن بکاپ گیری ثبت شده
ü فایل های پیکربندی گره
ü فایل های پیکربندی امنیتی
حالات ویژگی
وضعیت ویژگی شامل شاخص ها و جریان های داده ای است که برای ذخیره پیکربندی ها،تاریخچه و سایر داده ها برای یک ویژگی الاستیک، مانند امنیت الاستیک سرچ یا کیبانا استفاده می شوند.
حالات ویژگی معمولا شامل یک یا چند شاخص سیستم یا جریان داده سیستم است. همچنین ممکن است شامل شاخص های معمولی و جریان های داده مورد استفاده توسط این ویژگی باشد. به عنوان مثال، یک وضعیت ویژگی ممکن است شامل یک شاخص معمولی باشد که حاوی تاریخچه اجرای ویژگی است. ذخیره این تاریخچه در یک نمایه معمولی به شما امکان می دهد راحت تر آن را جستجو کنید.
در الاستیک سرچ نسخه 8.0 و نسخه های جدیدتر، حالت های ویژگی تنها را برای پشتیبان گیری و بازیابی شاخص های سیستم و جریان های داده سیستم هستند.
نحوه کار بکاپ گیری
برای صرفه جویی در فضای ذخیره سازی و کاهش هزینه های انتقال شبکه، بکاپ گیری به طور خودکار حذف می شوند. برای پشتیبان گیری از یک نمایه، یک بکاپ گیری از بخش های نمایه کپی می کند و آنها را در مخزن بکاپ گیری ذخیره می کند. از آنجایی که بخش ها تغییر ناپذیر هستند، بکاپ گیری فقط باید هر بخش جدید را که از اخرین بکاپ گیری مخزن ایجاد شده است، کپی کند.
هر بکاپ گیری نیز از نظر منطقی مستقل است. هنگامی که یک بکاپ گیری را حذف می کنید، الاستیک سرچ فقط بخش هایی را که منحصراً توسط ان عکس فوری استفاده می شود حذف می کند. الاستیک سرچ بخش های استفاده شده توسط سایر بکاپ گیری را در مخزن حذف نمی کند.
بکاپ گیری و تخصیص شارد
یک بکاپ گیری بخش هایی را شاردهای اصلی شاخص کپی می کند. زمانی که یک بکاپ گیری را شروع می کنید، الاستیک سرچ بلافاصله شروع به کپی کردن بخش های هر شارداصلی موجود می کند. اگر یک شارد در حال شروع یا جا به جایی باشدف الاستیک سرچ قبل از کپی بخش های شارد منتظر می ماند تا این فرآیندهای تکمیل شوند. اگر یک یا چند شارد اصلی در دسترس نباشند، تلاش بکاپ گیری با شکست مواجه می شود.
زمانی که یک بکاپ گیری شروع به کپی کردن بخش خای یک شارد می کند، الاستیک سرچ ان را به گره دیگری منتقل نمی کند. حتی اگر تعادل مجدد با تنظیمات تخصیص شارد معمولاً باعث تخصیص مجد شود. الاستیک سرچ تنها پس از اتمام کپی کردن داده های شارد، شارد را جا به جا می کند.
زمان شروع و پایان بکاپ گیری
یک بکاپ گیری یک کلاستر را دریک نقطه زمانی دقیق نشان نمی دهد. در عوض، هر بکاپ گیری شامل زمان شروع و پایان است. بکاپ گیری نمایانگر داده های هر شارد در نقطه ای بین این دو زمان است.
سازگاری بکاپ گیری
برای بازیابی یک بکاپ گیری به یک کلاستر، نسخه ای مربوط به بکاپ گیری، کلاستر و هر شاخص بازیابی شده باید سازگار باشند.
سازگاری نسخه بکاپ گیری
نمی توانیم یک بکاپ گیری را به نسخه قبلی الاستیک سرچ بازیابی کینم. به عنوان مثال، نمی توانیم یک بکاپ گیری گرفته شده در نسخه 7.6.0 را به یک کلاستر با نسخه 7.5.0 بازیابی کنید.
سازگاری شاخص
هر نمایه ای که از یک بکاپ گیری بازیابی می کنید باید با نسخه کلاستر فعلی نیز سازگار باشد. اگر سعی کنید یک فهرست ایجاد شده در یک نسخه ناسازگار را بازیابی کنید، تلاش برای بازیابی ناموفق خواهد بود.
?
نمی تواینیم یک فهرست را به نسخه قبلی الاستیک سرچ بازیابی کنیم. به عنوان مثال، شما نمی توانید یک فهرست ایجاد شده در 7.6.0 را به یک کلاستر دارای نسخه 7.5.0 بازیابی کنیم. یک بکاپ گیری سازگار می تواند شامل شاخص هایی باشد که در یک نسخه ناسازگار قدیمی تر ایجاد شده اند.
بک راه حل، ابتدا می توانیم ایندکس را به کلاستر دیگری بازیابی کنیم که آخرین نسخه الاستیک سرچ را اجرا می کند که با ایندکس و کلاستر فعلی شما سازگار باشد. سپس می توانیم از REINDEX-FROM-REMOTE برای بازسازی ایندکس در کلاستر فعلی خود استفاده کنیم. ایندکس مجدد از راه دور تنها در صورتی امکان پذیر است که منبع ایندکس فعال باشد.
نمایه سازی مجدد از راه دور می تواند به طور قابل توجهی بیشتر از بازیابی یک بکاپ گیری طول بکشد. قبل از شروع، فهرست مجدد را از فرآیند راه دور با زیر مجموعه ای از داده ها آزمایش کنیم تا زمان مورد نیاز خود را برآورد کنیم.
سایر روش های پشتیبان گیری
گرفتن یک بکاپ گیری تنها راه قابل اعتماد و پشتیبانی شده برای پشتیبان گیری از یک کلاستر است. نمی توانیم از یک کلاستر الاستیک سرچ با کپی کردن دایرکتوری های داده گره های آن نسخه پشتیبان تهیه کنید. هیچ روش پشتیبان شده ای برای بازیابی اطلاعات ازیک نسخه پشتیبان بر سطح سیستم وجود ندارد. اگر بخواهیم یک کلاستر را از چنین پشتیبان گیری بازیابی کنیم، ممکن است با گزارش هایی مبنی بر خرابی با مفقود شدن فایل ها با سایر ناهماهنگی های داده ها