เนื่องจากเราใช้ 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 ที่เพิ่มใส่เข้าไปนะครับ
ไปที่ kibana (Stack Management > Snapshot and Restore > Repositories)
จากนั้น เลือก Register repository เป็น AWS S3
จากนั้น ก็ใส่ข้อมูลการ backup ลงไป
จุดสำคัญคือ ชื่อ client ต้องใช้ชื่อเดียวกับ ตอนตั้งค่าในภาคแรก
ไปที่ kibana (Stack Management > Snapshot and Restore > Snapshots)
ก็เป็นการตั้งค่าทั่วไป
มีจุดสำคัญคือ การตั้งชื่อ Sanpshot name จะมีรูปแบบของมัน กดดูเองแล้วกัน
จากนั้นก็เลือก index ที่ต้องการ backup ซึ่งของผม ก็คงใช้เป็น index patterns เท่านี้ (ถ้าเลือกหมด คงวอดวาย)
จากนั้นก็ตั้งค่า การ retention (รอบลบข้อมูลเก่า) ของผมก็ให้มันเก็บ backup ไว้แค่ 7 วันก็พอ มันก็ควรจะเหมาะสมแล้ว (ระบบเน่าวันเดียวก็เดือดร้อนละ คงไม่ต้องรอให้ถึง 7 วัน)
สุดท้ายก็ รีวิว แล้วก็ Create policy
หลังจากสร้าง รายการ backup แล้ว เราสามารถทดสอบการ backup ได้ทันที โดยไม่ต้องรอให้ถึงรอบของมัน ดังนี้
พอกดแล้ว มันก็จะเริ่มทำงาน รอจนมันทำงานเสร็จ เราก็ลองเข้าไปตรวจสอบดูที่ s3 ถ้าเห็นประมาณนี้ ก็แปลว่าใช้ได้แล้ว