Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> ฐานข้อมูล

กำหนดค่า Elasticsearch เพื่อใช้ S3 สำหรับสแน็ปช็อต

เผยแพร่ครั้งแรกเมื่อวันที่ 2 มีนาคม 2017 ที่ ObjectRocket.com/blog

แพลตฟอร์มข้อมูลยังคงขยายและเปลี่ยนแปลงต่อไป แต่ด้านหนึ่งดูเหมือนจะไม่เปลี่ยนแปลง—ทุกคนยังคงต้องการสำเนาสำรองของข้อมูล! บทแนะนำนี้จะแสดงให้คุณเห็นถึงวิธีใช้ประโยชน์จากปลั๊กอินที่เก็บ S3 ด้วยอินสแตนซ์ Rackspace ObjectRocket สำหรับ Elasticsearch®

กำหนดค่า Elasticsearch เพื่อใช้ S3 สำหรับสแน็ปช็อต

ในขณะที่แพลตฟอร์มข้อมูลยังคงขยายและเปลี่ยนแปลงด้านหนึ่งยังคงเหมือนเดิม&mdassh;ทุกคนยังคงต้องการสำเนาสำรองของข้อมูล!วิวัฒนาการของเทคโนโลยียังคงต้องการการเข้าถึงข้อมูลสำรองเพื่อกู้คืนสู่สภาพแวดล้อมการพัฒนาในพื้นที่ สำเนาสำหรับการรักษาหรือการปฏิบัติตามข้อกำหนด และกรณีอื่นๆ . โพสต์นี้อธิบายวิธีใช้ประโยชน์จากปลั๊กอินที่เก็บ S3 กับอินสแตนซ์ Rackspace® ObjectRocket®for Elasticsearch

ส่วนประกอบของสแนปชอต

สแน็ปช็อตของ 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

การตั้งค่าที่เก็บ S3 ของคุณด้วย Elasticsearch เป็นกระบวนการที่ค่อนข้างง่าย มีข้อกำหนดเบื้องต้นเพียงไม่กี่ข้อในการส่งข้อมูลสำรองของคุณไปยังบัคเก็ต S3:

  1. ติดตั้ง repository-s3 ปลั๊กอิน
  2. ตรวจสอบให้แน่ใจว่าคลัสเตอร์ของคุณสามารถเข้าถึง S3 ได้จากภายนอก
  3. มีข้อมูลประจำตัวที่ถูกต้อง (ที่เก็บข้อมูล ข้อมูลลับ และคีย์) สำหรับ 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
}

เป็นเรื่องที่ควรค่าแก่การชี้ให้เห็นว่าสามารถเรียกใช้สแน็ปช็อตหรือการดำเนินการกู้คืนได้ครั้งละหนึ่งรายการบนคลัสเตอร์ นอกจากนี้ สแนปชอตยังมีผลกระทบต่อประสิทธิภาพเล็กน้อยในคลัสเตอร์ของคุณ ดังนั้นโปรดตรวจสอบว่านโยบายการสำรองข้อมูลของคุณไม่เข้มงวดเกินไป!

และเช่นเคย โปรดติดต่อเราหากคุณพบปัญหาเกี่ยวกับขั้นตอนเหล่านี้ที่ [email protected]

ใช้แท็บคำติชมเพื่อแสดงความคิดเห็นหรือถามคำถาม คุณยังสามารถคลิกแชทขาย เพื่อแชทตอนนี้และเริ่มการสนทนา