Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Cơ Sở Dữ Liệu

Cách Cấu Hình Elasticsearch Sao Lưu Snapshot Lên S3

Bài viết gốc đăng tải ngày 2 tháng 3 năm 2017 tại ObjectRocket.com/blog

Các nền tảng dữ liệu tiếp tục mở rộng và chuyển đổi, nhưng một khía cạnh dường như không bao giờ thay đổi — mọi người vẫn muốn một bản sao lưu dữ liệu! Hướng dẫn này cho thấy cách tận dụng plugin repository S3 với instance Rackspace ObjectRocket cho Elasticsearch® của bạn.

Cách Cấu Hình Elasticsearch Sao Lưu Snapshot Lên S3

Khi nền tảng dữ liệu tiếp tục mở rộng và chuyển đổi, một khía cạnh vẫn giữ nguyên — mọi người vẫn muốn bản sao lưu dữ liệu! Sự tiến hóa của công nghệ vẫn đòi hỏi quyền truy cập vào bản sao lưu để khôi phục về môi trường phát triển cục bộ, bản sao để lưu giữ hoặc tuân thủ, và các trường hợp khác. Bài viết này mô tả cách tận dụng plugin repository S3 với instance Rackspace® ObjectRocket® cho Elasticsearch.

Các thành phần của Snapshot

Snapshot Elasticsearch bao gồm ba thành phần chính: một repository, snapshot(s) và tên snapshot duy nhất. Repository chứa thông tin chi tiết về nơi và cách bạn lưu trữ snapshot. Bản sao lưu hàng đêm mặc định của ObjectRocket là loại: fs, và bản sao lưu S3 là loại: S3. Cả hai đều có cấu trúc cài đặt hơi khác nhau. Dưới đây là ví dụ về một repository:

GET /_snapshot?pretty ... { "s3_repository" : { "type" : "s3", "settings" : { "bucket" : "MYBUCKETNAME", "server_side_encryption" : "false", "region" : "us-east-1", "compress" : "false" } } } ... 

Mỗi repository hiển thị bao gồm một hoặc nhiều snapshot được liệt kê trong một mảng:

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 } }] 

Đối với tất cả các hoạt động _snapshot, bạn cần tham chiếu đúng repository, snapshot và định danh snapshot. Từ ví dụ trước, hãy sử dụng snapshot : 20170208225601 làm định danh duy nhất.

#### Gửi bản sao lưu đến S3

Thiết lập repository S3 với Elasticsearch là quy trình tương đối dễ dàng. Chỉ có một vài điều kiện tiên quyết để gửi bản sao lưu đến bucket S3 của bạn:

  1. Cài đặt plugin repository-s3.
  2. Đảm bảo cluster của bạn có thể truy cập bên ngoài đến S3.
  3. Có thông tin xác thực phù hợp (bucket, secret và key) cho S3.

Nếu bạn có instance ObjectRocket Elasticsearch, hai bước đầu tiên thường đã được thiết lập mặc định, và bạn cần có thông tin xác thực S3 cho thành phần thứ ba. Nếu bạn muốn hạn chế quy trình snapshot Elasticsearch, hãy tạo Chính Sách Tùy Chỉnh với bảng điều khiển AWS® IAM. Tài liệu Chính Sách nên trông giống như ví dụ sau (thay thế 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" 

}

Sau khi hoàn thành các điều kiện tiên quyết, bước đầu tiên là tạo repository S3 của bạn:

PUT /_snapshot/s3_repository { "type": "s3", "settings": { "bucket": "MYBUCKETNAME", "region": "us-east-1", "access_key": "KEY", "secret_key": "SECRET" } }' 

Sau khi tạo repository, bạn có thể thực hiện tất cả các hoạt động _snapshot tiêu chuẩn. Nếu bạn muốn tạo một snapshot mới, hãy truy cập endpoint sau và xác định SNAPSHOT_NAME của bạn:

PUT /_snapshot/s3_repository/SNAPSHOT_NAME?wait_for_completion=false 

Snapshot đôi khi mất một thời gian để chạy, vì vậy bạn có thể muốn kiểm tra trạng thái của một snapshot đang chạy. Sử dụng endpoint này hiển thị thêm chi tiết về bất kỳ snapshot hoặc hoạt động khôi phục nào đang chạy:

GET /_snapshot/_status 

Giả sử chúng ta đã xóa tất cả các index ngay sau khi snapshot cuối cùng hoàn thành và nhanh chóng hối hận về quyết định đó. Để khôi phục tất cả các index từ snapshot S3, hãy chạy lệnh sau:

POST /_snapshot/s3_repository/SNAPSHOT_NAME/_restore 

Nếu bạn cần khôi phục index một cách chọn lọc, hãy sửa đổi định dạng một chút. Ví dụ:

POST /_snapshot/s3_repository/SNAPSHOT_NAME/_restore { "indices": "myindex_1,myindex_2", "ignore_unavailable": true } 

Có giá trị nhắc lại rằng chỉ có một hoạt động snapshot hoặc restore có thể chạy trên một cluster tại một thời điểm. Ngoài ra, snapshot có tác động nhẹ đến hiệu suất cluster, vì vậy hãy đảm bảo chính sách sao lưu của bạn không quá 적극!

Như thường lệ, hãy liên hệ với chúng tôi nếu bạn gặp sự cố với các bước này tại support@objectrocket.com

Sử dụng tab Phản Hồi để đưa ra bình luận hoặc đặt câu hỏi. Bạn cũng có thể nhấp vào Sales Chat để trò chuyện ngay và bắt đầu cuộc hội thoại.