การสำรองข้อมูล Elasticsearch ขึ้น aws-s3
อัพเดทล่าสุด 30 พ.ย. 66
ตั้งค่า

เนื่องจากเราใช้ elasticsearch บน docker หลังจากติดตั้งและรันเสร็จ ต้อง config เพิ่มอีกนิดหน่อย ด้วยการใส่ aws access key เข้าไป ตามนี้

# docker exec db_elasticsearch bash -c 'echo "AWS_ACCESS_KEY" | ~/bin/elasticsearch-keystore add --stdin --force s3.client.default.access_key'"
# docker exec db_elasticsearch bash -c 'echo "AWS_SRECET_KEY" | ~/bin/elasticsearch-keystore add --stdin --force s3.client.default.secret_key'"
# 
# curl -X POST http://localhost:9200/_nodes/reload_secure_settings

คำสั่งสุดท้ายคือ ให้ reload config ที่เพิ่มใส่เข้าไปนะครับ

ตั้งค่า Repositories

ไปที่ kibana (Stack Management > Snapshot and Restore > Repositories)

จากนั้น เลือก Register repository เป็น AWS S3

จากนั้น ก็ใส่ข้อมูลการ backup ลงไป

จุดสำคัญคือ ชื่อ client ต้องใช้ชื่อเดียวกับ ตอนตั้งค่าในภาคแรก

 

ตั้งค่า Snapshot

ไปที่ kibana (Stack Management > Snapshot and Restore > Snapshots)

ก็เป็นการตั้งค่าทั่วไป

มีจุดสำคัญคือ การตั้งชื่อ Sanpshot name จะมีรูปแบบของมัน กดดูเองแล้วกัน

จากนั้นก็เลือก index ที่ต้องการ backup ซึ่งของผม ก็คงใช้เป็น index patterns เท่านี้ (ถ้าเลือกหมด คงวอดวาย)

จากนั้นก็ตั้งค่า การ retention (รอบลบข้อมูลเก่า) ของผมก็ให้มันเก็บ backup ไว้แค่ 7 วันก็พอ มันก็ควรจะเหมาะสมแล้ว (ระบบเน่าวันเดียวก็เดือดร้อนละ คงไม่ต้องรอให้ถึง 7 วัน)

สุดท้ายก็ รีวิว แล้วก็ Create policy

ทดสอบการ Backup

หลังจากสร้าง รายการ backup แล้ว เราสามารถทดสอบการ backup ได้ทันที โดยไม่ต้องรอให้ถึงรอบของมัน ดังนี้

พอกดแล้ว มันก็จะเริ่มทำงาน รอจนมันทำงานเสร็จ เราก็ลองเข้าไปตรวจสอบดูที่ s3 ถ้าเห็นประมาณนี้ ก็แปลว่าใช้ได้แล้ว

Beta Version v23.12.4 : ขออภัยเว็บกำลังก่อสร้าง (อีกแล้ว) แต่คราวนี้กำลังสร้างจริงจังละ