मूल रूप से 2 मार्च, 2017 को ObjectRocket.com/blog पर प्रकाशित
डेटा प्लेटफ़ॉर्म का विस्तार और परिवर्तन जारी है, लेकिन एक पहलू कभी नहीं बदलता - हर कोई अभी भी अपने डेटा की बैकअप कॉपी चाहता है! यह वॉकथ्रू आपको दिखाता है कि अपने रैकस्पेस ObjectRocket for Elasticsearch® इंस्टेंस के साथ S3 रिपॉजिटरी प्लगइन का लाभ कैसे उठाया जाए।
जैसे-जैसे डेटा प्लेटफ़ॉर्म का विस्तार और परिवर्तन होता है, एक पहलू समान रहता है - हर कोई अभी भी अपने डेटा की बैकअप कॉपी चाहता है! प्रौद्योगिकी का विकास अभी भी स्थानीय विकास वातावरण में पुनर्स्थापित करने, सुरक्षित रखने या अनुपालन के लिए एक प्रति, और अन्य मामलों के लिए बैकअप तक पहुंच की मांग करता है। यह पोस्ट बताता है कि अपने रैकस्पेस® ObjectRocket® for Elasticsearch इंस्टेंस के साथ S3 रिपॉजिटरी प्लगइन का लाभ कैसे उठाया जाए।
स्नैपशॉट घटक
Elasticsearch स्नैपशॉट में तीन मुख्य घटक होते हैं: एक रिपॉजिटरी, स्नैपशॉट, और एक अद्वितीय स्नैपशॉट नाम। एक रिपॉजिटरी में इस बारे में विशिष्ट विवरण होते हैं कि आप स्नैपशॉट को कहां और कैसे संग्रहीत करते हैं। आपके डिफ़ॉल्ट नाइटली ObjectRocket बैकअप प्रकार के हैं: fs, और S3 बैकअप प्रकार के हैं: S3। इन दोनों की सेटिंग संरचना थोड़ी अलग है। यहां एक रिपॉजिटरी का उदाहरण स्निपेट दिया गया है:
GET /_snapshot?pretty ... { "s3_repository" : { "type" : "s3", "settings" : { "bucket" : "MYBUCKETNAME", "server_side_encryption" : "false", "region" : "us-east-1", "compress" : "false" } } } ... प्रत्येक प्रदर्शित रिपॉजिटरी में एक सरणी में सूचीबद्ध एक या अधिक स्नैपशॉट होते हैं:
GET /_snapshot/s3_repository/_all?pretty [... { "snapshot" : "20170208225601", "uuid" : "t6R6jxLJTIueQizv9clJYg", "version_id" : 5010499, "version" : "5.1.1", "indices" : [ ".triggered_watches", ".watch_history-2016.10.26", "elastalert_status", "coffee-2016.10.301", ".kibana", "coffee-2016.10.305", "coffee-2016.10.304", "coffee-2016.10.303", "coffee-2016.10.302", ".watches" ], "state" : "SUCCESS", "start_time" : "2017-02-09T06:56:01.191Z", "start_time_in_millis" : 1486623361191, "end_time" : "2017-02-09T06:56:12.179Z", "end_time_in_millis" : 1486623372179, "duration_in_millis" : 10988, "failures" : [ ], "shards" : { "total" : 57, "failed" : 0, "successful" : 57 } }] सभी _snapshot ऑपरेशंस के लिए, आपको सही रिपॉजिटरी, स्नैपशॉट, और स्नैपशॉट पहचानकर्ता का संदर्भ देना होगा। पिछले उदाहरण से, अद्वितीय पहचानकर्ता के रूप में snapshot : 20170208225601 का उपयोग करें।
#### S3 पर बैकअप भेजना
Elasticsearch के साथ अपना S3 रिपॉजिटरी सेट करना एक अपेक्षाकृत आसान प्रक्रिया है। अपने बैकअप को अपने S3 बकेट पर भेजने के लिए केवल कुछ पूर्वापेक्षाएँ हैं:
repository-s3प्लगइन इंस्टॉल करें।- सुनिश्चित करें कि आपका क्लस्टर बाहरी रूप से S3 तक पहुंच सकता है।
- S3 के लिए उचित क्रेडेंशियल (बकेट, सीक्रेट, और कुंजी) हों।
यदि आपके पास ObjectRocket Elasticsearch इंस्टेंस है, तो पहले दो चरण डिफ़ॉल्ट रूप से होने चाहिए, और तीसरे घटक के लिए आपको अपने S3 क्रेडेंशियल की आवश्यकता होगी। यदि आप Elasticsearch स्नैपशॉट प्रक्रिया को प्रतिबंधित करना चाहते हैं, तो AWS® IAM कंसोल के साथ एक कस्टम पॉलिसी बनाएं। पॉलिसी दस्तावेज़ निम्नलिखित उदाहरण के समान दिखना चाहिए (MYBUCKETNAME को प्रतिस्थापित करते हुए):
{ "Statement": [ { "Action": [ "s3:ListBucket", "s3:GetBucketLocation", "s3:ListBucketMultipartUploads", "s3:ListBucketVersions" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::MYBUCKETNAME" ] }, { "Action": [ "s3:GetObject", "s3:PutObject", "s3:DeleteObject", "s3:AbortMultipartUpload", "s3:ListMultipartUploadParts" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::MYBUCKETNAME/*" ] } ], "Version": "2012-10-17" }
पूर्वापेक्षाओं को पूरा करने के बाद, पहला चरण अपना S3 रिपॉजिटरी बनाना है:
PUT /_snapshot/s3_repository { "type": "s3", "settings": { "bucket": "MYBUCKETNAME", "region": "us-east-1", "access_key": "KEY", "secret_key": "SECRET" } }' रिपॉजिटरी बनाने के बाद, आप सभी मानक _snapshot ऑपरेशन कर सकते हैं। यदि आप एक नया स्नैपशॉट लेना चाहते हैं, तो निम्नलिखित एंडपॉइंट तक पहुंचें और अपना SNAPSHOT_NAME परिभाषित करें:
PUT /_snapshot/s3_repository/SNAPSHOT_NAME?wait_for_completion=false स्नैपशॉट को चलने में कभी-कभी समय लगता है, इसलिए आप इन-फ्लाइट स्नैपशॉट की स्थिति की जांच करना चाह सकते हैं। इस एंडपॉइंट का उपयोग करने से आपको वर्तमान में चल रहे किसी भी स्नैपशॉट या पुनर्स्थापना ऑपरेशन के बारे में अधिक विवरण दिखाई देगा:
GET /_snapshot/_status अब मान लें कि हमने अपने अंतिम स्नैपशॉट के पूरा होने के ठीक बाद अपने सभी इंडेक्स हटा दिए और जल्दी से अपने फैसले पर पछतावा किया। S3 स्नैपशॉट से सभी इंडेक्स को पुनर्स्थापित करने के लिए, निम्नलिखित कमांड चलाएं:
POST /_snapshot/s3_repository/SNAPSHOT_NAME/_restore यदि आपको इंडेक्स को चुनिंदा रूप से पुनर्स्थापित करने की आवश्यकता है, तो प्रारूप को थोड़ा संशोधित करें। उदाहरण के लिए:
POST /_snapshot/s3_repository/SNAPSHOT_NAME/_restore { "indices": "myindex_1,myindex_2", "ignore_unavailable": true } यह बताना उचित है कि एक समय में क्लस्टर पर केवल एक स्नैपशॉट या पुनर्स्थापना ऑपरेशन चल सकता है। इसके अलावा, स्नैपशॉट का आपके क्लस्टर पर मामूली प्रदर्शन प्रभाव पड़ता है, इसलिए सुनिश्चित करें कि आपकी बैकअप पॉलिसी बहुत आक्रामक नहीं है!
हमेशा की तरह, यदि आप इन चरणों में किसी समस्या में पड़ते हैं तो बेझिझक हमसे support@objectrocket.com पर संपर्क करें।
किसी भी टिप्पणी या प्रश्न के लिए फीडबैक टैब का उपयोग करें। आप सेल्स चैट पर क्लिक करके अभी चैट कर सकते हैं और बातचीत शुरू कर सकते हैं।