Computer >> Máy Tính >  >> Lập trình >> Cơ sở dữ liệu

Định cấu hình Elasticsearch để sử dụng S3 cho ảnh chụp nhanh

Được xuất bản lần đầu vào 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à biế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 có một bản sao lưu dữ liệu của họ! Hướng dẫn này cho bạn thấy cách tận dụng plugin kho lưu trữ S3 với Rackspace ObjectRocket cho phiên bản Elasticsearch®.

Định cấu hình Elasticsearch để sử dụng S3 cho ảnh chụp nhanh

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

Thành phần chụp nhanh

Ảnh chụp nhanh Elasticsearch bao gồm ba thành phần chính:kho lưu trữ, (các) ảnh chụp nhanh và tên ảnh chụp nhanh duy nhất. Kho lưu trữ chứa các chi tiết cụ thể về vị trí và cách bạn lưu trữ ảnh chụp nhanh. Các bản sao lưu ObjectRocket hàng đêm mặc định của bạn là loại:fs và loại dự phòng S3:S3 . Cả hai đều có cấu trúc cài đặt hơi khác nhau. Dưới đây là đoạn mã ví dụ về kho lưu trữ:

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

Mỗi kho lưu trữ được hiển thị bao gồm một hoặc nhiều ảnh chụp nhanh đượ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ả _snapshot hoạt động, bạn cần tham chiếu đến định danh kho lưu trữ, ảnh chụp nhanh và ảnh chụp nhanh. Từ ví dụ ở trên, hãy sử dụng snapshot : 20170208225601 làm số nhận dạng duy nhất.

#### Gửi bản sao lưu tới S3

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

  1. Cài đặt repository-s3 plugin.
  2. Đảm bảo cụm của bạn có thể tiếp cận S3 từ bên ngoài.
  3. Có thông tin đăng nhập phù hợp (nhóm, bí mật và khóa) cho S3.

Nếu bạn có đối tượng ObjectRocket Elasticsearch, hai bước đầu tiên phải được thực hiện theo mặc định và bạn cần có thông tin đăng nhập S3 của mình cho thành phần thứ ba. Nếu bạn muốn hạn chế quy trình chụp nhanh 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 sẽ trông giống với 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"

}

Với các điều kiện tiên quyết, bước đầu tiên là tạo kho lưu trữ 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 kho lưu trữ, bạn có thể thực hiện tất cả các thao tác _snapshot tiêu chuẩn. Nếu bạn muốn chụp một ảnh nhanh mới, hãy truy cập điểm cuối sau và xác định SNAPSHOT_NAME của bạn :

PUT /_snapshot/s3_repository/SNAPSHOT_NAME?wait_for_completion=false

Ảnh chụp nhanh đôi khi mất một lúc để chạy, vì vậy bạn có thể muốn kiểm tra trạng thái của một trong chuyến bay ảnh chụp nhanh. Sử dụng điểm cuối này cho bạn biết thêm chi tiết về bất kỳ hoạt động khôi phục hoặc ảnh chụp nhanh nào hiện đang chạy:

GET /_snapshot/_status

Bây giờ, giả sử chúng tôi đã xóa tất cả các chỉ mục của mình ngay sau khi ảnh chụp nhanh cuối cùng của chúng tôi hoàn thành và nhanh chóng hối hận về quyết định của mình. Để khôi phục tất cả các chỉ mục từ ảnh chụp nhanh 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 các chỉ mục 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
}

Điều đáng chú ý là chỉ có thể chạy một thao tác chụp nhanh hoặc khôi phục trên một cụm tại một thời điểm. Ngoài ra, ảnh chụp nhanh có tác động nhẹ đến hiệu suất trên cụm của bạn, vì vậy hãy đảm bảo chính sách sao lưu của bạn không quá mạnh!

Như mọi khi, vui lòng liên hệ với chúng tôi nếu bạn gặp rắc rối với các bước này tại support@objectrocket.com

Sử dụng tab Phản hồi để đưa ra bất kỳ nhận xét hoặc đặt câu hỏi nào. Bạn cũng có thể nhấp vào Trò chuyện bán hàng để trò chuyện ngay bây giờ và bắt đầu cuộc trò chuyện.